nfewizard-io 0.2.7 → 0.2.8

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/cjs/index.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Copyright(c) 2014 Jonathan Ong
6
6
  * Copyright(c) 2015 Douglas Christopher Wilson
7
7
  * MIT Licensed
8
- */(),extname=path__default.default.extname,EXTRACT_TYPE_REGEXP=/^\s*([^;\s]*)(?:;|\s|$)/,TEXT_TYPE_REGEXP=/^text\//i;function charset(type){if(!type||"string"!=typeof type)return!1;var match=EXTRACT_TYPE_REGEXP.exec(type),mime=match&&db[match[1].toLowerCase()];return mime&&mime.charset?mime.charset:!(!match||!TEXT_TYPE_REGEXP.test(match[1]))&&"UTF-8"}exports.charset=charset,exports.charsets={lookup:charset},exports.contentType=function contentType(str){if(!str||"string"!=typeof str)return!1;var mime=-1===str.indexOf("/")?exports.lookup(str):str;if(!mime)return!1;if(-1===mime.indexOf("charset")){var charset=exports.charset(mime);charset&&(mime+="; charset="+charset.toLowerCase())}return mime},exports.extension=function extension(type){if(!type||"string"!=typeof type)return!1;var match=EXTRACT_TYPE_REGEXP.exec(type),exts=match&&exports.extensions[match[1].toLowerCase()];if(!exts||!exts.length)return!1;return exts[0]},exports.extensions=Object.create(null),exports.lookup=function lookup(path){if(!path||"string"!=typeof path)return!1;var extension=extname("x."+path).toLowerCase().substr(1);if(!extension)return!1;return exports.types[extension]||!1},exports.types=Object.create(null),function populateMaps(extensions,types){var preference=["nginx","apache",void 0,"iana"];Object.keys(db).forEach((function forEachMimeType(type){var mime=db[type],exts=mime.extensions;if(exts&&exts.length){extensions[type]=exts;for(var i=0;i<exts.length;i++){var extension=exts[i];if(types[extension]){var from=preference.indexOf(db[types[extension]].source),to=preference.indexOf(mime.source);if("application/octet-stream"!==types[extension]&&(from>to||from===to&&"application/"===types[extension].substr(0,12)))continue}types[extension]=type}}}))}(exports.extensions,exports.types)}(mimeTypes)),mimeTypes}function requireAsync(){if(hasRequiredAsync)return async_1;hasRequiredAsync=1;var defer=function requireDefer(){return hasRequiredDefer?defer_1:(hasRequiredDefer=1,defer_1=function defer(fn){var nextTick="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;nextTick?nextTick(fn):setTimeout(fn,0)})}();return async_1=function async(callback){var isAsync=!1;return defer((function(){isAsync=!0})),function async_callback(err,result){isAsync?callback(err,result):defer((function nextTick_callback(){callback(err,result)}))}},async_1}function requireAbort(){if(hasRequiredAbort)return abort_1;function clean(key){"function"==typeof this.jobs[key]&&this.jobs[key]()}return hasRequiredAbort=1,abort_1=function abort(state){Object.keys(state.jobs).forEach(clean.bind(state)),state.jobs={}}}function requireIterate(){if(hasRequiredIterate)return iterate_1;hasRequiredIterate=1;var async=requireAsync(),abort=requireAbort();return iterate_1=function iterate(list,iterator,state,callback){var key=state.keyedList?state.keyedList[state.index]:state.index;state.jobs[key]=function runJob(iterator,key,item,callback){var aborter;aborter=2==iterator.length?iterator(item,async(callback)):iterator(item,key,async(callback));return aborter}(iterator,key,list[key],(function(error,output){key in state.jobs&&(delete state.jobs[key],error?abort(state):state.results[key]=output,callback(error,state.results))}))}}function requireState(){if(hasRequiredState)return state_1;return hasRequiredState=1,state_1=function state(list,sortMethod){var isNamedList=!Array.isArray(list),initState={index:0,keyedList:isNamedList||sortMethod?Object.keys(list):null,jobs:{},results:isNamedList?{}:[],size:isNamedList?Object.keys(list).length:list.length};sortMethod&&initState.keyedList.sort(isNamedList?sortMethod:function(a,b){return sortMethod(list[a],list[b])});return initState}}function requireTerminator(){if(hasRequiredTerminator)return terminator_1;hasRequiredTerminator=1;var abort=requireAbort(),async=requireAsync();return terminator_1=function terminator(callback){if(!Object.keys(this.jobs).length)return;this.index=this.size,abort(this),async(callback)(null,this.results)}}function requireParallel(){if(hasRequiredParallel)return parallel_1;hasRequiredParallel=1;var iterate=requireIterate(),initState=requireState(),terminator=requireTerminator();return parallel_1=function parallel(list,iterator,callback){var state=initState(list);for(;state.index<(state.keyedList||list).length;)iterate(list,iterator,state,(function(error,result){error?callback(error,result):0!==Object.keys(state.jobs).length||callback(null,state.results)})),state.index++;return terminator.bind(state,callback)}}var hasRequiredSerialOrdered,serial_1,hasRequiredSerial,asynckit,hasRequiredAsynckit,populate,hasRequiredPopulate,form_data,hasRequiredForm_data,serialOrdered={exports:{}};function requireSerialOrdered(){if(hasRequiredSerialOrdered)return serialOrdered.exports;hasRequiredSerialOrdered=1;var iterate=requireIterate(),initState=requireState(),terminator=requireTerminator();function ascending(a,b){return a<b?-1:a>b?1:0}return serialOrdered.exports=function serialOrdered$1(list,iterator,sortMethod,callback){var state=initState(list,sortMethod);return iterate(list,iterator,state,(function iteratorHandler(error,result){error?callback(error,result):(state.index++,state.index<(state.keyedList||list).length?iterate(list,iterator,state,iteratorHandler):callback(null,state.results))})),terminator.bind(state,callback)},serialOrdered.exports.ascending=ascending,serialOrdered.exports.descending=function descending(a,b){return-1*ascending(a,b)},serialOrdered.exports}function requireSerial(){if(hasRequiredSerial)return serial_1;hasRequiredSerial=1;var serialOrdered=requireSerialOrdered();return serial_1=function serial(list,iterator,callback){return serialOrdered(list,iterator,null,callback)}}function requireAsynckit(){return hasRequiredAsynckit?asynckit:(hasRequiredAsynckit=1,asynckit={parallel:requireParallel(),serial:requireSerial(),serialOrdered:requireSerialOrdered()})}function requirePopulate(){return hasRequiredPopulate||(hasRequiredPopulate=1,populate=function(dst,src){return Object.keys(src).forEach((function(prop){dst[prop]=dst[prop]||src[prop]})),dst}),populate}var form_dataExports=function requireForm_data(){if(hasRequiredForm_data)return form_data;hasRequiredForm_data=1;var CombinedStream=requireCombined_stream(),util=require$$0__default$3.default,path=path__default.default,http=require$$3__default.default,https=https__default.default,parseUrl=require$$0__default$4.default.parse,fs=fs__default.default,Stream=require$$0__default$2.default.Stream,mime=requireMimeTypes$1(),asynckit=requireAsynckit(),populate=requirePopulate();function FormData(options){if(!(this instanceof FormData))return new FormData(options);for(var option in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],CombinedStream.call(this),options=options||{})this[option]=options[option]}return form_data=FormData,util.inherits(FormData,CombinedStream),FormData.LINE_BREAK="\r\n",FormData.DEFAULT_CONTENT_TYPE="application/octet-stream",FormData.prototype.append=function(field,value,options){"string"==typeof(options=options||{})&&(options={filename:options});var append=CombinedStream.prototype.append.bind(this);if("number"==typeof value&&(value=""+value),util.isArray(value))this._error(new Error("Arrays are not supported."));else{var header=this._multiPartHeader(field,value,options),footer=this._multiPartFooter();append(header),append(value),append(footer),this._trackLength(header,value,options)}},FormData.prototype._trackLength=function(header,value,options){var valueLength=0;null!=options.knownLength?valueLength+=+options.knownLength:Buffer.isBuffer(value)?valueLength=value.length:"string"==typeof value&&(valueLength=Buffer.byteLength(value)),this._valueLength+=valueLength,this._overheadLength+=Buffer.byteLength(header)+FormData.LINE_BREAK.length,value&&(value.path||value.readable&&value.hasOwnProperty("httpVersion")||value instanceof Stream)&&(options.knownLength||this._valuesToMeasure.push(value))},FormData.prototype._lengthRetriever=function(value,callback){value.hasOwnProperty("fd")?null!=value.end&&value.end!=1/0&&null!=value.start?callback(null,value.end+1-(value.start?value.start:0)):fs.stat(value.path,(function(err,stat){var fileSize;err?callback(err):(fileSize=stat.size-(value.start?value.start:0),callback(null,fileSize))})):value.hasOwnProperty("httpVersion")?callback(null,+value.headers["content-length"]):value.hasOwnProperty("httpModule")?(value.on("response",(function(response){value.pause(),callback(null,+response.headers["content-length"])})),value.resume()):callback("Unknown stream")},FormData.prototype._multiPartHeader=function(field,value,options){if("string"==typeof options.header)return options.header;var header,contentDisposition=this._getContentDisposition(value,options),contentType=this._getContentType(value,options),contents="",headers={"Content-Disposition":["form-data",'name="'+field+'"'].concat(contentDisposition||[]),"Content-Type":[].concat(contentType||[])};for(var prop in"object"==typeof options.header&&populate(headers,options.header),headers)headers.hasOwnProperty(prop)&&null!=(header=headers[prop])&&(Array.isArray(header)||(header=[header]),header.length&&(contents+=prop+": "+header.join("; ")+FormData.LINE_BREAK));return"--"+this.getBoundary()+FormData.LINE_BREAK+contents+FormData.LINE_BREAK},FormData.prototype._getContentDisposition=function(value,options){var filename,contentDisposition;return"string"==typeof options.filepath?filename=path.normalize(options.filepath).replace(/\\/g,"/"):options.filename||value.name||value.path?filename=path.basename(options.filename||value.name||value.path):value.readable&&value.hasOwnProperty("httpVersion")&&(filename=path.basename(value.client._httpMessage.path||"")),filename&&(contentDisposition='filename="'+filename+'"'),contentDisposition},FormData.prototype._getContentType=function(value,options){var contentType=options.contentType;return!contentType&&value.name&&(contentType=mime.lookup(value.name)),!contentType&&value.path&&(contentType=mime.lookup(value.path)),!contentType&&value.readable&&value.hasOwnProperty("httpVersion")&&(contentType=value.headers["content-type"]),contentType||!options.filepath&&!options.filename||(contentType=mime.lookup(options.filepath||options.filename)),contentType||"object"!=typeof value||(contentType=FormData.DEFAULT_CONTENT_TYPE),contentType},FormData.prototype._multiPartFooter=function(){return function(next){var footer=FormData.LINE_BREAK;0===this._streams.length&&(footer+=this._lastBoundary()),next(footer)}.bind(this)},FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+FormData.LINE_BREAK},FormData.prototype.getHeaders=function(userHeaders){var header,formHeaders={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(header in userHeaders)userHeaders.hasOwnProperty(header)&&(formHeaders[header.toLowerCase()]=userHeaders[header]);return formHeaders},FormData.prototype.setBoundary=function(boundary){this._boundary=boundary},FormData.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},FormData.prototype.getBuffer=function(){for(var dataBuffer=new Buffer.alloc(0),boundary=this.getBoundary(),i=0,len=this._streams.length;i<len;i++)"function"!=typeof this._streams[i]&&(dataBuffer=Buffer.isBuffer(this._streams[i])?Buffer.concat([dataBuffer,this._streams[i]]):Buffer.concat([dataBuffer,Buffer.from(this._streams[i])]),"string"==typeof this._streams[i]&&this._streams[i].substring(2,boundary.length+2)===boundary||(dataBuffer=Buffer.concat([dataBuffer,Buffer.from(FormData.LINE_BREAK)])));return Buffer.concat([dataBuffer,Buffer.from(this._lastBoundary())])},FormData.prototype._generateBoundary=function(){for(var boundary="--------------------------",i=0;i<24;i++)boundary+=Math.floor(10*Math.random()).toString(16);this._boundary=boundary},FormData.prototype.getLengthSync=function(){var knownLength=this._overheadLength+this._valueLength;return this._streams.length&&(knownLength+=this._lastBoundary().length),this.hasKnownLength()||this._error(new Error("Cannot calculate proper length in synchronous way.")),knownLength},FormData.prototype.hasKnownLength=function(){var hasKnownLength=!0;return this._valuesToMeasure.length&&(hasKnownLength=!1),hasKnownLength},FormData.prototype.getLength=function(cb){var knownLength=this._overheadLength+this._valueLength;this._streams.length&&(knownLength+=this._lastBoundary().length),this._valuesToMeasure.length?asynckit.parallel(this._valuesToMeasure,this._lengthRetriever,(function(err,values){err?cb(err):(values.forEach((function(length){knownLength+=length})),cb(null,knownLength))})):process.nextTick(cb.bind(this,null,knownLength))},FormData.prototype.submit=function(params,cb){var request,options,defaults={method:"post"};return"string"==typeof params?(params=parseUrl(params),options=populate({port:params.port,path:params.pathname,host:params.hostname,protocol:params.protocol},defaults)):(options=populate(params,defaults)).port||(options.port="https:"==options.protocol?443:80),options.headers=this.getHeaders(params.headers),request="https:"==options.protocol?https.request(options):http.request(options),this.getLength(function(err,length){if(err&&"Unknown stream"!==err)this._error(err);else if(length&&request.setHeader("Content-Length",length),this.pipe(request),cb){var onResponse,callback=function(error,responce){return request.removeListener("error",callback),request.removeListener("response",onResponse),cb.call(this,error,responce)};onResponse=callback.bind(this,null),request.on("error",callback),request.on("response",onResponse)}}.bind(this)),request},FormData.prototype._error=function(err){this.error||(this.error=err,this.pause(),this.emit("error",err))},FormData.prototype.toString=function(){return"[object FormData]"},form_data}(),FormData$1=getDefaultExportFromCjs(form_dataExports);function isVisitable(thing){return utils$4.isPlainObject(thing)||utils$4.isArray(thing)}function removeBrackets(key){return utils$4.endsWith(key,"[]")?key.slice(0,-2):key}function renderKey(path,key,dots){return path?path.concat(key).map((function each(token,i){return token=removeBrackets(token),!dots&&i?"["+token+"]":token})).join(dots?".":""):key}const predicates=utils$4.toFlatObject(utils$4,{},null,(function filter(prop){return/^is[A-Z]/.test(prop)}));function toFormData(obj,formData,options){if(!utils$4.isObject(obj))throw new TypeError("target must be an object");formData=formData||new(FormData$1||FormData);const metaTokens=(options=utils$4.toFlatObject(options,{metaTokens:!0,dots:!1,indexes:!1},!1,(function defined(option,source){return!utils$4.isUndefined(source[option])}))).metaTokens,visitor=options.visitor||defaultVisitor,dots=options.dots,indexes=options.indexes,useBlob=(options.Blob||"undefined"!=typeof Blob&&Blob)&&utils$4.isSpecCompliantForm(formData);if(!utils$4.isFunction(visitor))throw new TypeError("visitor must be a function");function convertValue(value){if(null===value)return"";if(utils$4.isDate(value))return value.toISOString();if(!useBlob&&utils$4.isBlob(value))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return utils$4.isArrayBuffer(value)||utils$4.isTypedArray(value)?useBlob&&"function"==typeof Blob?new Blob([value]):Buffer.from(value):value}function defaultVisitor(value,key,path){let arr=value;if(value&&!path&&"object"==typeof value)if(utils$4.endsWith(key,"{}"))key=metaTokens?key:key.slice(0,-2),value=JSON.stringify(value);else if(utils$4.isArray(value)&&function isFlatArray(arr){return utils$4.isArray(arr)&&!arr.some(isVisitable)}(value)||(utils$4.isFileList(value)||utils$4.endsWith(key,"[]"))&&(arr=utils$4.toArray(value)))return key=removeBrackets(key),arr.forEach((function each(el,index){!utils$4.isUndefined(el)&&null!==el&&formData.append(!0===indexes?renderKey([key],index,dots):null===indexes?key:key+"[]",convertValue(el))})),!1;return!!isVisitable(value)||(formData.append(renderKey(path,key,dots),convertValue(value)),!1)}const stack=[],exposedHelpers=Object.assign(predicates,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});if(!utils$4.isObject(obj))throw new TypeError("data must be an object");return function build(value,path){if(!utils$4.isUndefined(value)){if(-1!==stack.indexOf(value))throw Error("Circular reference detected in "+path.join("."));stack.push(value),utils$4.forEach(value,(function each(el,key){!0===(!(utils$4.isUndefined(el)||null===el)&&visitor.call(formData,el,utils$4.isString(key)?key.trim():key,path,exposedHelpers))&&build(el,path?path.concat(key):[key])})),stack.pop()}}(obj),formData}function encode$1(str){const charMap={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g,(function replacer(match){return charMap[match]}))}function AxiosURLSearchParams(params,options){this._pairs=[],params&&toFormData(params,this,options)}const prototype=AxiosURLSearchParams.prototype;function encode(val){return encodeURIComponent(val).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(url,params,options){if(!params)return url;const _encode=options&&options.encode||encode,serializeFn=options&&options.serialize;let serializedParams;if(serializedParams=serializeFn?serializeFn(params,options):utils$4.isURLSearchParams(params)?params.toString():new AxiosURLSearchParams(params,options).toString(_encode),serializedParams){const hashmarkIndex=url.indexOf("#");-1!==hashmarkIndex&&(url=url.slice(0,hashmarkIndex)),url+=(-1===url.indexOf("?")?"?":"&")+serializedParams}return url}prototype.append=function append(name,value){this._pairs.push([name,value])},prototype.toString=function toString(encoder){const _encode=encoder?function(value){return encoder.call(this,value,encode$1)}:encode$1;return this._pairs.map((function each(pair){return _encode(pair[0])+"="+_encode(pair[1])}),"").join("&")};var InterceptorManager$1=class InterceptorManager{constructor(){this.handlers=[]}use(fulfilled,rejected,options){return this.handlers.push({fulfilled:fulfilled,rejected:rejected,synchronous:!!options&&options.synchronous,runWhen:options?options.runWhen:null}),this.handlers.length-1}eject(id){this.handlers[id]&&(this.handlers[id]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(fn){utils$4.forEach(this.handlers,(function forEachHandler(h){null!==h&&fn(h)}))}},transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},platform$1={isNode:!0,classes:{URLSearchParams:require$$0__default$4.default.URLSearchParams,FormData:FormData$1,Blob:"undefined"!=typeof Blob&&Blob||null},protocols:["http","https","file","data"]};const hasBrowserEnv="undefined"!=typeof window&&"undefined"!=typeof document,_navigator="object"==typeof navigator&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,origin=hasBrowserEnv&&window.location.href||"http://localhost";var platform={...Object.freeze({__proto__:null,hasBrowserEnv:hasBrowserEnv,hasStandardBrowserWebWorkerEnv:hasStandardBrowserWebWorkerEnv,hasStandardBrowserEnv:hasStandardBrowserEnv,navigator:_navigator,origin:origin}),...platform$1};function formDataToJSON(formData){function buildPath(path,value,target,index){let name=path[index++];if("__proto__"===name)return!0;const isNumericKey=Number.isFinite(+name),isLast=index>=path.length;if(name=!name&&utils$4.isArray(target)?target.length:name,isLast)return utils$4.hasOwnProp(target,name)?target[name]=[target[name],value]:target[name]=value,!isNumericKey;target[name]&&utils$4.isObject(target[name])||(target[name]=[]);return buildPath(path,value,target[name],index)&&utils$4.isArray(target[name])&&(target[name]=function arrayToObject(arr){const obj={},keys=Object.keys(arr);let i;const len=keys.length;let key;for(i=0;i<len;i++)key=keys[i],obj[key]=arr[key];return obj}(target[name])),!isNumericKey}if(utils$4.isFormData(formData)&&utils$4.isFunction(formData.entries)){const obj={};return utils$4.forEachEntry(formData,((name,value)=>{buildPath(function parsePropPath(name){return utils$4.matchAll(/\w+|\[(\w*)]/g,name).map((match=>"[]"===match[0]?"":match[1]||match[0]))}(name),value,obj,0)})),obj}return null}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function transformRequest(data,headers){const contentType=headers.getContentType()||"",hasJSONContentType=contentType.indexOf("application/json")>-1,isObjectPayload=utils$4.isObject(data);isObjectPayload&&utils$4.isHTMLForm(data)&&(data=new FormData(data));if(utils$4.isFormData(data))return hasJSONContentType?JSON.stringify(formDataToJSON(data)):data;if(utils$4.isArrayBuffer(data)||utils$4.isBuffer(data)||utils$4.isStream(data)||utils$4.isFile(data)||utils$4.isBlob(data)||utils$4.isReadableStream(data))return data;if(utils$4.isArrayBufferView(data))return data.buffer;if(utils$4.isURLSearchParams(data))return headers.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),data.toString();let isFileList;if(isObjectPayload){if(contentType.indexOf("application/x-www-form-urlencoded")>-1)return function toURLEncodedForm(data,options){return toFormData(data,new platform.classes.URLSearchParams,Object.assign({visitor:function(value,key,path,helpers){return platform.isNode&&utils$4.isBuffer(value)?(this.append(key,value.toString("base64")),!1):helpers.defaultVisitor.apply(this,arguments)}},options))}(data,this.formSerializer).toString();if((isFileList=utils$4.isFileList(data))||contentType.indexOf("multipart/form-data")>-1){const _FormData=this.env&&this.env.FormData;return toFormData(isFileList?{"files[]":data}:data,_FormData&&new _FormData,this.formSerializer)}}return isObjectPayload||hasJSONContentType?(headers.setContentType("application/json",!1),function stringifySafely(rawValue,parser,encoder){if(utils$4.isString(rawValue))try{return(parser||JSON.parse)(rawValue),utils$4.trim(rawValue)}catch(e){if("SyntaxError"!==e.name)throw e}return(encoder||JSON.stringify)(rawValue)}(data)):data}],transformResponse:[function transformResponse(data){const transitional=this.transitional||defaults.transitional,forcedJSONParsing=transitional&&transitional.forcedJSONParsing,JSONRequested="json"===this.responseType;if(utils$4.isResponse(data)||utils$4.isReadableStream(data))return data;if(data&&utils$4.isString(data)&&(forcedJSONParsing&&!this.responseType||JSONRequested)){const strictJSONParsing=!(transitional&&transitional.silentJSONParsing)&&JSONRequested;try{return JSON.parse(data)}catch(e){if(strictJSONParsing){if("SyntaxError"===e.name)throw AxiosError.from(e,AxiosError.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return data}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function validateStatus(status){return status>=200&&status<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$4.forEach(["delete","get","head","post","put","patch"],(method=>{defaults.headers[method]={}}));var defaults$1=defaults;const ignoreDuplicateOf=utils$4.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const $internals=Symbol("internals");function normalizeHeader(header){return header&&String(header).trim().toLowerCase()}function normalizeValue(value){return!1===value||null==value?value:utils$4.isArray(value)?value.map(normalizeValue):String(value)}function matchHeaderValue(context,value,header,filter,isHeaderNameFilter){return utils$4.isFunction(filter)?filter.call(this,value,header):(isHeaderNameFilter&&(value=header),utils$4.isString(value)?utils$4.isString(filter)?-1!==value.indexOf(filter):utils$4.isRegExp(filter)?filter.test(value):void 0:void 0)}class AxiosHeaders{constructor(headers){headers&&this.set(headers)}set(header,valueOrRewrite,rewrite){const self=this;function setHeader(_value,_header,_rewrite){const lHeader=normalizeHeader(_header);if(!lHeader)throw new Error("header name must be a non-empty string");const key=utils$4.findKey(self,lHeader);(!key||void 0===self[key]||!0===_rewrite||void 0===_rewrite&&!1!==self[key])&&(self[key||_header]=normalizeValue(_value))}const setHeaders=(headers,_rewrite)=>utils$4.forEach(headers,((_value,_header)=>setHeader(_value,_header,_rewrite)));if(utils$4.isPlainObject(header)||header instanceof this.constructor)setHeaders(header,valueOrRewrite);else if(utils$4.isString(header)&&(header=header.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(header.trim()))setHeaders((rawHeaders=>{const parsed={};let key,val,i;return rawHeaders&&rawHeaders.split("\n").forEach((function parser(line){i=line.indexOf(":"),key=line.substring(0,i).trim().toLowerCase(),val=line.substring(i+1).trim(),!key||parsed[key]&&ignoreDuplicateOf[key]||("set-cookie"===key?parsed[key]?parsed[key].push(val):parsed[key]=[val]:parsed[key]=parsed[key]?parsed[key]+", "+val:val)})),parsed})(header),valueOrRewrite);else if(utils$4.isHeaders(header))for(const[key,value]of header.entries())setHeader(value,key,rewrite);else null!=header&&setHeader(valueOrRewrite,header,rewrite);return this}get(header,parser){if(header=normalizeHeader(header)){const key=utils$4.findKey(this,header);if(key){const value=this[key];if(!parser)return value;if(!0===parser)return function parseTokens(str){const tokens=Object.create(null),tokensRE=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let match;for(;match=tokensRE.exec(str);)tokens[match[1]]=match[2];return tokens}(value);if(utils$4.isFunction(parser))return parser.call(this,value,key);if(utils$4.isRegExp(parser))return parser.exec(value);throw new TypeError("parser must be boolean|regexp|function")}}}has(header,matcher){if(header=normalizeHeader(header)){const key=utils$4.findKey(this,header);return!(!key||void 0===this[key]||matcher&&!matchHeaderValue(0,this[key],key,matcher))}return!1}delete(header,matcher){const self=this;let deleted=!1;function deleteHeader(_header){if(_header=normalizeHeader(_header)){const key=utils$4.findKey(self,_header);!key||matcher&&!matchHeaderValue(0,self[key],key,matcher)||(delete self[key],deleted=!0)}}return utils$4.isArray(header)?header.forEach(deleteHeader):deleteHeader(header),deleted}clear(matcher){const keys=Object.keys(this);let i=keys.length,deleted=!1;for(;i--;){const key=keys[i];matcher&&!matchHeaderValue(0,this[key],key,matcher,!0)||(delete this[key],deleted=!0)}return deleted}normalize(format){const self=this,headers={};return utils$4.forEach(this,((value,header)=>{const key=utils$4.findKey(headers,header);if(key)return self[key]=normalizeValue(value),void delete self[header];const normalized=format?function formatHeader(header){return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((w,char,str)=>char.toUpperCase()+str))}(header):String(header).trim();normalized!==header&&delete self[header],self[normalized]=normalizeValue(value),headers[normalized]=!0})),this}concat(...targets){return this.constructor.concat(this,...targets)}toJSON(asStrings){const obj=Object.create(null);return utils$4.forEach(this,((value,header)=>{null!=value&&!1!==value&&(obj[header]=asStrings&&utils$4.isArray(value)?value.join(", "):value)})),obj}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([header,value])=>header+": "+value)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(thing){return thing instanceof this?thing:new this(thing)}static concat(first,...targets){const computed=new this(first);return targets.forEach((target=>computed.set(target))),computed}static accessor(header){const accessors=(this[$internals]=this[$internals]={accessors:{}}).accessors,prototype=this.prototype;function defineAccessor(_header){const lHeader=normalizeHeader(_header);accessors[lHeader]||(!function buildAccessors(obj,header){const accessorName=utils$4.toCamelCase(" "+header);["get","set","has"].forEach((methodName=>{Object.defineProperty(obj,methodName+accessorName,{value:function(arg1,arg2,arg3){return this[methodName].call(this,header,arg1,arg2,arg3)},configurable:!0})}))}(prototype,_header),accessors[lHeader]=!0)}return utils$4.isArray(header)?header.forEach(defineAccessor):defineAccessor(header),this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$4.reduceDescriptors(AxiosHeaders.prototype,(({value:value},key)=>{let mapped=key[0].toUpperCase()+key.slice(1);return{get:()=>value,set(headerValue){this[mapped]=headerValue}}})),utils$4.freezeMethods(AxiosHeaders);var AxiosHeaders$1=AxiosHeaders;function transformData(fns,response){const config=this||defaults$1,context=response||config,headers=AxiosHeaders$1.from(context.headers);let data=context.data;return utils$4.forEach(fns,(function transform(fn){data=fn.call(config,data,headers.normalize(),response?response.status:void 0)})),headers.normalize(),data}function isCancel(value){return!(!value||!value.__CANCEL__)}function CanceledError(message,config,request){AxiosError.call(this,null==message?"canceled":message,AxiosError.ERR_CANCELED,config,request),this.name="CanceledError"}function settle(resolve,reject,response){const validateStatus=response.config.validateStatus;response.status&&validateStatus&&!validateStatus(response.status)?reject(new AxiosError("Request failed with status code "+response.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status/100)-4],response.config,response.request,response)):resolve(response)}function buildFullPath(baseURL,requestedURL){return baseURL&&!function isAbsoluteURL(url){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)}(requestedURL)?function combineURLs(baseURL,relativeURL){return relativeURL?baseURL.replace(/\/?\/$/,"")+"/"+relativeURL.replace(/^\/+/,""):baseURL}(baseURL,requestedURL):requestedURL}utils$4.inherits(CanceledError,AxiosError,{__CANCEL__:!0});var hasRequiredProxyFromEnv,proxyFromEnv={};var ms,hasRequiredMs,common,hasRequiredCommon,hasRequiredBrowser$1,proxyFromEnvExports=function requireProxyFromEnv(){if(hasRequiredProxyFromEnv)return proxyFromEnv;hasRequiredProxyFromEnv=1;var parseUrl=require$$0__default$4.default.parse,DEFAULT_PORTS={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},stringEndsWith=String.prototype.endsWith||function(s){return s.length<=this.length&&-1!==this.indexOf(s,this.length-s.length)};function getEnv(key){return process.env[key.toLowerCase()]||process.env[key.toUpperCase()]||""}return proxyFromEnv.getProxyForUrl=function getProxyForUrl(url){var parsedUrl="string"==typeof url?parseUrl(url):url||{},proto=parsedUrl.protocol,hostname=parsedUrl.host,port=parsedUrl.port;if("string"!=typeof hostname||!hostname||"string"!=typeof proto)return"";if(proto=proto.split(":",1)[0],!function shouldProxy(hostname,port){var NO_PROXY=(getEnv("npm_config_no_proxy")||getEnv("no_proxy")).toLowerCase();if(!NO_PROXY)return!0;if("*"===NO_PROXY)return!1;return NO_PROXY.split(/[,\s]/).every((function(proxy){if(!proxy)return!0;var parsedProxy=proxy.match(/^(.+):(\d+)$/),parsedProxyHostname=parsedProxy?parsedProxy[1]:proxy,parsedProxyPort=parsedProxy?parseInt(parsedProxy[2]):0;return!(!parsedProxyPort||parsedProxyPort===port)||(/^[.*]/.test(parsedProxyHostname)?("*"===parsedProxyHostname.charAt(0)&&(parsedProxyHostname=parsedProxyHostname.slice(1)),!stringEndsWith.call(hostname,parsedProxyHostname)):hostname!==parsedProxyHostname)}))}(hostname=hostname.replace(/:\d*$/,""),port=parseInt(port)||DEFAULT_PORTS[proto]||0))return"";var proxy=getEnv("npm_config_"+proto+"_proxy")||getEnv(proto+"_proxy")||getEnv("npm_config_proxy")||getEnv("all_proxy");return proxy&&-1===proxy.indexOf("://")&&(proxy=proto+"://"+proxy),proxy},proxyFromEnv}(),followRedirects$1={exports:{}},src={exports:{}},browser$1={exports:{}};function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var s=1e3,m=60*s,h=60*m,d=24*h,w=7*d,y=365.25*d;function plural(ms,msAbs,n,name){var isPlural=msAbs>=1.5*n;return Math.round(ms/n)+" "+name+(isPlural?"s":"")}return ms=function(val,options){options=options||{};var type=typeof val;if("string"===type&&val.length>0)return function parse(str){if((str=String(str)).length>100)return;var match=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]);switch((match[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"weeks":case"week":case"w":return n*w;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(val);if("number"===type&&isFinite(val))return options.long?function fmtLong(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return plural(ms,msAbs,d,"day");if(msAbs>=h)return plural(ms,msAbs,h,"hour");if(msAbs>=m)return plural(ms,msAbs,m,"minute");if(msAbs>=s)return plural(ms,msAbs,s,"second");return ms+" ms"}(val):function fmtShort(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return Math.round(ms/d)+"d";if(msAbs>=h)return Math.round(ms/h)+"h";if(msAbs>=m)return Math.round(ms/m)+"m";if(msAbs>=s)return Math.round(ms/s)+"s";return ms+"ms"}(val);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(val))},ms}function requireCommon(){if(hasRequiredCommon)return common;return hasRequiredCommon=1,common=function setup(env){function createDebug(namespace){let prevTime,namespacesCache,enabledCache,enableOverride=null;function debug(...args){if(!debug.enabled)return;const self=debug,curr=Number(new Date),ms=curr-(prevTime||curr);self.diff=ms,self.prev=prevTime,self.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),"string"!=typeof args[0]&&args.unshift("%O");let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,((match,format)=>{if("%%"===match)return"%";index++;const formatter=createDebug.formatters[format];if("function"==typeof formatter){const val=args[index];match=formatter.call(self,val),args.splice(index,1),index--}return match})),createDebug.formatArgs.call(self,args);(self.log||createDebug.log).apply(self,args)}return debug.namespace=namespace,debug.useColors=createDebug.useColors(),debug.color=createDebug.selectColor(namespace),debug.extend=extend,debug.destroy=createDebug.destroy,Object.defineProperty(debug,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==enableOverride?enableOverride:(namespacesCache!==createDebug.namespaces&&(namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace)),enabledCache),set:v=>{enableOverride=v}}),"function"==typeof createDebug.init&&createDebug.init(debug),debug}function extend(namespace,delimiter){const newDebug=createDebug(this.namespace+(void 0===delimiter?":":delimiter)+namespace);return newDebug.log=this.log,newDebug}function toNamespace(regexp){return regexp.toString().substring(2,regexp.toString().length-2).replace(/\.\*\?$/,"*")}return createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=function coerce(val){if(val instanceof Error)return val.stack||val.message;return val},createDebug.disable=function disable(){const namespaces=[...createDebug.names.map(toNamespace),...createDebug.skips.map(toNamespace).map((namespace=>"-"+namespace))].join(",");return createDebug.enable(""),namespaces},createDebug.enable=function enable(namespaces){let i;createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];const split=("string"==typeof namespaces?namespaces:"").split(/[\s,]+/),len=split.length;for(i=0;i<len;i++)split[i]&&("-"===(namespaces=split[i].replace(/\*/g,".*?"))[0]?createDebug.skips.push(new RegExp("^"+namespaces.slice(1)+"$")):createDebug.names.push(new RegExp("^"+namespaces+"$")))},createDebug.enabled=function enabled(name){if("*"===name[name.length-1])return!0;let i,len;for(i=0,len=createDebug.skips.length;i<len;i++)if(createDebug.skips[i].test(name))return!1;for(i=0,len=createDebug.names.length;i<len;i++)if(createDebug.names[i].test(name))return!0;return!1},createDebug.humanize=requireMs(),createDebug.destroy=function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(env).forEach((key=>{createDebug[key]=env[key]})),createDebug.names=[],createDebug.skips=[],createDebug.formatters={},createDebug.selectColor=function selectColor(namespace){let hash=0;for(let i=0;i<namespace.length;i++)hash=(hash<<5)-hash+namespace.charCodeAt(i),hash|=0;return createDebug.colors[Math.abs(hash)%createDebug.colors.length]},createDebug.enable(createDebug.load()),createDebug},common}var hasFlag,hasRequiredHasFlag,supportsColor_1,hasRequiredSupportsColor,hasRequiredNode,hasRequiredSrc,debug_1,hasRequiredDebug,hasRequiredFollowRedirects,node={exports:{}};function requireHasFlag(){return hasRequiredHasFlag?hasFlag:(hasRequiredHasFlag=1,hasFlag=(flag,argv=process.argv)=>{const prefix=flag.startsWith("-")?"":1===flag.length?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return-1!==position&&(-1===terminatorPosition||position<terminatorPosition)})}function requireNode(){return hasRequiredNode||(hasRequiredNode=1,function(module,exports){const tty=require$$1__default$1.default,util=require$$0__default$3.default;exports.init=function init(debug){debug.inspectOpts={};const keys=Object.keys(exports.inspectOpts);for(let i=0;i<keys.length;i++)debug.inspectOpts[keys[i]]=exports.inspectOpts[keys[i]]},exports.log=function log(...args){return process.stderr.write(util.formatWithOptions(exports.inspectOpts,...args)+"\n")},exports.formatArgs=function formatArgs(args){const{namespace:name,useColors:useColors}=this;if(useColors){const c=this.color,colorCode="[3"+(c<8?c:"8;5;"+c),prefix=` ${colorCode};1m${name} `;args[0]=prefix+args[0].split("\n").join("\n"+prefix),args.push(colorCode+"m+"+module.exports.humanize(this.diff)+"")}else args[0]=function getDate(){if(exports.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+name+" "+args[0]},exports.save=function save(namespaces){namespaces?process.env.DEBUG=namespaces:delete process.env.DEBUG},exports.load=function load(){return process.env.DEBUG},exports.useColors=function useColors(){return"colors"in exports.inspectOpts?Boolean(exports.inspectOpts.colors):tty.isatty(process.stderr.fd)},exports.destroy=util.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),exports.colors=[6,2,3,4,5,1];try{const supportsColor=function requireSupportsColor(){if(hasRequiredSupportsColor)return supportsColor_1;hasRequiredSupportsColor=1;const os=require$$0__default$5.default,tty=require$$1__default$1.default,hasFlag=requireHasFlag(),{env:env}=process;let forceColor;function translateLevel(level){return 0!==level&&{level:level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(haveStream,streamIsTTY){if(0===forceColor)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(haveStream&&!streamIsTTY&&void 0===forceColor)return 0;const min=forceColor||0;if("dumb"===env.TERM)return min;if("win32"===process.platform){const osRelease=os.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((sign=>sign in env))||"codeship"===env.CI_NAME?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("truecolor"===env.COLORTERM)return 3;if("TERM_PROGRAM"in env){const version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}return hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?forceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=1),"FORCE_COLOR"in env&&(forceColor="true"===env.FORCE_COLOR?1:"false"===env.FORCE_COLOR?0:0===env.FORCE_COLOR.length?1:Math.min(parseInt(env.FORCE_COLOR,10),3)),supportsColor_1={supportsColor:function getSupportLevel(stream){return translateLevel(supportsColor(stream,stream&&stream.isTTY))},stdout:translateLevel(supportsColor(!0,tty.isatty(1))),stderr:translateLevel(supportsColor(!0,tty.isatty(2)))}}();supportsColor&&(supportsColor.stderr||supportsColor).level>=2&&(exports.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(error){}exports.inspectOpts=Object.keys(process.env).filter((key=>/^debug_/i.test(key))).reduce(((obj,key)=>{const prop=key.substring(6).toLowerCase().replace(/_([a-z])/g,((_,k)=>k.toUpperCase()));let val=process.env[key];return val=!!/^(yes|on|true|enabled)$/i.test(val)||!/^(no|off|false|disabled)$/i.test(val)&&("null"===val?null:Number(val)),obj[prop]=val,obj}),{}),module.exports=requireCommon()(exports);const{formatters:formatters}=module.exports;formatters.o=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts).split("\n").map((str=>str.trim())).join(" ")},formatters.O=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts)}}(node,node.exports)),node.exports}function requireSrc(){return hasRequiredSrc||(hasRequiredSrc=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?src.exports=function requireBrowser$1(){return hasRequiredBrowser$1||(hasRequiredBrowser$1=1,function(module,exports){exports.formatArgs=function formatArgs(args){if(args[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+args[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;args.splice(1,0,c,"color: inherit");let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,(match=>{"%%"!==match&&(index++,"%c"===match&&(lastC=index))})),args.splice(lastC,0,c)},exports.save=function save(namespaces){try{namespaces?exports.storage.setItem("debug",namespaces):exports.storage.removeItem("debug")}catch(error){}},exports.load=function load(){let r;try{r=exports.storage.getItem("debug")}catch(error){}return!r&&"undefined"!=typeof process&&"env"in process&&(r=process.env.DEBUG),r},exports.useColors=function useColors(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},exports.storage=function localstorage(){try{return localStorage}catch(error){}}(),exports.destroy=(()=>{let warned=!1;return()=>{warned||(warned=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],exports.log=console.debug||console.log||(()=>{}),module.exports=requireCommon()(exports);const{formatters:formatters}=module.exports;formatters.j=function(v){try{return JSON.stringify(v)}catch(error){return"[UnexpectedJSONParseError]: "+error.message}}}(browser$1,browser$1.exports)),browser$1.exports}():src.exports=requireNode()),src.exports}var followRedirectsExports=function requireFollowRedirects(){if(hasRequiredFollowRedirects)return followRedirects$1.exports;hasRequiredFollowRedirects=1;var url=require$$0__default$4.default,URL=url.URL,http=require$$3__default.default,https=https__default.default,Writable=require$$0__default$2.default.Writable,assert=require$$4__default$1.default,debug=function requireDebug(){return hasRequiredDebug||(hasRequiredDebug=1,debug_1=function(){if(!debug){try{debug=requireSrc()("follow-redirects")}catch(error){}"function"!=typeof debug&&(debug=function(){})}debug.apply(null,arguments)}),debug_1;var debug}(),useNativeURL=!1;try{assert(new URL)}catch(error){useNativeURL="ERR_INVALID_URL"===error.code}var preservedUrlFields=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],events=["abort","aborted","connect","error","socket","timeout"],eventHandlers=Object.create(null);events.forEach((function(event){eventHandlers[event]=function(arg1,arg2,arg3){this._redirectable.emit(event,arg1,arg2,arg3)}}));var InvalidUrlError=createErrorType("ERR_INVALID_URL","Invalid URL",TypeError),RedirectionError=createErrorType("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),TooManyRedirectsError=createErrorType("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",RedirectionError),MaxBodyLengthExceededError=createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),WriteAfterEndError=createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),destroy=Writable.prototype.destroy||noop;function RedirectableRequest(options,responseCallback){Writable.call(this),this._sanitizeOptions(options),this._options=options,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],responseCallback&&this.on("response",responseCallback);var self=this;this._onNativeResponse=function(response){try{self._processResponse(response)}catch(cause){self.emit("error",cause instanceof RedirectionError?cause:new RedirectionError({cause:cause}))}},this._performRequest()}function wrap(protocols){var exports={maxRedirects:21,maxBodyLength:10485760},nativeProtocols={};return Object.keys(protocols).forEach((function(scheme){var protocol=scheme+":",nativeProtocol=nativeProtocols[protocol]=protocols[scheme],wrappedProtocol=exports[scheme]=Object.create(nativeProtocol);Object.defineProperties(wrappedProtocol,{request:{value:function request(input,options,callback){return!function isURL(value){return URL&&value instanceof URL}(input)?isString(input)?input=spreadUrlObject(parseUrl(input)):(callback=options,options=validateUrl(input),input={protocol:protocol}):input=spreadUrlObject(input),isFunction(options)&&(callback=options,options=null),(options=Object.assign({maxRedirects:exports.maxRedirects,maxBodyLength:exports.maxBodyLength},input,options)).nativeProtocols=nativeProtocols,isString(options.host)||isString(options.hostname)||(options.hostname="::1"),assert.equal(options.protocol,protocol,"protocol mismatch"),debug("options",options),new RedirectableRequest(options,callback)},configurable:!0,enumerable:!0,writable:!0},get:{value:function get(input,options,callback){var wrappedRequest=wrappedProtocol.request(input,options,callback);return wrappedRequest.end(),wrappedRequest},configurable:!0,enumerable:!0,writable:!0}})})),exports}function noop(){}function parseUrl(input){var parsed;if(useNativeURL)parsed=new URL(input);else if(!isString((parsed=validateUrl(url.parse(input))).protocol))throw new InvalidUrlError({input:input});return parsed}function validateUrl(input){if(/^\[/.test(input.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(input.hostname))throw new InvalidUrlError({input:input.href||input});if(/^\[/.test(input.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host))throw new InvalidUrlError({input:input.href||input});return input}function spreadUrlObject(urlObject,target){var spread=target||{};for(var key of preservedUrlFields)spread[key]=urlObject[key];return spread.hostname.startsWith("[")&&(spread.hostname=spread.hostname.slice(1,-1)),""!==spread.port&&(spread.port=Number(spread.port)),spread.path=spread.search?spread.pathname+spread.search:spread.pathname,spread}function removeMatchingHeaders(regex,headers){var lastValue;for(var header in headers)regex.test(header)&&(lastValue=headers[header],delete headers[header]);return null==lastValue?void 0:String(lastValue).trim()}function createErrorType(code,message,baseClass){function CustomError(properties){Error.captureStackTrace(this,this.constructor),Object.assign(this,properties||{}),this.code=code,this.message=this.cause?message+": "+this.cause.message:message}return CustomError.prototype=new(baseClass||Error),Object.defineProperties(CustomError.prototype,{constructor:{value:CustomError,enumerable:!1},name:{value:"Error ["+code+"]",enumerable:!1}}),CustomError}function destroyRequest(request,error){for(var event of events)request.removeListener(event,eventHandlers[event]);request.on("error",noop),request.destroy(error)}function isString(value){return"string"==typeof value||value instanceof String}function isFunction(value){return"function"==typeof value}return RedirectableRequest.prototype=Object.create(Writable.prototype),RedirectableRequest.prototype.abort=function(){destroyRequest(this._currentRequest),this._currentRequest.abort(),this.emit("abort")},RedirectableRequest.prototype.destroy=function(error){return destroyRequest(this._currentRequest,error),destroy.call(this,error),this},RedirectableRequest.prototype.write=function(data,encoding,callback){if(this._ending)throw new WriteAfterEndError;if(!isString(data)&&!function isBuffer(value){return"object"==typeof value&&"length"in value}(data))throw new TypeError("data should be a string, Buffer or Uint8Array");isFunction(encoding)&&(callback=encoding,encoding=null),0!==data.length?this._requestBodyLength+data.length<=this._options.maxBodyLength?(this._requestBodyLength+=data.length,this._requestBodyBuffers.push({data:data,encoding:encoding}),this._currentRequest.write(data,encoding,callback)):(this.emit("error",new MaxBodyLengthExceededError),this.abort()):callback&&callback()},RedirectableRequest.prototype.end=function(data,encoding,callback){if(isFunction(data)?(callback=data,data=encoding=null):isFunction(encoding)&&(callback=encoding,encoding=null),data){var self=this,currentRequest=this._currentRequest;this.write(data,encoding,(function(){self._ended=!0,currentRequest.end(null,null,callback)})),this._ending=!0}else this._ended=this._ending=!0,this._currentRequest.end(null,null,callback)},RedirectableRequest.prototype.setHeader=function(name,value){this._options.headers[name]=value,this._currentRequest.setHeader(name,value)},RedirectableRequest.prototype.removeHeader=function(name){delete this._options.headers[name],this._currentRequest.removeHeader(name)},RedirectableRequest.prototype.setTimeout=function(msecs,callback){var self=this;function destroyOnTimeout(socket){socket.setTimeout(msecs),socket.removeListener("timeout",socket.destroy),socket.addListener("timeout",socket.destroy)}function startTimer(socket){self._timeout&&clearTimeout(self._timeout),self._timeout=setTimeout((function(){self.emit("timeout"),clearTimer()}),msecs),destroyOnTimeout(socket)}function clearTimer(){self._timeout&&(clearTimeout(self._timeout),self._timeout=null),self.removeListener("abort",clearTimer),self.removeListener("error",clearTimer),self.removeListener("response",clearTimer),self.removeListener("close",clearTimer),callback&&self.removeListener("timeout",callback),self.socket||self._currentRequest.removeListener("socket",startTimer)}return callback&&this.on("timeout",callback),this.socket?startTimer(this.socket):this._currentRequest.once("socket",startTimer),this.on("socket",destroyOnTimeout),this.on("abort",clearTimer),this.on("error",clearTimer),this.on("response",clearTimer),this.on("close",clearTimer),this},["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(method){RedirectableRequest.prototype[method]=function(a,b){return this._currentRequest[method](a,b)}})),["aborted","connection","socket"].forEach((function(property){Object.defineProperty(RedirectableRequest.prototype,property,{get:function(){return this._currentRequest[property]}})})),RedirectableRequest.prototype._sanitizeOptions=function(options){if(options.headers||(options.headers={}),options.host&&(options.hostname||(options.hostname=options.host),delete options.host),!options.pathname&&options.path){var searchPos=options.path.indexOf("?");searchPos<0?options.pathname=options.path:(options.pathname=options.path.substring(0,searchPos),options.search=options.path.substring(searchPos))}},RedirectableRequest.prototype._performRequest=function(){var protocol=this._options.protocol,nativeProtocol=this._options.nativeProtocols[protocol];if(!nativeProtocol)throw new TypeError("Unsupported protocol "+protocol);if(this._options.agents){var scheme=protocol.slice(0,-1);this._options.agent=this._options.agents[scheme]}var request=this._currentRequest=nativeProtocol.request(this._options,this._onNativeResponse);for(var event of(request._redirectable=this,events))request.on(event,eventHandlers[event]);if(this._currentUrl=/^\//.test(this._options.path)?url.format(this._options):this._options.path,this._isRedirect){var i=0,self=this,buffers=this._requestBodyBuffers;!function writeNext(error){if(request===self._currentRequest)if(error)self.emit("error",error);else if(i<buffers.length){var buffer=buffers[i++];request.finished||request.write(buffer.data,buffer.encoding,writeNext)}else self._ended&&request.end()}()}},RedirectableRequest.prototype._processResponse=function(response){var statusCode=response.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:response.headers,statusCode:statusCode});var requestHeaders,location=response.headers.location;if(!location||!1===this._options.followRedirects||statusCode<300||statusCode>=400)return response.responseUrl=this._currentUrl,response.redirects=this._redirects,this.emit("response",response),void(this._requestBodyBuffers=[]);if(destroyRequest(this._currentRequest),response.destroy(),++this._redirectCount>this._options.maxRedirects)throw new TooManyRedirectsError;var beforeRedirect=this._options.beforeRedirect;beforeRedirect&&(requestHeaders=Object.assign({Host:response.req.getHeader("host")},this._options.headers));var method=this._options.method;((301===statusCode||302===statusCode)&&"POST"===this._options.method||303===statusCode&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],removeMatchingHeaders(/^content-/i,this._options.headers));var currentHostHeader=removeMatchingHeaders(/^host$/i,this._options.headers),currentUrlParts=parseUrl(this._currentUrl),currentHost=currentHostHeader||currentUrlParts.host,currentUrl=/^\w+:/.test(location)?this._currentUrl:url.format(Object.assign(currentUrlParts,{host:currentHost})),redirectUrl=function resolveUrl(relative,base){return useNativeURL?new URL(relative,base):parseUrl(url.resolve(base,relative))}(location,currentUrl);if(debug("redirecting to",redirectUrl.href),this._isRedirect=!0,spreadUrlObject(redirectUrl,this._options),(redirectUrl.protocol!==currentUrlParts.protocol&&"https:"!==redirectUrl.protocol||redirectUrl.host!==currentHost&&!function isSubdomain(subdomain,domain){assert(isString(subdomain)&&isString(domain));var dot=subdomain.length-domain.length-1;return dot>0&&"."===subdomain[dot]&&subdomain.endsWith(domain)}(redirectUrl.host,currentHost))&&removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),isFunction(beforeRedirect)){var responseDetails={headers:response.headers,statusCode:statusCode},requestDetails={url:currentUrl,method:method,headers:requestHeaders};beforeRedirect(this._options,responseDetails,requestDetails),this._sanitizeOptions(this._options)}this._performRequest()},followRedirects$1.exports=wrap({http:http,https:https}),followRedirects$1.exports.wrap=wrap,followRedirects$1.exports}(),followRedirects=getDefaultExportFromCjs(followRedirectsExports);function parseProtocol(url){const match=/^([-+\w]{1,25})(:?\/\/|:)/.exec(url);return match&&match[1]||""}const DATA_URL_PATTERN=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;const kInternals=Symbol("internals");class AxiosTransformStream extends require$$0__default$2.default.Transform{constructor(options){super({readableHighWaterMark:(options=utils$4.toFlatObject(options,{maxRate:0,chunkSize:65536,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,((prop,source)=>!utils$4.isUndefined(source[prop])))).chunkSize});const internals=this[kInternals]={timeWindow:options.timeWindow,chunkSize:options.chunkSize,maxRate:options.maxRate,minChunkSize:options.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",(event=>{"progress"===event&&(internals.isCaptured||(internals.isCaptured=!0))}))}_read(size){const internals=this[kInternals];return internals.onReadCallback&&internals.onReadCallback(),super._read(size)}_transform(chunk,encoding,callback){const internals=this[kInternals],maxRate=internals.maxRate,readableHighWaterMark=this.readableHighWaterMark,timeWindow=internals.timeWindow,bytesThreshold=maxRate/(1e3/timeWindow),minChunkSize=!1!==internals.minChunkSize?Math.max(internals.minChunkSize,.01*bytesThreshold):0,pushChunk=(_chunk,_callback)=>{const bytes=Buffer.byteLength(_chunk);internals.bytesSeen+=bytes,internals.bytes+=bytes,internals.isCaptured&&this.emit("progress",internals.bytesSeen),this.push(_chunk)?process.nextTick(_callback):internals.onReadCallback=()=>{internals.onReadCallback=null,process.nextTick(_callback)}},transformChunk=(_chunk,_callback)=>{const chunkSize=Buffer.byteLength(_chunk);let bytesLeft,chunkRemainder=null,maxChunkSize=readableHighWaterMark,passed=0;if(maxRate){const now=Date.now();(!internals.ts||(passed=now-internals.ts)>=timeWindow)&&(internals.ts=now,bytesLeft=bytesThreshold-internals.bytes,internals.bytes=bytesLeft<0?-bytesLeft:0,passed=0),bytesLeft=bytesThreshold-internals.bytes}if(maxRate){if(bytesLeft<=0)return setTimeout((()=>{_callback(null,_chunk)}),timeWindow-passed);bytesLeft<maxChunkSize&&(maxChunkSize=bytesLeft)}maxChunkSize&&chunkSize>maxChunkSize&&chunkSize-maxChunkSize>minChunkSize&&(chunkRemainder=_chunk.subarray(maxChunkSize),_chunk=_chunk.subarray(0,maxChunkSize)),pushChunk(_chunk,chunkRemainder?()=>{process.nextTick(_callback,null,chunkRemainder)}:_callback)};transformChunk(chunk,(function transformNextChunk(err,_chunk){if(err)return callback(err);_chunk?transformChunk(_chunk,transformNextChunk):callback(null)}))}}var AxiosTransformStream$1=AxiosTransformStream;const{asyncIterator:asyncIterator}=Symbol;var readBlob$1=async function*(blob){blob.stream?yield*blob.stream():blob.arrayBuffer?yield await blob.arrayBuffer():blob[asyncIterator]?yield*blob[asyncIterator]():yield blob};const BOUNDARY_ALPHABET=utils$4.ALPHABET.ALPHA_DIGIT+"-_",textEncoder=new require$$0$6.TextEncoder,CRLF_BYTES=textEncoder.encode("\r\n");class FormDataPart{constructor(name,value){const{escapeName:escapeName}=this.constructor,isStringValue=utils$4.isString(value);let headers=`Content-Disposition: form-data; name="${escapeName(name)}"${!isStringValue&&value.name?`; filename="${escapeName(value.name)}"`:""}\r\n`;isStringValue?value=textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g,"\r\n")):headers+=`Content-Type: ${value.type||"application/octet-stream"}\r\n`,this.headers=textEncoder.encode(headers+"\r\n"),this.contentLength=isStringValue?value.byteLength:value.size,this.size=this.headers.byteLength+this.contentLength+2,this.name=name,this.value=value}async*encode(){yield this.headers;const{value:value}=this;utils$4.isTypedArray(value)?yield value:yield*readBlob$1(value),yield CRLF_BYTES}static escapeName(name){return String(name).replace(/[\r\n"]/g,(match=>({"\r":"%0D","\n":"%0A",'"':"%22"}[match])))}}var formDataToStream$1=(form,headersHandler,options)=>{const{tag:tag="form-data-boundary",size:size=25,boundary:boundary=tag+"-"+utils$4.generateString(size,BOUNDARY_ALPHABET)}=options||{};if(!utils$4.isFormData(form))throw TypeError("FormData instance required");if(boundary.length<1||boundary.length>70)throw Error("boundary must be 10-70 characters long");const boundaryBytes=textEncoder.encode("--"+boundary+"\r\n"),footerBytes=textEncoder.encode("--"+boundary+"--\r\n\r\n");let contentLength=footerBytes.byteLength;const parts=Array.from(form.entries()).map((([name,value])=>{const part=new FormDataPart(name,value);return contentLength+=part.size,part}));contentLength+=boundaryBytes.byteLength*parts.length,contentLength=utils$4.toFiniteNumber(contentLength);const computedHeaders={"Content-Type":`multipart/form-data; boundary=${boundary}`};return Number.isFinite(contentLength)&&(computedHeaders["Content-Length"]=contentLength),headersHandler&&headersHandler(computedHeaders),require$$0$5.Readable.from(async function*(){for(const part of parts)yield boundaryBytes,yield*part.encode();yield footerBytes}())};class ZlibHeaderTransformStream extends require$$0__default$2.default.Transform{__transform(chunk,encoding,callback){this.push(chunk),callback()}_transform(chunk,encoding,callback){if(0!==chunk.length&&(this._transform=this.__transform,120!==chunk[0])){const header=Buffer.alloc(2);header[0]=120,header[1]=156,this.push(header,encoding)}this.__transform(chunk,encoding,callback)}}var ZlibHeaderTransformStream$1=ZlibHeaderTransformStream;var callbackify$1=(fn,reducer)=>utils$4.isAsyncFn(fn)?function(...args){const cb=args.pop();fn.apply(this,args).then((value=>{try{reducer?cb(null,...reducer(value)):cb(null,value)}catch(err){cb(err)}}),cb)}:fn;const progressEventReducer=(listener,isDownloadStream,freq=3)=>{let bytesNotified=0;const _speedometer=function speedometer(samplesCount,min){samplesCount=samplesCount||10;const bytes=new Array(samplesCount),timestamps=new Array(samplesCount);let firstSampleTS,head=0,tail=0;return min=void 0!==min?min:1e3,function push(chunkLength){const now=Date.now(),startedAt=timestamps[tail];firstSampleTS||(firstSampleTS=now),bytes[head]=chunkLength,timestamps[head]=now;let i=tail,bytesCount=0;for(;i!==head;)bytesCount+=bytes[i++],i%=samplesCount;if(head=(head+1)%samplesCount,head===tail&&(tail=(tail+1)%samplesCount),now-firstSampleTS<min)return;const passed=startedAt&&now-startedAt;return passed?Math.round(1e3*bytesCount/passed):void 0}}(50,250);return function throttle(fn,freq){let lastArgs,timer,timestamp=0,threshold=1e3/freq;const invoke=(args,now=Date.now())=>{timestamp=now,lastArgs=null,timer&&(clearTimeout(timer),timer=null),fn.apply(null,args)};return[(...args)=>{const now=Date.now(),passed=now-timestamp;passed>=threshold?invoke(args,now):(lastArgs=args,timer||(timer=setTimeout((()=>{timer=null,invoke(lastArgs)}),threshold-passed)))},()=>lastArgs&&invoke(lastArgs)]}((e=>{const loaded=e.loaded,total=e.lengthComputable?e.total:void 0,progressBytes=loaded-bytesNotified,rate=_speedometer(progressBytes);bytesNotified=loaded;listener({loaded:loaded,total:total,progress:total?loaded/total:void 0,bytes:progressBytes,rate:rate||void 0,estimated:rate&&total&&loaded<=total?(total-loaded)/rate:void 0,event:e,lengthComputable:null!=total,[isDownloadStream?"download":"upload"]:!0})}),freq)},progressEventDecorator=(total,throttled)=>{const lengthComputable=null!=total;return[loaded=>throttled[0]({lengthComputable:lengthComputable,total:total,loaded:loaded}),throttled[1]]},asyncDecorator=fn=>(...args)=>utils$4.asap((()=>fn(...args))),zlibOptions={flush:zlib__default.default.constants.Z_SYNC_FLUSH,finishFlush:zlib__default.default.constants.Z_SYNC_FLUSH},brotliOptions={flush:zlib__default.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib__default.default.constants.BROTLI_OPERATION_FLUSH},isBrotliSupported=utils$4.isFunction(zlib__default.default.createBrotliDecompress),{http:httpFollow,https:httpsFollow}=followRedirects,isHttps=/https:?/,supportedProtocols=platform.protocols.map((protocol=>protocol+":")),flushOnFinish=(stream,[throttled,flush])=>(stream.on("end",flush).on("error",flush),throttled);function dispatchBeforeRedirect(options,responseDetails){options.beforeRedirects.proxy&&options.beforeRedirects.proxy(options),options.beforeRedirects.config&&options.beforeRedirects.config(options,responseDetails)}function setProxy(options,configProxy,location){let proxy=configProxy;if(!proxy&&!1!==proxy){const proxyUrl=proxyFromEnvExports.getProxyForUrl(location);proxyUrl&&(proxy=new URL(proxyUrl))}if(proxy){if(proxy.username&&(proxy.auth=(proxy.username||"")+":"+(proxy.password||"")),proxy.auth){(proxy.auth.username||proxy.auth.password)&&(proxy.auth=(proxy.auth.username||"")+":"+(proxy.auth.password||""));const base64=Buffer.from(proxy.auth,"utf8").toString("base64");options.headers["Proxy-Authorization"]="Basic "+base64}options.headers.host=options.hostname+(options.port?":"+options.port:"");const proxyHost=proxy.hostname||proxy.host;options.hostname=proxyHost,options.host=proxyHost,options.port=proxy.port,options.path=location,proxy.protocol&&(options.protocol=proxy.protocol.includes(":")?proxy.protocol:`${proxy.protocol}:`)}options.beforeRedirects.proxy=function beforeRedirect(redirectOptions){setProxy(redirectOptions,configProxy,redirectOptions.href)}}const isHttpAdapterSupported="undefined"!=typeof process&&"process"===utils$4.kindOf(process),buildAddressEntry=(address,family)=>(({address:address,family:family})=>{if(!utils$4.isString(address))throw TypeError("address must be a string");return{address:address,family:family||(address.indexOf(".")<0?6:4)}})(utils$4.isObject(address)?address:{address:address,family:family});var httpAdapter=isHttpAdapterSupported&&function httpAdapter(config){return asyncExecutor=async function dispatchHttpRequest(resolve,reject,onDone){let{data:data,lookup:lookup,family:family}=config;const{responseType:responseType,responseEncoding:responseEncoding}=config,method=config.method.toUpperCase();let isDone,req,rejected=!1;if(lookup){const _lookup=callbackify$1(lookup,(value=>utils$4.isArray(value)?value:[value]));lookup=(hostname,opt,cb)=>{_lookup(hostname,opt,((err,arg0,arg1)=>{if(err)return cb(err);const addresses=utils$4.isArray(arg0)?arg0.map((addr=>buildAddressEntry(addr))):[buildAddressEntry(arg0,arg1)];opt.all?cb(err,addresses):cb(err,addresses[0].address,addresses[0].family)}))}}const emitter=new require$$0$2.EventEmitter,onFinished=()=>{config.cancelToken&&config.cancelToken.unsubscribe(abort),config.signal&&config.signal.removeEventListener("abort",abort),emitter.removeAllListeners()};function abort(reason){emitter.emit("abort",!reason||reason.type?new CanceledError(null,config,req):reason)}onDone(((value,isRejected)=>{isDone=!0,isRejected&&(rejected=!0,onFinished())})),emitter.once("abort",reject),(config.cancelToken||config.signal)&&(config.cancelToken&&config.cancelToken.subscribe(abort),config.signal&&(config.signal.aborted?abort():config.signal.addEventListener("abort",abort)));const fullPath=buildFullPath(config.baseURL,config.url),parsed=new URL(fullPath,platform.hasBrowserEnv?platform.origin:void 0),protocol=parsed.protocol||supportedProtocols[0];if("data:"===protocol){let convertedData;if("GET"!==method)return settle(resolve,reject,{status:405,statusText:"method not allowed",headers:{},config:config});try{convertedData=function fromDataURI(uri,asBlob,options){const _Blob=options&&options.Blob||platform.classes.Blob,protocol=parseProtocol(uri);if(void 0===asBlob&&_Blob&&(asBlob=!0),"data"===protocol){uri=protocol.length?uri.slice(protocol.length+1):uri;const match=DATA_URL_PATTERN.exec(uri);if(!match)throw new AxiosError("Invalid URL",AxiosError.ERR_INVALID_URL);const mime=match[1],isBase64=match[2],body=match[3],buffer=Buffer.from(decodeURIComponent(body),isBase64?"base64":"utf8");if(asBlob){if(!_Blob)throw new AxiosError("Blob is not supported",AxiosError.ERR_NOT_SUPPORT);return new _Blob([buffer],{type:mime})}return buffer}throw new AxiosError("Unsupported protocol "+protocol,AxiosError.ERR_NOT_SUPPORT)}(config.url,"blob"===responseType,{Blob:config.env&&config.env.Blob})}catch(err){throw AxiosError.from(err,AxiosError.ERR_BAD_REQUEST,config)}return"text"===responseType?(convertedData=convertedData.toString(responseEncoding),responseEncoding&&"utf8"!==responseEncoding||(convertedData=utils$4.stripBOM(convertedData))):"stream"===responseType&&(convertedData=require$$0__default$2.default.Readable.from(convertedData)),settle(resolve,reject,{data:convertedData,status:200,statusText:"OK",headers:new AxiosHeaders$1,config:config})}if(-1===supportedProtocols.indexOf(protocol))return reject(new AxiosError("Unsupported protocol "+protocol,AxiosError.ERR_BAD_REQUEST,config));const headers=AxiosHeaders$1.from(config.headers).normalize();headers.set("User-Agent","axios/1.7.7",!1);const{onUploadProgress:onUploadProgress,onDownloadProgress:onDownloadProgress}=config,maxRate=config.maxRate;let maxUploadRate,maxDownloadRate;if(utils$4.isSpecCompliantForm(data)){const userBoundary=headers.getContentType(/boundary=([-_\w\d]{10,70})/i);data=formDataToStream$1(data,(formHeaders=>{headers.set(formHeaders)}),{tag:"axios-1.7.7-boundary",boundary:userBoundary&&userBoundary[1]||void 0})}else if(utils$4.isFormData(data)&&utils$4.isFunction(data.getHeaders)){if(headers.set(data.getHeaders()),!headers.hasContentLength())try{const knownLength=await require$$0__default$3.default.promisify(data.getLength).call(data);Number.isFinite(knownLength)&&knownLength>=0&&headers.setContentLength(knownLength)}catch(e){}}else if(utils$4.isBlob(data))data.size&&headers.setContentType(data.type||"application/octet-stream"),headers.setContentLength(data.size||0),data=require$$0__default$2.default.Readable.from(readBlob$1(data));else if(data&&!utils$4.isStream(data)){if(Buffer.isBuffer(data));else if(utils$4.isArrayBuffer(data))data=Buffer.from(new Uint8Array(data));else{if(!utils$4.isString(data))return reject(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",AxiosError.ERR_BAD_REQUEST,config));data=Buffer.from(data,"utf-8")}if(headers.setContentLength(data.length,!1),config.maxBodyLength>-1&&data.length>config.maxBodyLength)return reject(new AxiosError("Request body larger than maxBodyLength limit",AxiosError.ERR_BAD_REQUEST,config))}const contentLength=utils$4.toFiniteNumber(headers.getContentLength());let auth,path;utils$4.isArray(maxRate)?(maxUploadRate=maxRate[0],maxDownloadRate=maxRate[1]):maxUploadRate=maxDownloadRate=maxRate,data&&(onUploadProgress||maxUploadRate)&&(utils$4.isStream(data)||(data=require$$0__default$2.default.Readable.from(data,{objectMode:!1})),data=require$$0__default$2.default.pipeline([data,new AxiosTransformStream$1({maxRate:utils$4.toFiniteNumber(maxUploadRate)})],utils$4.noop),onUploadProgress&&data.on("progress",flushOnFinish(data,progressEventDecorator(contentLength,progressEventReducer(asyncDecorator(onUploadProgress),!1,3))))),config.auth&&(auth=(config.auth.username||"")+":"+(config.auth.password||"")),!auth&&parsed.username&&(auth=parsed.username+":"+parsed.password),auth&&headers.delete("authorization");try{path=buildURL(parsed.pathname+parsed.search,config.params,config.paramsSerializer).replace(/^\?/,"")}catch(err){const customErr=new Error(err.message);return customErr.config=config,customErr.url=config.url,customErr.exists=!0,reject(customErr)}headers.set("Accept-Encoding","gzip, compress, deflate"+(isBrotliSupported?", br":""),!1);const options={path:path,method:method,headers:headers.toJSON(),agents:{http:config.httpAgent,https:config.httpsAgent},auth:auth,protocol:protocol,family:family,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{}};let transport;!utils$4.isUndefined(lookup)&&(options.lookup=lookup),config.socketPath?options.socketPath=config.socketPath:(options.hostname=parsed.hostname.startsWith("[")?parsed.hostname.slice(1,-1):parsed.hostname,options.port=parsed.port,setProxy(options,config.proxy,protocol+"//"+parsed.hostname+(parsed.port?":"+parsed.port:"")+options.path));const isHttpsRequest=isHttps.test(options.protocol);if(options.agent=isHttpsRequest?config.httpsAgent:config.httpAgent,config.transport?transport=config.transport:0===config.maxRedirects?transport=isHttpsRequest?https__default.default:require$$3__default.default:(config.maxRedirects&&(options.maxRedirects=config.maxRedirects),config.beforeRedirect&&(options.beforeRedirects.config=config.beforeRedirect),transport=isHttpsRequest?httpsFollow:httpFollow),config.maxBodyLength>-1?options.maxBodyLength=config.maxBodyLength:options.maxBodyLength=1/0,config.insecureHTTPParser&&(options.insecureHTTPParser=config.insecureHTTPParser),req=transport.request(options,(function handleResponse(res){if(req.destroyed)return;const streams=[res],responseLength=+res.headers["content-length"];if(onDownloadProgress||maxDownloadRate){const transformStream=new AxiosTransformStream$1({maxRate:utils$4.toFiniteNumber(maxDownloadRate)});onDownloadProgress&&transformStream.on("progress",flushOnFinish(transformStream,progressEventDecorator(responseLength,progressEventReducer(asyncDecorator(onDownloadProgress),!0,3)))),streams.push(transformStream)}let responseStream=res;const lastRequest=res.req||req;if(!1!==config.decompress&&res.headers["content-encoding"])switch("HEAD"!==method&&204!==res.statusCode||delete res.headers["content-encoding"],(res.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":streams.push(zlib__default.default.createUnzip(zlibOptions)),delete res.headers["content-encoding"];break;case"deflate":streams.push(new ZlibHeaderTransformStream$1),streams.push(zlib__default.default.createUnzip(zlibOptions)),delete res.headers["content-encoding"];break;case"br":isBrotliSupported&&(streams.push(zlib__default.default.createBrotliDecompress(brotliOptions)),delete res.headers["content-encoding"])}responseStream=streams.length>1?require$$0__default$2.default.pipeline(streams,utils$4.noop):streams[0];const offListeners=require$$0__default$2.default.finished(responseStream,(()=>{offListeners(),onFinished()})),response={status:res.statusCode,statusText:res.statusMessage,headers:new AxiosHeaders$1(res.headers),config:config,request:lastRequest};if("stream"===responseType)response.data=responseStream,settle(resolve,reject,response);else{const responseBuffer=[];let totalResponseBytes=0;responseStream.on("data",(function handleStreamData(chunk){responseBuffer.push(chunk),totalResponseBytes+=chunk.length,config.maxContentLength>-1&&totalResponseBytes>config.maxContentLength&&(rejected=!0,responseStream.destroy(),reject(new AxiosError("maxContentLength size of "+config.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,config,lastRequest)))})),responseStream.on("aborted",(function handlerStreamAborted(){if(rejected)return;const err=new AxiosError("maxContentLength size of "+config.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,config,lastRequest);responseStream.destroy(err),reject(err)})),responseStream.on("error",(function handleStreamError(err){req.destroyed||reject(AxiosError.from(err,null,config,lastRequest))})),responseStream.on("end",(function handleStreamEnd(){try{let responseData=1===responseBuffer.length?responseBuffer[0]:Buffer.concat(responseBuffer);"arraybuffer"!==responseType&&(responseData=responseData.toString(responseEncoding),responseEncoding&&"utf8"!==responseEncoding||(responseData=utils$4.stripBOM(responseData))),response.data=responseData}catch(err){return reject(AxiosError.from(err,null,config,response.request,response))}settle(resolve,reject,response)}))}emitter.once("abort",(err=>{responseStream.destroyed||(responseStream.emit("error",err),responseStream.destroy())}))})),emitter.once("abort",(err=>{reject(err),req.destroy(err)})),req.on("error",(function handleRequestError(err){reject(AxiosError.from(err,null,config,req))})),req.on("socket",(function handleRequestSocket(socket){socket.setKeepAlive(!0,6e4)})),config.timeout){const timeout=parseInt(config.timeout,10);if(Number.isNaN(timeout))return void reject(new AxiosError("error trying to parse `config.timeout` to int",AxiosError.ERR_BAD_OPTION_VALUE,config,req));req.setTimeout(timeout,(function handleRequestTimeout(){if(isDone)return;let timeoutErrorMessage=config.timeout?"timeout of "+config.timeout+"ms exceeded":"timeout exceeded";const transitional=config.transitional||transitionalDefaults;config.timeoutErrorMessage&&(timeoutErrorMessage=config.timeoutErrorMessage),reject(new AxiosError(timeoutErrorMessage,transitional.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,config,req)),abort()}))}if(utils$4.isStream(data)){let ended=!1,errored=!1;data.on("end",(()=>{ended=!0})),data.once("error",(err=>{errored=!0,req.destroy(err)})),data.on("close",(()=>{ended||errored||abort(new CanceledError("Request stream has been aborted",config,req))})),data.pipe(req)}else req.end(data)},new Promise(((resolve,reject)=>{let onDone,isDone;const done=(value,isRejected)=>{isDone||(isDone=!0,onDone&&onDone(value,isRejected))},_reject=reason=>{done(reason,!0),reject(reason)};asyncExecutor((value=>{done(value),resolve(value)}),_reject,(onDoneHandler=>onDone=onDoneHandler)).catch(_reject)}));var asyncExecutor},isURLSameOrigin=platform.hasStandardBrowserEnv?function standardBrowserEnv(){const msie=platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent),urlParsingNode=document.createElement("a");let originURL;function resolveURL(url){let href=url;return msie&&(urlParsingNode.setAttribute("href",href),href=urlParsingNode.href),urlParsingNode.setAttribute("href",href),{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,""):"",host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,""):"",hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,""):"",hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:"/"===urlParsingNode.pathname.charAt(0)?urlParsingNode.pathname:"/"+urlParsingNode.pathname}}return originURL=resolveURL(window.location.href),function isURLSameOrigin(requestURL){const parsed=utils$4.isString(requestURL)?resolveURL(requestURL):requestURL;return parsed.protocol===originURL.protocol&&parsed.host===originURL.host}}():function isURLSameOrigin(){return!0},cookies$1=platform.hasStandardBrowserEnv?{write(name,value,expires,path,domain,secure){const cookie=[name+"="+encodeURIComponent(value)];utils$4.isNumber(expires)&&cookie.push("expires="+new Date(expires).toGMTString()),utils$4.isString(path)&&cookie.push("path="+path),utils$4.isString(domain)&&cookie.push("domain="+domain),!0===secure&&cookie.push("secure"),document.cookie=cookie.join("; ")},read(name){const match=document.cookie.match(new RegExp("(^|;\\s*)("+name+")=([^;]*)"));return match?decodeURIComponent(match[3]):null},remove(name){this.write(name,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};const headersToObject=thing=>thing instanceof AxiosHeaders$1?{...thing}:thing;function mergeConfig(config1,config2){config2=config2||{};const config={};function getMergedValue(target,source,caseless){return utils$4.isPlainObject(target)&&utils$4.isPlainObject(source)?utils$4.merge.call({caseless:caseless},target,source):utils$4.isPlainObject(source)?utils$4.merge({},source):utils$4.isArray(source)?source.slice():source}function mergeDeepProperties(a,b,caseless){return utils$4.isUndefined(b)?utils$4.isUndefined(a)?void 0:getMergedValue(void 0,a,caseless):getMergedValue(a,b,caseless)}function valueFromConfig2(a,b){if(!utils$4.isUndefined(b))return getMergedValue(void 0,b)}function defaultToConfig2(a,b){return utils$4.isUndefined(b)?utils$4.isUndefined(a)?void 0:getMergedValue(void 0,a):getMergedValue(void 0,b)}function mergeDirectKeys(a,b,prop){return prop in config2?getMergedValue(a,b):prop in config1?getMergedValue(void 0,a):void 0}const mergeMap={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(a,b)=>mergeDeepProperties(headersToObject(a),headersToObject(b),!0)};return utils$4.forEach(Object.keys(Object.assign({},config1,config2)),(function computeConfigValue(prop){const merge=mergeMap[prop]||mergeDeepProperties,configValue=merge(config1[prop],config2[prop],prop);utils$4.isUndefined(configValue)&&merge!==mergeDirectKeys||(config[prop]=configValue)})),config}var resolveConfig=config=>{const newConfig=mergeConfig({},config);let contentType,{data:data,withXSRFToken:withXSRFToken,xsrfHeaderName:xsrfHeaderName,xsrfCookieName:xsrfCookieName,headers:headers,auth:auth}=newConfig;if(newConfig.headers=headers=AxiosHeaders$1.from(headers),newConfig.url=buildURL(buildFullPath(newConfig.baseURL,newConfig.url),config.params,config.paramsSerializer),auth&&headers.set("Authorization","Basic "+btoa((auth.username||"")+":"+(auth.password?unescape(encodeURIComponent(auth.password)):""))),utils$4.isFormData(data))if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)headers.setContentType(void 0);else if(!1!==(contentType=headers.getContentType())){const[type,...tokens]=contentType?contentType.split(";").map((token=>token.trim())).filter(Boolean):[];headers.setContentType([type||"multipart/form-data",...tokens].join("; "))}if(platform.hasStandardBrowserEnv&&(withXSRFToken&&utils$4.isFunction(withXSRFToken)&&(withXSRFToken=withXSRFToken(newConfig)),withXSRFToken||!1!==withXSRFToken&&isURLSameOrigin(newConfig.url))){const xsrfValue=xsrfHeaderName&&xsrfCookieName&&cookies$1.read(xsrfCookieName);xsrfValue&&headers.set(xsrfHeaderName,xsrfValue)}return newConfig};var xhrAdapter="undefined"!=typeof XMLHttpRequest&&function(config){return new Promise((function dispatchXhrRequest(resolve,reject){const _config=resolveConfig(config);let requestData=_config.data;const requestHeaders=AxiosHeaders$1.from(_config.headers).normalize();let onCanceled,uploadThrottled,downloadThrottled,flushUpload,flushDownload,{responseType:responseType,onUploadProgress:onUploadProgress,onDownloadProgress:onDownloadProgress}=_config;function done(){flushUpload&&flushUpload(),flushDownload&&flushDownload(),_config.cancelToken&&_config.cancelToken.unsubscribe(onCanceled),_config.signal&&_config.signal.removeEventListener("abort",onCanceled)}let request=new XMLHttpRequest;function onloadend(){if(!request)return;const responseHeaders=AxiosHeaders$1.from("getAllResponseHeaders"in request&&request.getAllResponseHeaders());settle((function _resolve(value){resolve(value),done()}),(function _reject(err){reject(err),done()}),{data:responseType&&"text"!==responseType&&"json"!==responseType?request.response:request.responseText,status:request.status,statusText:request.statusText,headers:responseHeaders,config:config,request:request}),request=null}request.open(_config.method.toUpperCase(),_config.url,!0),request.timeout=_config.timeout,"onloadend"in request?request.onloadend=onloadend:request.onreadystatechange=function handleLoad(){request&&4===request.readyState&&(0!==request.status||request.responseURL&&0===request.responseURL.indexOf("file:"))&&setTimeout(onloadend)},request.onabort=function handleAbort(){request&&(reject(new AxiosError("Request aborted",AxiosError.ECONNABORTED,config,request)),request=null)},request.onerror=function handleError(){reject(new AxiosError("Network Error",AxiosError.ERR_NETWORK,config,request)),request=null},request.ontimeout=function handleTimeout(){let timeoutErrorMessage=_config.timeout?"timeout of "+_config.timeout+"ms exceeded":"timeout exceeded";const transitional=_config.transitional||transitionalDefaults;_config.timeoutErrorMessage&&(timeoutErrorMessage=_config.timeoutErrorMessage),reject(new AxiosError(timeoutErrorMessage,transitional.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,config,request)),request=null},void 0===requestData&&requestHeaders.setContentType(null),"setRequestHeader"in request&&utils$4.forEach(requestHeaders.toJSON(),(function setRequestHeader(val,key){request.setRequestHeader(key,val)})),utils$4.isUndefined(_config.withCredentials)||(request.withCredentials=!!_config.withCredentials),responseType&&"json"!==responseType&&(request.responseType=_config.responseType),onDownloadProgress&&([downloadThrottled,flushDownload]=progressEventReducer(onDownloadProgress,!0),request.addEventListener("progress",downloadThrottled)),onUploadProgress&&request.upload&&([uploadThrottled,flushUpload]=progressEventReducer(onUploadProgress),request.upload.addEventListener("progress",uploadThrottled),request.upload.addEventListener("loadend",flushUpload)),(_config.cancelToken||_config.signal)&&(onCanceled=cancel=>{request&&(reject(!cancel||cancel.type?new CanceledError(null,config,request):cancel),request.abort(),request=null)},_config.cancelToken&&_config.cancelToken.subscribe(onCanceled),_config.signal&&(_config.signal.aborted?onCanceled():_config.signal.addEventListener("abort",onCanceled)));const protocol=parseProtocol(_config.url);protocol&&-1===platform.protocols.indexOf(protocol)?reject(new AxiosError("Unsupported protocol "+protocol+":",AxiosError.ERR_BAD_REQUEST,config)):request.send(requestData||null)}))};var composeSignals$1=(signals,timeout)=>{const{length:length}=signals=signals?signals.filter(Boolean):[];if(timeout||length){let aborted,controller=new AbortController;const onabort=function(reason){if(!aborted){aborted=!0,unsubscribe();const err=reason instanceof Error?reason:this.reason;controller.abort(err instanceof AxiosError?err:new CanceledError(err instanceof Error?err.message:err))}};let timer=timeout&&setTimeout((()=>{timer=null,onabort(new AxiosError(`timeout ${timeout} of ms exceeded`,AxiosError.ETIMEDOUT))}),timeout);const unsubscribe=()=>{signals&&(timer&&clearTimeout(timer),timer=null,signals.forEach((signal=>{signal.unsubscribe?signal.unsubscribe(onabort):signal.removeEventListener("abort",onabort)})),signals=null)};signals.forEach((signal=>signal.addEventListener("abort",onabort)));const{signal:signal}=controller;return signal.unsubscribe=()=>utils$4.asap(unsubscribe),signal}};const streamChunk=function*(chunk,chunkSize){let len=chunk.byteLength;if(!chunkSize||len<chunkSize)return void(yield chunk);let end,pos=0;for(;pos<len;)end=pos+chunkSize,yield chunk.slice(pos,end),pos=end},readStream=async function*(stream){if(stream[Symbol.asyncIterator])return void(yield*stream);const reader=stream.getReader();try{for(;;){const{done:done,value:value}=await reader.read();if(done)break;yield value}}finally{await reader.cancel()}},trackStream=(stream,chunkSize,onProgress,onFinish)=>{const iterator=async function*(iterable,chunkSize){for await(const chunk of readStream(iterable))yield*streamChunk(chunk,chunkSize)}(stream,chunkSize);let done,bytes=0,_onFinish=e=>{done||(done=!0,onFinish&&onFinish(e))};return new ReadableStream({async pull(controller){try{const{done:done,value:value}=await iterator.next();if(done)return _onFinish(),void controller.close();let len=value.byteLength;if(onProgress){let loadedBytes=bytes+=len;onProgress(loadedBytes)}controller.enqueue(new Uint8Array(value))}catch(err){throw _onFinish(err),err}},cancel:reason=>(_onFinish(reason),iterator.return())},{highWaterMark:2})},isFetchSupported="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,isReadableStreamSupported=isFetchSupported&&"function"==typeof ReadableStream,encodeText=isFetchSupported&&("function"==typeof TextEncoder?(encoder=new TextEncoder,str=>encoder.encode(str)):async str=>new Uint8Array(await new Response(str).arrayBuffer()));var encoder;const test=(fn,...args)=>{try{return!!fn(...args)}catch(e){return!1}},supportsRequestStream=isReadableStreamSupported&&test((()=>{let duplexAccessed=!1;const hasContentType=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return duplexAccessed=!0,"half"}}).headers.has("Content-Type");return duplexAccessed&&!hasContentType})),supportsResponseStream=isReadableStreamSupported&&test((()=>utils$4.isReadableStream(new Response("").body))),resolvers={stream:supportsResponseStream&&(res=>res.body)};var res;isFetchSupported&&(res=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((type=>{!resolvers[type]&&(resolvers[type]=utils$4.isFunction(res[type])?res=>res[type]():(_,config)=>{throw new AxiosError(`Response type '${type}' is not supported`,AxiosError.ERR_NOT_SUPPORT,config)})})));const resolveBodyLength=async(headers,body)=>{const length=utils$4.toFiniteNumber(headers.getContentLength());return null==length?(async body=>{if(null==body)return 0;if(utils$4.isBlob(body))return body.size;if(utils$4.isSpecCompliantForm(body)){const _request=new Request(platform.origin,{method:"POST",body:body});return(await _request.arrayBuffer()).byteLength}return utils$4.isArrayBufferView(body)||utils$4.isArrayBuffer(body)?body.byteLength:(utils$4.isURLSearchParams(body)&&(body+=""),utils$4.isString(body)?(await encodeText(body)).byteLength:void 0)})(body):length};var fetchAdapter=isFetchSupported&&(async config=>{let{url:url,method:method,data:data,signal:signal,cancelToken:cancelToken,timeout:timeout,onDownloadProgress:onDownloadProgress,onUploadProgress:onUploadProgress,responseType:responseType,headers:headers,withCredentials:withCredentials="same-origin",fetchOptions:fetchOptions}=resolveConfig(config);responseType=responseType?(responseType+"").toLowerCase():"text";let request,composedSignal=composeSignals$1([signal,cancelToken&&cancelToken.toAbortSignal()],timeout);const unsubscribe=composedSignal&&composedSignal.unsubscribe&&(()=>{composedSignal.unsubscribe()});let requestContentLength;try{if(onUploadProgress&&supportsRequestStream&&"get"!==method&&"head"!==method&&0!==(requestContentLength=await resolveBodyLength(headers,data))){let contentTypeHeader,_request=new Request(url,{method:"POST",body:data,duplex:"half"});if(utils$4.isFormData(data)&&(contentTypeHeader=_request.headers.get("content-type"))&&headers.setContentType(contentTypeHeader),_request.body){const[onProgress,flush]=progressEventDecorator(requestContentLength,progressEventReducer(asyncDecorator(onUploadProgress)));data=trackStream(_request.body,65536,onProgress,flush)}}utils$4.isString(withCredentials)||(withCredentials=withCredentials?"include":"omit");const isCredentialsSupported="credentials"in Request.prototype;request=new Request(url,{...fetchOptions,signal:composedSignal,method:method.toUpperCase(),headers:headers.normalize().toJSON(),body:data,duplex:"half",credentials:isCredentialsSupported?withCredentials:void 0});let response=await fetch(request);const isStreamResponse=supportsResponseStream&&("stream"===responseType||"response"===responseType);if(supportsResponseStream&&(onDownloadProgress||isStreamResponse&&unsubscribe)){const options={};["status","statusText","headers"].forEach((prop=>{options[prop]=response[prop]}));const responseContentLength=utils$4.toFiniteNumber(response.headers.get("content-length")),[onProgress,flush]=onDownloadProgress&&progressEventDecorator(responseContentLength,progressEventReducer(asyncDecorator(onDownloadProgress),!0))||[];response=new Response(trackStream(response.body,65536,onProgress,(()=>{flush&&flush(),unsubscribe&&unsubscribe()})),options)}responseType=responseType||"text";let responseData=await resolvers[utils$4.findKey(resolvers,responseType)||"text"](response,config);return!isStreamResponse&&unsubscribe&&unsubscribe(),await new Promise(((resolve,reject)=>{settle(resolve,reject,{data:responseData,headers:AxiosHeaders$1.from(response.headers),status:response.status,statusText:response.statusText,config:config,request:request})}))}catch(err){if(unsubscribe&&unsubscribe(),err&&"TypeError"===err.name&&/fetch/i.test(err.message))throw Object.assign(new AxiosError("Network Error",AxiosError.ERR_NETWORK,config,request),{cause:err.cause||err});throw AxiosError.from(err,err&&err.code,config,request)}});const knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$4.forEach(knownAdapters,((fn,value)=>{if(fn){try{Object.defineProperty(fn,"name",{value:value})}catch(e){}Object.defineProperty(fn,"adapterName",{value:value})}}));const renderReason=reason=>`- ${reason}`,isResolvedHandle=adapter=>utils$4.isFunction(adapter)||null===adapter||!1===adapter;var adapters_getAdapter=adapters=>{adapters=utils$4.isArray(adapters)?adapters:[adapters];const{length:length}=adapters;let nameOrAdapter,adapter;const rejectedReasons={};for(let i=0;i<length;i++){let id;if(nameOrAdapter=adapters[i],adapter=nameOrAdapter,!isResolvedHandle(nameOrAdapter)&&(adapter=knownAdapters[(id=String(nameOrAdapter)).toLowerCase()],void 0===adapter))throw new AxiosError(`Unknown adapter '${id}'`);if(adapter)break;rejectedReasons[id||"#"+i]=adapter}if(!adapter){const reasons=Object.entries(rejectedReasons).map((([id,state])=>`adapter ${id} `+(!1===state?"is not supported by the environment":"is not available in the build")));throw new AxiosError("There is no suitable adapter to dispatch the request "+(length?reasons.length>1?"since :\n"+reasons.map(renderReason).join("\n"):" "+renderReason(reasons[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return adapter};function throwIfCancellationRequested(config){if(config.cancelToken&&config.cancelToken.throwIfRequested(),config.signal&&config.signal.aborted)throw new CanceledError(null,config)}function dispatchRequest(config){throwIfCancellationRequested(config),config.headers=AxiosHeaders$1.from(config.headers),config.data=transformData.call(config,config.transformRequest),-1!==["post","put","patch"].indexOf(config.method)&&config.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters_getAdapter(config.adapter||defaults$1.adapter)(config).then((function onAdapterResolution(response){return throwIfCancellationRequested(config),response.data=transformData.call(config,config.transformResponse,response),response.headers=AxiosHeaders$1.from(response.headers),response}),(function onAdapterRejection(reason){return isCancel(reason)||(throwIfCancellationRequested(config),reason&&reason.response&&(reason.response.data=transformData.call(config,config.transformResponse,reason.response),reason.response.headers=AxiosHeaders$1.from(reason.response.headers))),Promise.reject(reason)}))}const validators$1={};["object","boolean","number","function","string","symbol"].forEach(((type,i)=>{validators$1[type]=function validator(thing){return typeof thing===type||"a"+(i<1?"n ":" ")+type}}));const deprecatedWarnings={};validators$1.transitional=function transitional(validator,version,message){function formatMessage(opt,desc){return"[Axios v1.7.7] Transitional option '"+opt+"'"+desc+(message?". "+message:"")}return(value,opt,opts)=>{if(!1===validator)throw new AxiosError(formatMessage(opt," has been removed"+(version?" in "+version:"")),AxiosError.ERR_DEPRECATED);return version&&!deprecatedWarnings[opt]&&(deprecatedWarnings[opt]=!0,console.warn(formatMessage(opt," has been deprecated since v"+version+" and will be removed in the near future"))),!validator||validator(value,opt,opts)}};var validator={assertOptions:function assertOptions(options,schema,allowUnknown){if("object"!=typeof options)throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const keys=Object.keys(options);let i=keys.length;for(;i-- >0;){const opt=keys[i],validator=schema[opt];if(validator){const value=options[opt],result=void 0===value||validator(value,opt,options);if(!0!==result)throw new AxiosError("option "+opt+" must be "+result,AxiosError.ERR_BAD_OPTION_VALUE)}else if(!0!==allowUnknown)throw new AxiosError("Unknown option "+opt,AxiosError.ERR_BAD_OPTION)}},validators:validators$1};const validators=validator.validators;class Axios{constructor(instanceConfig){this.defaults=instanceConfig,this.interceptors={request:new InterceptorManager$1,response:new InterceptorManager$1}}async request(configOrUrl,config){try{return await this._request(configOrUrl,config)}catch(err){if(err instanceof Error){let dummy;Error.captureStackTrace?Error.captureStackTrace(dummy={}):dummy=new Error;const stack=dummy.stack?dummy.stack.replace(/^.+\n/,""):"";try{err.stack?stack&&!String(err.stack).endsWith(stack.replace(/^.+\n.+\n/,""))&&(err.stack+="\n"+stack):err.stack=stack}catch(e){}}throw err}}_request(configOrUrl,config){"string"==typeof configOrUrl?(config=config||{}).url=configOrUrl:config=configOrUrl||{},config=mergeConfig(this.defaults,config);const{transitional:transitional,paramsSerializer:paramsSerializer,headers:headers}=config;void 0!==transitional&&validator.assertOptions(transitional,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),null!=paramsSerializer&&(utils$4.isFunction(paramsSerializer)?config.paramsSerializer={serialize:paramsSerializer}:validator.assertOptions(paramsSerializer,{encode:validators.function,serialize:validators.function},!0)),config.method=(config.method||this.defaults.method||"get").toLowerCase();let contextHeaders=headers&&utils$4.merge(headers.common,headers[config.method]);headers&&utils$4.forEach(["delete","get","head","post","put","patch","common"],(method=>{delete headers[method]})),config.headers=AxiosHeaders$1.concat(contextHeaders,headers);const requestInterceptorChain=[];let synchronousRequestInterceptors=!0;this.interceptors.request.forEach((function unshiftRequestInterceptors(interceptor){"function"==typeof interceptor.runWhen&&!1===interceptor.runWhen(config)||(synchronousRequestInterceptors=synchronousRequestInterceptors&&interceptor.synchronous,requestInterceptorChain.unshift(interceptor.fulfilled,interceptor.rejected))}));const responseInterceptorChain=[];let promise;this.interceptors.response.forEach((function pushResponseInterceptors(interceptor){responseInterceptorChain.push(interceptor.fulfilled,interceptor.rejected)}));let len,i=0;if(!synchronousRequestInterceptors){const chain=[dispatchRequest.bind(this),void 0];for(chain.unshift.apply(chain,requestInterceptorChain),chain.push.apply(chain,responseInterceptorChain),len=chain.length,promise=Promise.resolve(config);i<len;)promise=promise.then(chain[i++],chain[i++]);return promise}len=requestInterceptorChain.length;let newConfig=config;for(i=0;i<len;){const onFulfilled=requestInterceptorChain[i++],onRejected=requestInterceptorChain[i++];try{newConfig=onFulfilled(newConfig)}catch(error){onRejected.call(this,error);break}}try{promise=dispatchRequest.call(this,newConfig)}catch(error){return Promise.reject(error)}for(i=0,len=responseInterceptorChain.length;i<len;)promise=promise.then(responseInterceptorChain[i++],responseInterceptorChain[i++]);return promise}getUri(config){return buildURL(buildFullPath((config=mergeConfig(this.defaults,config)).baseURL,config.url),config.params,config.paramsSerializer)}}utils$4.forEach(["delete","get","head","options"],(function forEachMethodNoData(method){Axios.prototype[method]=function(url,config){return this.request(mergeConfig(config||{},{method:method,url:url,data:(config||{}).data}))}})),utils$4.forEach(["post","put","patch"],(function forEachMethodWithData(method){function generateHTTPMethod(isForm){return function httpMethod(url,data,config){return this.request(mergeConfig(config||{},{method:method,headers:isForm?{"Content-Type":"multipart/form-data"}:{},url:url,data:data}))}}Axios.prototype[method]=generateHTTPMethod(),Axios.prototype[method+"Form"]=generateHTTPMethod(!0)}));var Axios$1=Axios;class CancelToken{constructor(executor){if("function"!=typeof executor)throw new TypeError("executor must be a function.");let resolvePromise;this.promise=new Promise((function promiseExecutor(resolve){resolvePromise=resolve}));const token=this;this.promise.then((cancel=>{if(!token._listeners)return;let i=token._listeners.length;for(;i-- >0;)token._listeners[i](cancel);token._listeners=null})),this.promise.then=onfulfilled=>{let _resolve;const promise=new Promise((resolve=>{token.subscribe(resolve),_resolve=resolve})).then(onfulfilled);return promise.cancel=function reject(){token.unsubscribe(_resolve)},promise},executor((function cancel(message,config,request){token.reason||(token.reason=new CanceledError(message,config,request),resolvePromise(token.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(listener){this.reason?listener(this.reason):this._listeners?this._listeners.push(listener):this._listeners=[listener]}unsubscribe(listener){if(!this._listeners)return;const index=this._listeners.indexOf(listener);-1!==index&&this._listeners.splice(index,1)}toAbortSignal(){const controller=new AbortController,abort=err=>{controller.abort(err)};return this.subscribe(abort),controller.signal.unsubscribe=()=>this.unsubscribe(abort),controller.signal}static source(){let cancel;return{token:new CancelToken((function executor(c){cancel=c})),cancel:cancel}}}var CancelToken$1=CancelToken;const HttpStatusCode={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode).forEach((([key,value])=>{HttpStatusCode[value]=key}));var HttpStatusCode$1=HttpStatusCode;const axios=function createInstance(defaultConfig){const context=new Axios$1(defaultConfig),instance=bind(Axios$1.prototype.request,context);return utils$4.extend(instance,Axios$1.prototype,context,{allOwnKeys:!0}),utils$4.extend(instance,context,null,{allOwnKeys:!0}),instance.create=function create(instanceConfig){return createInstance(mergeConfig(defaultConfig,instanceConfig))},instance}(defaults$1);axios.Axios=Axios$1,axios.CanceledError=CanceledError,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel,axios.VERSION="1.7.7",axios.toFormData=toFormData,axios.AxiosError=AxiosError,axios.Cancel=axios.CanceledError,axios.all=function all(promises){return Promise.all(promises)},axios.spread=function spread(callback){return function wrap(arr){return callback.apply(null,arr)}},axios.isAxiosError=function isAxiosError(payload){return utils$4.isObject(payload)&&!0===payload.isAxiosError},axios.mergeConfig=mergeConfig,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=thing=>formDataToJSON(utils$4.isHTMLForm(thing)?new FormData(thing):thing),axios.getAdapter=adapters_getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;var axios$1=axios;const baseDir$2=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class Environment{constructor(config){this.config=config,this.certificate="",this.cert_key="",this.agent={},this.isLoaded=!1}getIsLoaded(){return this.isLoaded}getConfig(){return this.config}getCertKey(){return this.cert_key}getCert(){return this.certificate}getHttpAgent(){return this.agent}checkRequiredSettings(){try{const requiredConfigFields={dfe:["pathCertificado","senhaCertificado"],nfe:["ambiente"]};let missingConfigurations={dfe:[],nfe:[]},errors=[],tableData=[];if(Object.keys(requiredConfigFields).forEach((categoryKey=>{const category=this.config[categoryKey];if(category){const fields=requiredConfigFields[categoryKey];if(fields){fields.forEach((fieldKey=>{missingConfigurations[categoryKey]||(missingConfigurations[categoryKey]=[]),void 0===category[fieldKey]&&(missingConfigurations[categoryKey]||(missingConfigurations[categoryKey]=[]),missingConfigurations[categoryKey].push(fieldKey))}));const missingConfig=missingConfigurations[categoryKey];missingConfig&&missingConfig.length>0&&(errors.push(`Configurações faltando em '${categoryKey}': [${missingConfig.join(", ")}].`),tableData.push({Categoria:categoryKey,Faltando:missingConfig.join(", ")}))}}else errors.push(`Chave principal faltando: '${categoryKey}'.`),tableData.push({Categoria:categoryKey,Faltando:"Chave principal faltando"})})),errors.length>0)throw console.log("Configurações necessárias faltando:"),console.table(tableData),new Error(`Erro ao validar configurações: ${errors.join(" ")}`);return{missingConfigurations:missingConfigurations,message:"Todas as configurações necessárias estão presentes.",success:!0}}catch(error){throw new Error(`Erro ao validar configurações: ${error.message}`)}}loadCertificateWithPEM(){return new Promise(((resolve,reject)=>{try{const pfxPath=this.config.dfe.pathCertificado,pfxPassword=this.config.dfe.senhaCertificado,pfxFile=fs__default.default.readFileSync(pfxPath),certsDir=path__default.default.resolve(baseDir$2,"certs"),caCerts=fs__default.default.readdirSync(certsDir).map((filename=>{const tmp=`${certsDir}/${filename}`;return fs__default.default.readFileSync(tmp)}));pem__default.default.readPkcs12(pfxFile,{p12Password:pfxPassword},(async(error,result)=>{if(error)return error.message.toLowerCase().includes("mac verify error")?reject(new Error("Erro ao ler o certificado: Senha incorreta.")):reject(new Error(`Erro ao ler o certificado: ${error.message}`));const key=result.key;this.cert_key=key;const cert=result.cert;this.certificate=cert;const certForge=forge.pki.certificateFromPem(cert),now=new Date;if(now<certForge.validity.notBefore||now>certForge.validity.notAfter)return reject(new Error("Erro ao carregar o certificado: O certificado fornecido expirou ou ainda não é válido."));this.agent=new https__default.default.Agent({key:key,cert:cert,ca:caCerts}),resolve({success:!0,message:"Certificado Carregado com Sucesso."})}))}catch(error){reject(new Error(error.message))}}))}loadCertificateWithNodeForge(){return new Promise(((resolve,reject)=>{try{const pfxPath=this.config.dfe.pathCertificado,pfxPassword=this.config.dfe.senhaCertificado,pfxFile=fs__default.default.readFileSync(pfxPath),p12Asn1=forge.asn1.fromDer(pfxFile.toString("binary")),p12=forge.pkcs12.pkcs12FromAsn1(p12Asn1,pfxPassword),keyBags=p12.getBags({bagType:forge.pki.oids.pkcs8ShroudedKeyBag}),certBags=p12.getBags({bagType:forge.pki.oids.certBag}),key=keyBags[forge.pki.oids.pkcs8ShroudedKeyBag]?.[0]?.key;if(!key)return reject(new Error("Erro ao carregar chave privada do certificado."));const keyPem=forge.pki.privateKeyToPem(key);this.cert_key=keyPem;const cert=certBags[forge.pki.oids.certBag]?.[0]?.cert;if(!cert)return reject(new Error("Erro ao carregar certificado."));const certPem=forge.pki.certificateToPem(cert);this.certificate=certPem;const certForge=forge.pki.certificateFromPem(forge.pki.certificateToPem(cert)),now=new Date;if(now<certForge.validity.notBefore||now>certForge.validity.notAfter)return reject(new Error("Erro ao carregar o certificado: O certificado fornecido expirou ou ainda não é válido."));const certsDir=path__default.default.resolve(baseDir$2,"certs"),caCerts=fs__default.default.readdirSync(certsDir).map((filename=>{const tmp=`${certsDir}/${filename}`;return fs__default.default.readFileSync(tmp)}));this.agent=new https__default.default.Agent({key:keyPem,cert:certPem,ca:caCerts}),resolve({success:!0,message:"Certificado Carregado com Sucesso."})}catch(error){reject(new Error(error.message))}}))}configAxios(){try{const axiosConfig={headers:{"Content-Type":"text/xml; charset=utf-8"},httpsAgent:this.agent,timeout:this.config.lib?.connection?.timeout||6e4};return axios$1.create(axiosConfig)}catch(error){throw new Error(error.message)}}async loadEnvironment(){this.checkRequiredSettings(),this.config.lib?.useOpenSSL||void 0===this.config.lib?.useOpenSSL?await this.loadCertificateWithPEM():await this.loadCertificateWithNodeForge();const axios=this.configAxios();return this.isLoaded=!0,{axios:axios}}}var hasRequiredXpath,lib$2={},signedXml={},xpath={};function requireXpath(){return hasRequiredXpath||(hasRequiredXpath=1,function(exports){!function(exports){var forEach=function(f,xs){for(var i=0;i<xs.length;i+=1)f(xs[i],i,xs)},reduce=function(f,seed,xs){var acc=seed;return forEach((function(x,i){acc=f(acc,x,i)}),xs),acc},map=function(f,xs){var mapped=new Array(xs.length);return forEach((function(x,i){mapped[i]=f(x)}),xs),mapped};function toString(x){return x.toString()}var join=function(s,xs){return xs.join(s)},wrap=function(pref,suf,str){return pref+str+suf},prototypeConcat=Array.prototype.concat;function assign(target,varArgs){for(var to=Object(target),index=1;index<arguments.length;index++){var nextSource=arguments[index];if(null!=nextSource)for(var nextKey in nextSource)Object.prototype.hasOwnProperty.call(nextSource,nextKey)&&(to[nextKey]=nextSource[nextKey])}return to}var NodeTypes_ELEMENT_NODE=1,NodeTypes_ATTRIBUTE_NODE=2,NodeTypes_TEXT_NODE=3,NodeTypes_CDATA_SECTION_NODE=4,NodeTypes_PROCESSING_INSTRUCTION_NODE=7,NodeTypes_COMMENT_NODE=8,NodeTypes_DOCUMENT_NODE=9,NodeTypes_DOCUMENT_TYPE_NODE=10,NodeTypes_DOCUMENT_FRAGMENT_NODE=11;function XPathParser(){this.init()}function XPath(e){this.expression=e}function setIfUnset(obj,prop,value){prop in obj||(obj[prop]=value)}function Expression(){}function UnaryOperation(rhs){arguments.length>0&&this.init(rhs)}function UnaryMinusOperation(rhs){arguments.length>0&&this.init(rhs)}function BinaryOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function OrOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function AndOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function EqualsOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function NotEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function LessThanOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function GreaterThanOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function LessThanOrEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function GreaterThanOrEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function PlusOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function MinusOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function MultiplyOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function DivOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function ModOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function BarOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function PathExpr(filter,filterPreds,locpath){arguments.length>0&&this.init(filter,filterPreds,locpath)}function findRoot(node){for(;node&&node.parentNode;)node=node.parentNode;return node}function applyStepWithPredicates(step,xpc,node){return PathExpr.applyPredicates(step.predicates,xpc,PathExpr.applyStep(step,xpc,node))}function applyStepToNodes(context,nodes,step){return function flatten(arr){for(var result=[],start=0;start<arr.length;start+=32767){var chunk=arr.slice(start,start+32767);result=prototypeConcat.apply(result,chunk)}return result}(map(applyStepWithPredicates.bind(null,step,context),nodes))}function LocationPath(abs,steps){arguments.length>0&&this.init(abs,steps)}function Step(axis,nodetest,preds){arguments.length>0&&this.init(axis,nodetest,preds)}function NodeTest(type,value){arguments.length>0&&this.init(type,value)}function VariableReference(v){arguments.length>0&&this.init(v)}function FunctionCall(fn,args){arguments.length>0&&this.init(fn,args)}XPathParser.prototype=new Object,XPathParser.prototype.constructor=XPathParser,XPathParser.superclass=Object.prototype,XPathParser.prototype.init=function(){this.reduceActions=[],this.reduceActions[3]=function(rhs){return new OrOperation(rhs[0],rhs[2])},this.reduceActions[5]=function(rhs){return new AndOperation(rhs[0],rhs[2])},this.reduceActions[7]=function(rhs){return new EqualsOperation(rhs[0],rhs[2])},this.reduceActions[8]=function(rhs){return new NotEqualOperation(rhs[0],rhs[2])},this.reduceActions[10]=function(rhs){return new LessThanOperation(rhs[0],rhs[2])},this.reduceActions[11]=function(rhs){return new GreaterThanOperation(rhs[0],rhs[2])},this.reduceActions[12]=function(rhs){return new LessThanOrEqualOperation(rhs[0],rhs[2])},this.reduceActions[13]=function(rhs){return new GreaterThanOrEqualOperation(rhs[0],rhs[2])},this.reduceActions[15]=function(rhs){return new PlusOperation(rhs[0],rhs[2])},this.reduceActions[16]=function(rhs){return new MinusOperation(rhs[0],rhs[2])},this.reduceActions[18]=function(rhs){return new MultiplyOperation(rhs[0],rhs[2])},this.reduceActions[19]=function(rhs){return new DivOperation(rhs[0],rhs[2])},this.reduceActions[20]=function(rhs){return new ModOperation(rhs[0],rhs[2])},this.reduceActions[22]=function(rhs){return new UnaryMinusOperation(rhs[1])},this.reduceActions[24]=function(rhs){return new BarOperation(rhs[0],rhs[2])},this.reduceActions[25]=function(rhs){return new PathExpr(void 0,void 0,rhs[0])},this.reduceActions[27]=function(rhs){return rhs[0].locationPath=rhs[2],rhs[0]},this.reduceActions[28]=function(rhs){return rhs[0].locationPath=rhs[2],rhs[0].locationPath.steps.unshift(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[0]},this.reduceActions[29]=function(rhs){return new PathExpr(rhs[0],[],void 0)},this.reduceActions[30]=function(rhs){return Utilities.instance_of(rhs[0],PathExpr)?(null==rhs[0].filterPredicates&&(rhs[0].filterPredicates=[]),rhs[0].filterPredicates.push(rhs[1]),rhs[0]):new PathExpr(rhs[0],[rhs[1]],void 0)},this.reduceActions[32]=function(rhs){return rhs[1]},this.reduceActions[33]=function(rhs){return new XString(rhs[0])},this.reduceActions[34]=function(rhs){return new XNumber(rhs[0])},this.reduceActions[36]=function(rhs){return new FunctionCall(rhs[0],[])},this.reduceActions[37]=function(rhs){return new FunctionCall(rhs[0],rhs[2])},this.reduceActions[38]=function(rhs){return[rhs[0]]},this.reduceActions[39]=function(rhs){return rhs[2].unshift(rhs[0]),rhs[2]},this.reduceActions[43]=function(rhs){return new LocationPath(!0,[])},this.reduceActions[44]=function(rhs){return rhs[1].absolute=!0,rhs[1]},this.reduceActions[46]=function(rhs){return new LocationPath(!1,[rhs[0]])},this.reduceActions[47]=function(rhs){return rhs[0].steps.push(rhs[2]),rhs[0]},this.reduceActions[49]=function(rhs){return new Step(rhs[0],rhs[1],[])},this.reduceActions[50]=function(rhs){return new Step(Step.CHILD,rhs[0],[])},this.reduceActions[51]=function(rhs){return new Step(rhs[0],rhs[1],rhs[2])},this.reduceActions[52]=function(rhs){return new Step(Step.CHILD,rhs[0],rhs[1])},this.reduceActions[54]=function(rhs){return[rhs[0]]},this.reduceActions[55]=function(rhs){return rhs[1].unshift(rhs[0]),rhs[1]},this.reduceActions[56]=function(rhs){return"ancestor"==rhs[0]?Step.ANCESTOR:"ancestor-or-self"==rhs[0]?Step.ANCESTORORSELF:"attribute"==rhs[0]?Step.ATTRIBUTE:"child"==rhs[0]?Step.CHILD:"descendant"==rhs[0]?Step.DESCENDANT:"descendant-or-self"==rhs[0]?Step.DESCENDANTORSELF:"following"==rhs[0]?Step.FOLLOWING:"following-sibling"==rhs[0]?Step.FOLLOWINGSIBLING:"namespace"==rhs[0]?Step.NAMESPACE:"parent"==rhs[0]?Step.PARENT:"preceding"==rhs[0]?Step.PRECEDING:"preceding-sibling"==rhs[0]?Step.PRECEDINGSIBLING:"self"==rhs[0]?Step.SELF:-1},this.reduceActions[57]=function(rhs){return Step.ATTRIBUTE},this.reduceActions[59]=function(rhs){return"comment"==rhs[0]?NodeTest.commentTest:"text"==rhs[0]?NodeTest.textTest:"processing-instruction"==rhs[0]?NodeTest.anyPiTest:"node"==rhs[0]?NodeTest.nodeTest:new NodeTest(-1,void 0)},this.reduceActions[60]=function(rhs){return new NodeTest.PITest(rhs[2])},this.reduceActions[61]=function(rhs){return rhs[1]},this.reduceActions[63]=function(rhs){return rhs[1].absolute=!0,rhs[1].steps.unshift(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[1]},this.reduceActions[64]=function(rhs){return rhs[0].steps.push(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[0].steps.push(rhs[2]),rhs[0]},this.reduceActions[65]=function(rhs){return new Step(Step.SELF,NodeTest.nodeTest,[])},this.reduceActions[66]=function(rhs){return new Step(Step.PARENT,NodeTest.nodeTest,[])},this.reduceActions[67]=function(rhs){return new VariableReference(rhs[1])},this.reduceActions[68]=function(rhs){return NodeTest.nameTestAny},this.reduceActions[69]=function(rhs){return new NodeTest.NameTestPrefixAny(rhs[0].split(":")[0])},this.reduceActions[70]=function(rhs){return new NodeTest.NameTestQName(rhs[0])}},XPathParser.actionTable=[" s s sssssssss s ss s ss"," s ","r rrrrrrrrr rrrrrrr rr r "," rrrrr "," s s sssssssss s ss s ss","rs rrrrrrrr s sssssrrrrrr rrs rs "," s s sssssssss s ss s ss"," s "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s "," s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr r ","a ","r s rr r ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrs rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r srrrrrrrr rrrrrrs rr sr ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r "," sssss ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrr rrrrr rr r "," s "," s "," rrrrr "," s s sssssssss s sss s ss","r srrrrrrrr rrrrrrs rr r "," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss ss s ss"," s s sssssssss s ss s ss"," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr rr "," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," rr "," s "," rs ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrr rr r "," r "," s ","r srrrrrrrr rrrrrrs rr r ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s s sssssssss s ss s ss","r rrrrrrrrr rrrrrrr rr rr "," r "],XPathParser.actionTableNumber=[" 1 0 /.-,+*)(' & %$ # \"!"," J ","a aaaaaaaaa aaaaaaa aa a "," YYYYY "," 1 0 /.-,+*)(' & %$ # \"!","K1 KKKKKKKK . +*)('KKKKKK KK# K\" "," 1 0 /.-,+*)(' & %$ # \"!"," N "," O ","e eeeeeeeee eeeeeee ee ee ","f fffffffff fffffff ff ff ","d ddddddddd ddddddd dd dd ","B BBBBBBBBB BBBBBBB BB BB ","A AAAAAAAAA AAAAAAA AA AA "," P "," Q "," 1 . +*)(' # \" ","b bbbbbbbbb bbbbbbb bb b "," ","! S !! ! ",'" T" "" " ',"$ V $$ U $$ $ ","& &ZY&& &XW && & ",") ))))) )))\\[ )) ) ",". ....._^] ..... .. . ","1 11111111 11111 11 1 ","5 55555555 55555` 55 5 ","7 77777777 777777 77 7 ","9 99999999 999999 99 9 ",": c:::::::: ::::::b :: a: ","I fIIIIIIII IIIIIIe II I ","= ========= ======= == == ","? ????????? ??????? ?? ?? ","C CCCCCCCCC CCCCCCC CC CC ","J JJJJJJJJ JJJJJJ JJ J ","M MMMMMMMM MMMMMM MM M ","N NNNNNNNNN NNNNNNN NN N ","P PPPPPPPPP PPPPPPP PP P "," +*)(' ","R RRRRRRRRR RRRRRRR RR aR ","U UUUUUUUUU UUUUUUU UU U ","Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ ","c ccccccccc ccccccc cc cc "," j ","L fLLLLLLLL LLLLLLe LL L ","6 66666666 66666 66 6 "," k "," l "," XXXXX "," 1 0 /.-,+*)(' & %$m # \"!","_ f________ ______e __ _ "," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 . +*)(' # \" "," 1 . +*)(' # \" ","> >>>>>>>>> >>>>>>> >> >> "," 1 . +*)(' # \" "," 1 . +*)(' # \" ","Q QQQQQQQQQ QQQQQQQ QQ aQ ","V VVVVVVVVV VVVVVVV VV aV ","T TTTTTTTTT TTTTTTT TT T ","@ @@@@@@@@@ @@@@@@@ @@ @@ "," ‡ ","[ [[[[[[[[[ [[[[[[[ [[ [[ ","D DDDDDDDDD DDDDDDD DD DD "," HH "," ˆ "," F‰ ","# T# ## # ","% V %% U %% % ","' 'ZY'' 'XW '' ' ","( (ZY(( (XW (( ( ","+ +++++ +++\\[ ++ + ","* ***** ***\\[ ** * ","- ----- ---\\[ -- - ",", ,,,,, ,,,\\[ ,, , ","0 00000_^] 00000 00 0 ","/ /////_^] ///// // / ","2 22222222 22222 22 2 ","3 33333333 33333 33 3 ","4 44444444 44444 44 4 ","8 88888888 888888 88 8 "," ^ "," Š ","; f;;;;;;;; ;;;;;;e ;; ; ","< f<<<<<<<< <<<<<<e << < ","O OOOOOOOOO OOOOOOO OO O ","` ````````` ``````` `` ` ","S SSSSSSSSS SSSSSSS SS S ","W WWWWWWWWW WWWWWWW WW W ","\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\ \\\\ ","E EEEEEEEEE EEEEEEE EE EE "," 1 0 /.-,+*)(' & %$ # \"!","] ]]]]]]]]] ]]]]]]] ]] ]] "," G "],XPathParser.gotoTable=["3456789:;<=>?@ AB CDEFGH IJ "," "," "," ","L456789:;<=>?@ AB CDEFGH IJ "," M EFGH IJ "," N;<=>?@ AB CDEFGH IJ "," "," "," "," "," "," "," "," "," "," S EFGH IJ "," "," "," "," "," "," "," "," "," "," "," "," "," e "," "," "," "," "," "," "," "," "," h J "," i j "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABpqCDEFGH IJ "," "," r6789:;<=>?@ AB CDEFGH IJ "," s789:;<=>?@ AB CDEFGH IJ "," t89:;<=>?@ AB CDEFGH IJ "," u89:;<=>?@ AB CDEFGH IJ "," v9:;<=>?@ AB CDEFGH IJ "," w9:;<=>?@ AB CDEFGH IJ "," x9:;<=>?@ AB CDEFGH IJ "," y9:;<=>?@ AB CDEFGH IJ "," z:;<=>?@ AB CDEFGH IJ "," {:;<=>?@ AB CDEFGH IJ "," |;<=>?@ AB CDEFGH IJ "," };<=>?@ AB CDEFGH IJ "," ~;<=>?@ AB CDEFGH IJ "," =>?@ AB CDEFGH IJ ","€456789:;<=>?@ AB CDEFGH IJ"," ‚ EFGH IJ "," ƒ EFGH IJ "," "," „ GH IJ "," … GH IJ "," i † "," i ‡ "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABŒqCDEFGH IJ "," "," "],XPathParser.productions=[[1,1,2],[2,1,3],[3,1,4],[3,3,3,-9,4],[4,1,5],[4,3,4,-8,5],[5,1,6],[5,3,5,-22,6],[5,3,5,-5,6],[6,1,7],[6,3,6,-23,7],[6,3,6,-24,7],[6,3,6,-6,7],[6,3,6,-7,7],[7,1,8],[7,3,7,-25,8],[7,3,7,-26,8],[8,1,9],[8,3,8,-12,9],[8,3,8,-11,9],[8,3,8,-10,9],[9,1,10],[9,2,-26,9],[10,1,11],[10,3,10,-27,11],[11,1,12],[11,1,13],[11,3,13,-28,14],[11,3,13,-4,14],[13,1,15],[13,2,13,16],[15,1,17],[15,3,-29,2,-30],[15,1,-15],[15,1,-16],[15,1,18],[18,3,-13,-29,-30],[18,4,-13,-29,19,-30],[19,1,20],[19,3,20,-31,19],[20,1,2],[12,1,14],[12,1,21],[21,1,-28],[21,2,-28,14],[21,1,22],[14,1,23],[14,3,14,-28,23],[14,1,24],[23,2,25,26],[23,1,26],[23,3,25,26,27],[23,2,26,27],[23,1,28],[27,1,16],[27,2,16,27],[25,2,-14,-3],[25,1,-32],[26,1,29],[26,3,-20,-29,-30],[26,4,-21,-29,-15,-30],[16,3,-33,30,-34],[30,1,2],[22,2,-4,14],[24,3,14,-4,23],[28,1,-35],[28,1,-2],[17,2,-36,-18],[29,1,-17],[29,1,-19],[29,1,-18]],XPathParser.DOUBLEDOT=2,XPathParser.DOUBLECOLON=3,XPathParser.DOUBLESLASH=4,XPathParser.NOTEQUAL=5,XPathParser.LESSTHANOREQUAL=6,XPathParser.GREATERTHANOREQUAL=7,XPathParser.AND=8,XPathParser.OR=9,XPathParser.MOD=10,XPathParser.DIV=11,XPathParser.MULTIPLYOPERATOR=12,XPathParser.FUNCTIONNAME=13,XPathParser.AXISNAME=14,XPathParser.LITERAL=15,XPathParser.NUMBER=16,XPathParser.ASTERISKNAMETEST=17,XPathParser.QNAME=18,XPathParser.NCNAMECOLONASTERISK=19,XPathParser.NODETYPE=20,XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL=21,XPathParser.EQUALS=22,XPathParser.LESSTHAN=23,XPathParser.GREATERTHAN=24,XPathParser.PLUS=25,XPathParser.MINUS=26,XPathParser.BAR=27,XPathParser.SLASH=28,XPathParser.LEFTPARENTHESIS=29,XPathParser.RIGHTPARENTHESIS=30,XPathParser.COMMA=31,XPathParser.AT=32,XPathParser.LEFTBRACKET=33,XPathParser.RIGHTBRACKET=34,XPathParser.DOT=35,XPathParser.DOLLAR=36,XPathParser.prototype.tokenize=function(s1){for(var types=[],values=[],s=s1+"\0",pos=0,c=s.charAt(pos++);;){for(;" "==c||"\t"==c||"\r"==c||"\n"==c;)c=s.charAt(pos++);if("\0"==c||pos>=s.length)break;if("("!=c)if(")"!=c)if("["!=c)if("]"!=c)if("@"!=c)if(","!=c)if("|"!=c)if("+"!=c)if("-"!=c)if("="!=c)if("$"!=c)if("."!=c)if("'"!=c&&'"'!=c)if(c>="0"&&c<="9"){number=c;for(c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);if("."==c&&s.charAt(pos)>="0"&&s.charAt(pos)<="9")for(number+=c,number+=s.charAt(pos++),c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);types.push(XPathParser.NUMBER),values.push(number)}else if("*"!=c)if(":"!=c||":"!=s.charAt(pos))if("/"!=c)if("!"!=c||"="!=s.charAt(pos))if("<"!=c)if(">"!=c){if("_"!=c&&!Utilities.isLetter(c.charCodeAt(0)))throw new Error("Unexpected character "+c);var name=c;for(c=s.charAt(pos++);Utilities.isNCNameChar(c.charCodeAt(0));)name+=c,c=s.charAt(pos++);if(types.length>0&&(last=types[types.length-1])!=XPathParser.AT&&last!=XPathParser.DOUBLECOLON&&last!=XPathParser.LEFTPARENTHESIS&&last!=XPathParser.LEFTBRACKET&&last!=XPathParser.AND&&last!=XPathParser.OR&&last!=XPathParser.MOD&&last!=XPathParser.DIV&&last!=XPathParser.MULTIPLYOPERATOR&&last!=XPathParser.SLASH&&last!=XPathParser.DOUBLESLASH&&last!=XPathParser.BAR&&last!=XPathParser.PLUS&&last!=XPathParser.MINUS&&last!=XPathParser.EQUALS&&last!=XPathParser.NOTEQUAL&&last!=XPathParser.LESSTHAN&&last!=XPathParser.LESSTHANOREQUAL&&last!=XPathParser.GREATERTHAN&&last!=XPathParser.GREATERTHANOREQUAL){if("and"==name){types.push(XPathParser.AND),values.push(name);continue}if("or"==name){types.push(XPathParser.OR),values.push(name);continue}if("mod"==name){types.push(XPathParser.MOD),values.push(name);continue}if("div"==name){types.push(XPathParser.DIV),values.push(name);continue}}if(":"==c){if("*"==s.charAt(pos)){types.push(XPathParser.NCNAMECOLONASTERISK),values.push(name+":*"),pos++,c=s.charAt(pos++);continue}if("_"==s.charAt(pos)||Utilities.isLetter(s.charCodeAt(pos))){for(name+=":",c=s.charAt(pos++);Utilities.isNCNameChar(c.charCodeAt(0));)name+=c,c=s.charAt(pos++);if("("==c){types.push(XPathParser.FUNCTIONNAME),values.push(name);continue}types.push(XPathParser.QNAME),values.push(name);continue}if(":"==s.charAt(pos)){types.push(XPathParser.AXISNAME),values.push(name);continue}}if("("==c){if("comment"==name||"text"==name||"node"==name){types.push(XPathParser.NODETYPE),values.push(name);continue}if("processing-instruction"==name){")"==s.charAt(pos)?types.push(XPathParser.NODETYPE):types.push(XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL),values.push(name);continue}types.push(XPathParser.FUNCTIONNAME),values.push(name);continue}types.push(XPathParser.QNAME),values.push(name)}else{if("="==s.charAt(pos)){types.push(XPathParser.GREATERTHANOREQUAL),values.push(">="),pos++,c=s.charAt(pos++);continue}types.push(XPathParser.GREATERTHAN),values.push(">"),c=s.charAt(pos++)}else{if("="==s.charAt(pos)){types.push(XPathParser.LESSTHANOREQUAL),values.push("<="),pos++,c=s.charAt(pos++);continue}types.push(XPathParser.LESSTHAN),values.push("<"),c=s.charAt(pos++)}else types.push(XPathParser.NOTEQUAL),values.push("!="),pos++,c=s.charAt(pos++);else{if("/"==(c=s.charAt(pos++))){types.push(XPathParser.DOUBLESLASH),values.push("//"),c=s.charAt(pos++);continue}types.push(XPathParser.SLASH),values.push("/")}else types.push(XPathParser.DOUBLECOLON),values.push("::"),pos++,c=s.charAt(pos++);else{var last;if(types.length>0&&(last=types[types.length-1])!=XPathParser.AT&&last!=XPathParser.DOUBLECOLON&&last!=XPathParser.LEFTPARENTHESIS&&last!=XPathParser.LEFTBRACKET&&last!=XPathParser.AND&&last!=XPathParser.OR&&last!=XPathParser.MOD&&last!=XPathParser.DIV&&last!=XPathParser.MULTIPLYOPERATOR&&last!=XPathParser.SLASH&&last!=XPathParser.DOUBLESLASH&&last!=XPathParser.BAR&&last!=XPathParser.PLUS&&last!=XPathParser.MINUS&&last!=XPathParser.EQUALS&&last!=XPathParser.NOTEQUAL&&last!=XPathParser.LESSTHAN&&last!=XPathParser.LESSTHANOREQUAL&&last!=XPathParser.GREATERTHAN&&last!=XPathParser.GREATERTHANOREQUAL){types.push(XPathParser.MULTIPLYOPERATOR),values.push(c),c=s.charAt(pos++);continue}types.push(XPathParser.ASTERISKNAMETEST),values.push(c),c=s.charAt(pos++)}else{for(var delimiter=c,literal="";pos<s.length&&(c=s.charAt(pos))!==delimiter;)literal+=c,pos+=1;if(c!==delimiter)throw XPathException.fromMessage("Unterminated string literal: "+delimiter+literal);pos+=1,types.push(XPathParser.LITERAL),values.push(literal),c=s.charAt(pos++)}else{if("."==(c=s.charAt(pos++))){types.push(XPathParser.DOUBLEDOT),values.push(".."),c=s.charAt(pos++);continue}if(c>="0"&&c<="9"){var number="."+c;for(c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);types.push(XPathParser.NUMBER),values.push(number);continue}types.push(XPathParser.DOT),values.push(".")}else types.push(XPathParser.DOLLAR),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.EQUALS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.MINUS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.PLUS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.BAR),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.COMMA),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.AT),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.RIGHTBRACKET),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.LEFTBRACKET),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.RIGHTPARENTHESIS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.LEFTPARENTHESIS),values.push(c),c=s.charAt(pos++)}return types.push(1),values.push("[EOF]"),[types,values]},XPathParser.SHIFT="s",XPathParser.REDUCE="r",XPathParser.ACCEPT="a",XPathParser.prototype.parse=function(s){var types,values,res=this.tokenize(s);if(null!=res){types=res[0],values=res[1];var a,t,tokenPos=0,state=[],tokenType=[],tokenValue=[];for(state.push(0),tokenType.push(1),tokenValue.push("_S"),a=types[tokenPos],t=values[tokenPos++];;)switch(s=state[state.length-1],XPathParser.actionTable[s].charAt(a-1)){case XPathParser.SHIFT:tokenType.push(-a),tokenValue.push(t),state.push(XPathParser.actionTableNumber[s].charCodeAt(a-1)-32),a=types[tokenPos],t=values[tokenPos++];break;case XPathParser.REDUCE:for(var num=XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][1],rhs=[],i=0;i<num;i++)tokenType.pop(),rhs.unshift(tokenValue.pop()),state.pop();var s_=state[state.length-1];tokenType.push(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][0]),null==this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32]?tokenValue.push(rhs[0]):tokenValue.push(this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32](rhs)),state.push(XPathParser.gotoTable[s_].charCodeAt(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][0]-2)-33);break;case XPathParser.ACCEPT:return new XPath(tokenValue.pop());default:throw new Error("XPath parse error")}}},XPath.prototype=new Object,XPath.prototype.constructor=XPath,XPath.superclass=Object.prototype,XPath.prototype.toString=function(){return this.expression.toString()},XPath.prototype.evaluate=function(c){return c.contextNode=c.expressionContextNode,c.contextSize=1,c.contextPosition=1,c.isHtml&&(setIfUnset(c,"caseInsensitive",!0),setIfUnset(c,"allowAnyNamespaceForNoPrefix",!0)),setIfUnset(c,"caseInsensitive",!1),this.expression.evaluate(c)},XPath.XML_NAMESPACE_URI="http://www.w3.org/XML/1998/namespace",XPath.XMLNS_NAMESPACE_URI="http://www.w3.org/2000/xmlns/",Expression.prototype=new Object,Expression.prototype.constructor=Expression,Expression.superclass=Object.prototype,Expression.prototype.init=function(){},Expression.prototype.toString=function(){return"<Expression>"},Expression.prototype.evaluate=function(c){throw new Error("Could not evaluate expression.")},UnaryOperation.prototype=new Expression,UnaryOperation.prototype.constructor=UnaryOperation,UnaryOperation.superclass=Expression.prototype,UnaryOperation.prototype.init=function(rhs){this.rhs=rhs},UnaryMinusOperation.prototype=new UnaryOperation,UnaryMinusOperation.prototype.constructor=UnaryMinusOperation,UnaryMinusOperation.superclass=UnaryOperation.prototype,UnaryMinusOperation.prototype.init=function(rhs){UnaryMinusOperation.superclass.init.call(this,rhs)},UnaryMinusOperation.prototype.evaluate=function(c){return this.rhs.evaluate(c).number().negate()},UnaryMinusOperation.prototype.toString=function(){return"-"+this.rhs.toString()},BinaryOperation.prototype=new Expression,BinaryOperation.prototype.constructor=BinaryOperation,BinaryOperation.superclass=Expression.prototype,BinaryOperation.prototype.init=function(lhs,rhs){this.lhs=lhs,this.rhs=rhs},OrOperation.prototype=new BinaryOperation,OrOperation.prototype.constructor=OrOperation,OrOperation.superclass=BinaryOperation.prototype,OrOperation.prototype.init=function(lhs,rhs){OrOperation.superclass.init.call(this,lhs,rhs)},OrOperation.prototype.toString=function(){return"("+this.lhs.toString()+" or "+this.rhs.toString()+")"},OrOperation.prototype.evaluate=function(c){var b=this.lhs.evaluate(c).bool();return b.booleanValue()?b:this.rhs.evaluate(c).bool()},AndOperation.prototype=new BinaryOperation,AndOperation.prototype.constructor=AndOperation,AndOperation.superclass=BinaryOperation.prototype,AndOperation.prototype.init=function(lhs,rhs){AndOperation.superclass.init.call(this,lhs,rhs)},AndOperation.prototype.toString=function(){return"("+this.lhs.toString()+" and "+this.rhs.toString()+")"},AndOperation.prototype.evaluate=function(c){var b=this.lhs.evaluate(c).bool();return b.booleanValue()?this.rhs.evaluate(c).bool():b},EqualsOperation.prototype=new BinaryOperation,EqualsOperation.prototype.constructor=EqualsOperation,EqualsOperation.superclass=BinaryOperation.prototype,EqualsOperation.prototype.init=function(lhs,rhs){EqualsOperation.superclass.init.call(this,lhs,rhs)},EqualsOperation.prototype.toString=function(){return"("+this.lhs.toString()+" = "+this.rhs.toString()+")"},EqualsOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).equals(this.rhs.evaluate(c))},NotEqualOperation.prototype=new BinaryOperation,NotEqualOperation.prototype.constructor=NotEqualOperation,NotEqualOperation.superclass=BinaryOperation.prototype,NotEqualOperation.prototype.init=function(lhs,rhs){NotEqualOperation.superclass.init.call(this,lhs,rhs)},NotEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" != "+this.rhs.toString()+")"},NotEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).notequal(this.rhs.evaluate(c))},LessThanOperation.prototype=new BinaryOperation,LessThanOperation.prototype.constructor=LessThanOperation,LessThanOperation.superclass=BinaryOperation.prototype,LessThanOperation.prototype.init=function(lhs,rhs){LessThanOperation.superclass.init.call(this,lhs,rhs)},LessThanOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).lessthan(this.rhs.evaluate(c))},LessThanOperation.prototype.toString=function(){return"("+this.lhs.toString()+" < "+this.rhs.toString()+")"},GreaterThanOperation.prototype=new BinaryOperation,GreaterThanOperation.prototype.constructor=GreaterThanOperation,GreaterThanOperation.superclass=BinaryOperation.prototype,GreaterThanOperation.prototype.init=function(lhs,rhs){GreaterThanOperation.superclass.init.call(this,lhs,rhs)},GreaterThanOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).greaterthan(this.rhs.evaluate(c))},GreaterThanOperation.prototype.toString=function(){return"("+this.lhs.toString()+" > "+this.rhs.toString()+")"},LessThanOrEqualOperation.prototype=new BinaryOperation,LessThanOrEqualOperation.prototype.constructor=LessThanOrEqualOperation,LessThanOrEqualOperation.superclass=BinaryOperation.prototype,LessThanOrEqualOperation.prototype.init=function(lhs,rhs){LessThanOrEqualOperation.superclass.init.call(this,lhs,rhs)},LessThanOrEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).lessthanorequal(this.rhs.evaluate(c))},LessThanOrEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" <= "+this.rhs.toString()+")"},GreaterThanOrEqualOperation.prototype=new BinaryOperation,GreaterThanOrEqualOperation.prototype.constructor=GreaterThanOrEqualOperation,GreaterThanOrEqualOperation.superclass=BinaryOperation.prototype,GreaterThanOrEqualOperation.prototype.init=function(lhs,rhs){GreaterThanOrEqualOperation.superclass.init.call(this,lhs,rhs)},GreaterThanOrEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).greaterthanorequal(this.rhs.evaluate(c))},GreaterThanOrEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" >= "+this.rhs.toString()+")"},PlusOperation.prototype=new BinaryOperation,PlusOperation.prototype.constructor=PlusOperation,PlusOperation.superclass=BinaryOperation.prototype,PlusOperation.prototype.init=function(lhs,rhs){PlusOperation.superclass.init.call(this,lhs,rhs)},PlusOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().plus(this.rhs.evaluate(c).number())},PlusOperation.prototype.toString=function(){return"("+this.lhs.toString()+" + "+this.rhs.toString()+")"},MinusOperation.prototype=new BinaryOperation,MinusOperation.prototype.constructor=MinusOperation,MinusOperation.superclass=BinaryOperation.prototype,MinusOperation.prototype.init=function(lhs,rhs){MinusOperation.superclass.init.call(this,lhs,rhs)},MinusOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().minus(this.rhs.evaluate(c).number())},MinusOperation.prototype.toString=function(){return"("+this.lhs.toString()+" - "+this.rhs.toString()+")"},MultiplyOperation.prototype=new BinaryOperation,MultiplyOperation.prototype.constructor=MultiplyOperation,MultiplyOperation.superclass=BinaryOperation.prototype,MultiplyOperation.prototype.init=function(lhs,rhs){MultiplyOperation.superclass.init.call(this,lhs,rhs)},MultiplyOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().multiply(this.rhs.evaluate(c).number())},MultiplyOperation.prototype.toString=function(){return"("+this.lhs.toString()+" * "+this.rhs.toString()+")"},DivOperation.prototype=new BinaryOperation,DivOperation.prototype.constructor=DivOperation,DivOperation.superclass=BinaryOperation.prototype,DivOperation.prototype.init=function(lhs,rhs){DivOperation.superclass.init.call(this,lhs,rhs)},DivOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().div(this.rhs.evaluate(c).number())},DivOperation.prototype.toString=function(){return"("+this.lhs.toString()+" div "+this.rhs.toString()+")"},ModOperation.prototype=new BinaryOperation,ModOperation.prototype.constructor=ModOperation,ModOperation.superclass=BinaryOperation.prototype,ModOperation.prototype.init=function(lhs,rhs){ModOperation.superclass.init.call(this,lhs,rhs)},ModOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().mod(this.rhs.evaluate(c).number())},ModOperation.prototype.toString=function(){return"("+this.lhs.toString()+" mod "+this.rhs.toString()+")"},BarOperation.prototype=new BinaryOperation,BarOperation.prototype.constructor=BarOperation,BarOperation.superclass=BinaryOperation.prototype,BarOperation.prototype.init=function(lhs,rhs){BarOperation.superclass.init.call(this,lhs,rhs)},BarOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).nodeset().union(this.rhs.evaluate(c).nodeset())},BarOperation.prototype.toString=function(){return map(toString,[this.lhs,this.rhs]).join(" | ")},PathExpr.prototype=new Expression,PathExpr.prototype.constructor=PathExpr,PathExpr.superclass=Expression.prototype,PathExpr.prototype.init=function(filter,filterPreds,locpath){PathExpr.superclass.init.call(this),this.filter=filter,this.filterPredicates=filterPreds,this.locationPath=locpath},PathExpr.applyPredicates=function(predicates,c,nodes){if(0===predicates.length)return nodes;var ctx=c.extend({});return reduce((function(inNodes,pred){return ctx.contextSize=inNodes.length,f=function(node,i){return ctx.contextNode=node,ctx.contextPosition=i+1,PathExpr.predicateMatches(pred,ctx)},filtered=[],forEach((function(x,i){f(x,i)&&filtered.push(x)}),inNodes),filtered;var f,filtered}),nodes,predicates)},PathExpr.getRoot=function(xpc,nodes){var firstNode=nodes[0];if(firstNode.nodeType===NodeTypes_DOCUMENT_NODE)return firstNode;if(xpc.virtualRoot)return xpc.virtualRoot;var ownerDoc=firstNode.ownerDocument;if(ownerDoc)return ownerDoc;for(var n=firstNode;null!=n.parentNode;)n=n.parentNode;return n},PathExpr.applyStep=function(step,xpc,node){var newNodes=[];switch(xpc.contextNode=node,step.axis){case Step.ANCESTOR:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(xpc.contextNode):xpc.contextNode.parentNode;null!=m&&(step.nodeTest.matches(m,xpc)&&newNodes.push(m),m!==xpc.virtualRoot);)m=m.parentNode;break;case Step.ANCESTORORSELF:for(var m=xpc.contextNode;null!=m&&(step.nodeTest.matches(m,xpc)&&newNodes.push(m),m!==xpc.virtualRoot);m=m.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(m):m.parentNode);break;case Step.ATTRIBUTE:var nnm=xpc.contextNode.attributes;if(null!=nnm)for(var k=0;k<nnm.length;k++){m=nnm.item(k);step.nodeTest.matches(m,xpc)&&newNodes.push(m)}break;case Step.CHILD:for(m=xpc.contextNode.firstChild;null!=m;m=m.nextSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.DESCENDANT:for(var st=[xpc.contextNode.firstChild];st.length>0;)for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling;break;case Step.DESCENDANTORSELF:step.nodeTest.matches(xpc.contextNode,xpc)&&newNodes.push(xpc.contextNode);for(st=[xpc.contextNode.firstChild];st.length>0;)for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling;break;case Step.FOLLOWING:if(xpc.contextNode===xpc.virtualRoot)break;st=[];null!=xpc.contextNode.firstChild?st.unshift(xpc.contextNode.firstChild):st.unshift(xpc.contextNode.nextSibling);for(m=xpc.contextNode.parentNode;null!=m&&m.nodeType!=NodeTypes_DOCUMENT_NODE&&m!==xpc.virtualRoot;m=m.parentNode)st.unshift(m.nextSibling);do{for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling}while(st.length>0);break;case Step.FOLLOWINGSIBLING:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.nextSibling;null!=m;m=m.nextSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.NAMESPACE:var n={};if(xpc.contextNode.nodeType==NodeTypes_ELEMENT_NODE){n.xml=XPath.XML_NAMESPACE_URI,n.xmlns=XPath.XMLNS_NAMESPACE_URI;for(m=xpc.contextNode;null!=m&&m.nodeType==NodeTypes_ELEMENT_NODE;m=m.parentNode)for(k=0;k<m.attributes.length;k++){var attr=m.attributes.item(k),nm=String(attr.name);if("xmlns"==nm)null==n[""]&&(n[""]=attr.value);else if(nm.length>6&&"xmlns:"==nm.substring(0,6)){null==n[pre=nm.substring(6,nm.length)]&&(n[pre]=attr.value)}}for(var pre in n){var nsn=new XPathNamespace(pre,n[pre],xpc.contextNode);step.nodeTest.matches(nsn,xpc)&&newNodes.push(nsn)}}break;case Step.PARENT:m=null,xpc.contextNode!==xpc.virtualRoot&&(m=xpc.contextNode.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(xpc.contextNode):xpc.contextNode.parentNode),null!=m&&step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.PRECEDING:st=null!=xpc.virtualRoot?[xpc.virtualRoot]:[findRoot(xpc.contextNode)];outer:for(;st.length>0;)for(m=st.pop();null!=m;){if(m==xpc.contextNode)break outer;step.nodeTest.matches(m,xpc)&&newNodes.unshift(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling}break;case Step.PRECEDINGSIBLING:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.previousSibling;null!=m;m=m.previousSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.SELF:step.nodeTest.matches(xpc.contextNode,xpc)&&newNodes.push(xpc.contextNode)}return newNodes},PathExpr.applySteps=function(steps,xpc,nodes){return reduce(applyStepToNodes.bind(null,xpc),nodes,steps)},PathExpr.prototype.applyFilter=function(c,xpc){if(!this.filter)return{nodes:[c.contextNode]};var ns=this.filter.evaluate(c);if(!Utilities.instance_of(ns,XNodeSet)){if(null!=this.filterPredicates&&this.filterPredicates.length>0||null!=this.locationPath)throw new Error("Path expression filter must evaluate to a nodeset if predicates or location path are used");return{nonNodes:ns}}return{nodes:PathExpr.applyPredicates(this.filterPredicates||[],xpc,ns.toUnsortedArray())}},PathExpr.applyLocationPath=function(locationPath,xpc,nodes){if(!locationPath)return nodes;var startNodes=locationPath.absolute?[PathExpr.getRoot(xpc,nodes)]:nodes;return PathExpr.applySteps(locationPath.steps,xpc,startNodes)},PathExpr.prototype.evaluate=function(c){var xpc=assign(new XPathContext,c),filterResult=this.applyFilter(c,xpc);if("nonNodes"in filterResult)return filterResult.nonNodes;var ns=new XNodeSet;return ns.addArray(PathExpr.applyLocationPath(this.locationPath,xpc,filterResult.nodes)),ns},PathExpr.predicateMatches=function(pred,c){var res=pred.evaluate(c);return Utilities.instance_of(res,XNumber)?c.contextPosition===res.numberValue():res.booleanValue()},PathExpr.predicateString=function(predicate){return wrap("[","]",predicate.toString())},PathExpr.predicatesString=function(predicates){return join("",map(PathExpr.predicateString,predicates))},PathExpr.prototype.toString=function(){if(null!=this.filter){var filterStr=toString(this.filter);return Utilities.instance_of(this.filter,XString)?wrap("'","'",filterStr):null!=this.filterPredicates&&this.filterPredicates.length?wrap("(",")",filterStr)+PathExpr.predicatesString(this.filterPredicates):null!=this.locationPath?filterStr+(this.locationPath.absolute?"":"/")+toString(this.locationPath):filterStr}return toString(this.locationPath)},PathExpr.getOwnerElement=function(n){if(n.ownerElement)return n.ownerElement;try{if(n.selectSingleNode)return n.selectSingleNode("..")}catch(e){}for(var elts=(n.nodeType==NodeTypes_DOCUMENT_NODE?n:n.ownerDocument).getElementsByTagName("*"),i=0;i<elts.length;i++)for(var elt=elts.item(i),nnm=elt.attributes,j=0;j<nnm.length;j++){if(nnm.item(j)===n)return elt}return null},LocationPath.prototype=new Object,LocationPath.prototype.constructor=LocationPath,LocationPath.superclass=Object.prototype,LocationPath.prototype.init=function(abs,steps){this.absolute=abs,this.steps=steps},LocationPath.prototype.toString=function(){return(this.absolute?"/":"")+map(toString,this.steps).join("/")},Step.prototype=new Object,Step.prototype.constructor=Step,Step.superclass=Object.prototype,Step.prototype.init=function(axis,nodetest,preds){this.axis=axis,this.nodeTest=nodetest,this.predicates=preds},Step.prototype.toString=function(){return Step.STEPNAMES[this.axis]+"::"+this.nodeTest.toString()+PathExpr.predicatesString(this.predicates)},Step.ANCESTOR=0,Step.ANCESTORORSELF=1,Step.ATTRIBUTE=2,Step.CHILD=3,Step.DESCENDANT=4,Step.DESCENDANTORSELF=5,Step.FOLLOWING=6,Step.FOLLOWINGSIBLING=7,Step.NAMESPACE=8,Step.PARENT=9,Step.PRECEDING=10,Step.PRECEDINGSIBLING=11,Step.SELF=12,Step.STEPNAMES=reduce((function(acc,x){return acc[x[0]]=x[1],acc}),{},[[Step.ANCESTOR,"ancestor"],[Step.ANCESTORORSELF,"ancestor-or-self"],[Step.ATTRIBUTE,"attribute"],[Step.CHILD,"child"],[Step.DESCENDANT,"descendant"],[Step.DESCENDANTORSELF,"descendant-or-self"],[Step.FOLLOWING,"following"],[Step.FOLLOWINGSIBLING,"following-sibling"],[Step.NAMESPACE,"namespace"],[Step.PARENT,"parent"],[Step.PRECEDING,"preceding"],[Step.PRECEDINGSIBLING,"preceding-sibling"],[Step.SELF,"self"]]),NodeTest.prototype=new Object,NodeTest.prototype.constructor=NodeTest,NodeTest.superclass=Object.prototype,NodeTest.prototype.init=function(type,value){this.type=type,this.value=value},NodeTest.prototype.toString=function(){return"<unknown nodetest type>"},NodeTest.prototype.matches=function(n,xpc){console.warn("unknown node test type")},NodeTest.NAMETESTANY=0,NodeTest.NAMETESTPREFIXANY=1,NodeTest.NAMETESTQNAME=2,NodeTest.COMMENT=3,NodeTest.TEXT=4,NodeTest.PI=5,NodeTest.NODE=6,NodeTest.isNodeType=function(types){return function(node){return function(values,value){for(var i=0;i<values.length;i+=1)if(values[i]===value)return!0;return!1}(types,node.nodeType)}},NodeTest.makeNodeTestType=function(type,members,ctor){var newType=ctor||function(){};return newType.prototype=new NodeTest(type),newType.prototype.constructor=newType,assign(newType.prototype,members),newType},NodeTest.makeNodeTypeTest=function(type,nodeTypes,stringVal){return new(NodeTest.makeNodeTestType(type,{matches:NodeTest.isNodeType(nodeTypes),toString:(value=stringVal,function(){return value})}));var value},NodeTest.hasPrefix=function(node){return node.prefix||-1!==(node.nodeName||node.tagName).indexOf(":")},NodeTest.isElementOrAttribute=NodeTest.isNodeType([1,2]),NodeTest.nameSpaceMatches=function(prefix,xpc,n){var nNamespace=n.namespaceURI||"";if(!prefix)return!nNamespace||xpc.allowAnyNamespaceForNoPrefix&&!NodeTest.hasPrefix(n);var ns=xpc.namespaceResolver.getNamespace(prefix,xpc.expressionContextNode);if(null==ns)throw new Error("Cannot resolve QName "+prefix);return ns===nNamespace},NodeTest.localNameMatches=function(localName,xpc,n){var nLocalName=n.localName||n.nodeName;return xpc.caseInsensitive?localName.toLowerCase()===nLocalName.toLowerCase():localName===nLocalName},NodeTest.NameTestPrefixAny=NodeTest.makeNodeTestType(NodeTest.NAMETESTPREFIXANY,{matches:function(n,xpc){return NodeTest.isElementOrAttribute(n)&&NodeTest.nameSpaceMatches(this.prefix,xpc,n)},toString:function(){return this.prefix+":*"}},(function NameTestPrefixAny(prefix){this.prefix=prefix})),NodeTest.NameTestQName=NodeTest.makeNodeTestType(NodeTest.NAMETESTQNAME,{matches:function(n,xpc){return NodeTest.isNodeType([NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,XPathNamespace.XPATH_NAMESPACE_NODE])(n)&&NodeTest.nameSpaceMatches(this.prefix,xpc,n)&&NodeTest.localNameMatches(this.localName,xpc,n)},toString:function(){return this.name}},(function NameTestQName(name){var nameParts=name.split(":");this.name=name,this.prefix=nameParts.length>1?nameParts[0]:null,this.localName=nameParts[nameParts.length>1?1:0]})),NodeTest.PITest=NodeTest.makeNodeTestType(NodeTest.PI,{matches:function(n,xpc){return NodeTest.isNodeType([NodeTypes_PROCESSING_INSTRUCTION_NODE])(n)&&(n.target||n.nodeName)===this.name},toString:function(){return wrap('processing-instruction("','")',this.name)}},(function(name){this.name=name})),NodeTest.nameTestAny=NodeTest.makeNodeTypeTest(NodeTest.NAMETESTANY,[NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,XPathNamespace.XPATH_NAMESPACE_NODE],"*"),NodeTest.textTest=NodeTest.makeNodeTypeTest(NodeTest.TEXT,[NodeTypes_TEXT_NODE,NodeTypes_CDATA_SECTION_NODE],"text()"),NodeTest.commentTest=NodeTest.makeNodeTypeTest(NodeTest.COMMENT,[NodeTypes_COMMENT_NODE],"comment()"),NodeTest.nodeTest=NodeTest.makeNodeTypeTest(NodeTest.NODE,[NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,NodeTypes_TEXT_NODE,NodeTypes_CDATA_SECTION_NODE,NodeTypes_PROCESSING_INSTRUCTION_NODE,NodeTypes_COMMENT_NODE,NodeTypes_DOCUMENT_NODE],"node()"),NodeTest.anyPiTest=NodeTest.makeNodeTypeTest(NodeTest.PI,[NodeTypes_PROCESSING_INSTRUCTION_NODE],"processing-instruction()"),VariableReference.prototype=new Expression,VariableReference.prototype.constructor=VariableReference,VariableReference.superclass=Expression.prototype,VariableReference.prototype.init=function(v){this.variable=v},VariableReference.prototype.toString=function(){return"$"+this.variable},VariableReference.prototype.evaluate=function(c){var parts=Utilities.resolveQName(this.variable,c.namespaceResolver,c.contextNode,!1);if(null==parts[0])throw new Error("Cannot resolve QName "+fn);var result=c.variableResolver.getVariable(parts[1],parts[0]);if(!result)throw XPathException.fromMessage("Undeclared variable: "+this.toString());return result},FunctionCall.prototype=new Expression,FunctionCall.prototype.constructor=FunctionCall,FunctionCall.superclass=Expression.prototype,FunctionCall.prototype.init=function(fn,args){this.functionName=fn,this.arguments=args},FunctionCall.prototype.toString=function(){for(var s=this.functionName+"(",i=0;i<this.arguments.length;i++)i>0&&(s+=", "),s+=this.arguments[i].toString();return s+")"},FunctionCall.prototype.evaluate=function(c){var f=FunctionResolver.getFunctionFromContext(this.functionName,c);if(!f)throw new Error("Unknown function "+this.functionName);var a=[c].concat(this.arguments);return f.apply(c.functionResolver.thisArg,a)};var Operators=new Object;function XString(s){arguments.length>0&&this.init(s)}function XNumber(n){arguments.length>0&&this.init(n)}function XBoolean(b){arguments.length>0&&this.init(b)}function AVLTree(n){this.init(n)}function XNodeSet(){this.init()}function XPathNamespace(pre,ns,p){this.isXPathNamespace=!0,this.ownerDocument=p.ownerDocument,this.nodeName="#namespace",this.prefix=pre,this.localName=pre,this.namespaceURI=ns,this.nodeValue=ns,this.ownerElement=p,this.nodeType=XPathNamespace.XPATH_NAMESPACE_NODE}function XPathContext(vr,nr,fr){this.variableResolver=null!=vr?vr:new VariableResolver,this.namespaceResolver=null!=nr?nr:new NamespaceResolver,this.functionResolver=null!=fr?fr:new FunctionResolver}function VariableResolver(){}function FunctionResolver(thisArg){this.thisArg=null!=thisArg?thisArg:Functions,this.functions=new Object,this.addStandardFunctions()}function NamespaceResolver(){}Operators.equals=function(l,r){return l.equals(r)},Operators.notequal=function(l,r){return l.notequal(r)},Operators.lessthan=function(l,r){return l.lessthan(r)},Operators.greaterthan=function(l,r){return l.greaterthan(r)},Operators.lessthanorequal=function(l,r){return l.lessthanorequal(r)},Operators.greaterthanorequal=function(l,r){return l.greaterthanorequal(r)},XString.prototype=new Expression,XString.prototype.constructor=XString,XString.superclass=Expression.prototype,XString.prototype.init=function(s){this.str=String(s)},XString.prototype.toString=function(){return this.str},XString.prototype.evaluate=function(c){return this},XString.prototype.string=function(){return this},XString.prototype.number=function(){return new XNumber(this.str)},XString.prototype.bool=function(){return new XBoolean(this.str)},XString.prototype.nodeset=function(){throw new Error("Cannot convert string to nodeset")},XString.prototype.stringValue=function(){return this.str},XString.prototype.numberValue=function(){return this.number().numberValue()},XString.prototype.booleanValue=function(){return this.bool().booleanValue()},XString.prototype.equals=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().equals(r):Utilities.instance_of(r,XNumber)?this.number().equals(r):Utilities.instance_of(r,XNodeSet)?r.compareWithString(this,Operators.equals):new XBoolean(this.str==r.str)},XString.prototype.notequal=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().notequal(r):Utilities.instance_of(r,XNumber)?this.number().notequal(r):Utilities.instance_of(r,XNodeSet)?r.compareWithString(this,Operators.notequal):new XBoolean(this.str!=r.str)},XString.prototype.lessthan=function(r){return this.number().lessthan(r)},XString.prototype.greaterthan=function(r){return this.number().greaterthan(r)},XString.prototype.lessthanorequal=function(r){return this.number().lessthanorequal(r)},XString.prototype.greaterthanorequal=function(r){return this.number().greaterthanorequal(r)},XNumber.prototype=new Expression,XNumber.prototype.constructor=XNumber,XNumber.superclass=Expression.prototype,XNumber.prototype.init=function(n){this.num="string"==typeof n?this.parse(n):Number(n)},XNumber.prototype.numberFormat=/^\s*-?[0-9]*\.?[0-9]+\s*$/,XNumber.prototype.parse=function(s){return this.numberFormat.test(s)?parseFloat(s):Number.NaN},XNumber.prototype.toString=function(){var strValue=this.num.toString();return-1!==strValue.indexOf("e-")?function padSmallNumber(numberStr){for(var parts=numberStr.split("e-"),base=parts[0].replace(".",""),exponent=Number(parts[1]),i=0;i<exponent-1;i+=1)base="0"+base;return"0."+base}(strValue):-1!==strValue.indexOf("e")?function padLargeNumber(numberStr){for(var parts=numberStr.split("e"),base=parts[0].replace(".",""),zerosToAppend=Number(parts[1])+1-base.length,i=0;i<zerosToAppend;i+=1)base+="0";return base}(strValue):strValue},XNumber.prototype.evaluate=function(c){return this},XNumber.prototype.string=function(){return new XString(this.toString())},XNumber.prototype.number=function(){return this},XNumber.prototype.bool=function(){return new XBoolean(this.num)},XNumber.prototype.nodeset=function(){throw new Error("Cannot convert number to nodeset")},XNumber.prototype.stringValue=function(){return this.string().stringValue()},XNumber.prototype.numberValue=function(){return this.num},XNumber.prototype.booleanValue=function(){return this.bool().booleanValue()},XNumber.prototype.negate=function(){return new XNumber(-this.num)},XNumber.prototype.equals=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().equals(r):Utilities.instance_of(r,XString)?this.equals(r.number()):Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.equals):new XBoolean(this.num==r.num)},XNumber.prototype.notequal=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().notequal(r):Utilities.instance_of(r,XString)?this.notequal(r.number()):Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.notequal):new XBoolean(this.num!=r.num)},XNumber.prototype.lessthan=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.greaterthan):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.lessthan(r.number()):new XBoolean(this.num<r.num)},XNumber.prototype.greaterthan=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.lessthan):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.greaterthan(r.number()):new XBoolean(this.num>r.num)},XNumber.prototype.lessthanorequal=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.greaterthanorequal):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.lessthanorequal(r.number()):new XBoolean(this.num<=r.num)},XNumber.prototype.greaterthanorequal=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.lessthanorequal):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.greaterthanorequal(r.number()):new XBoolean(this.num>=r.num)},XNumber.prototype.plus=function(r){return new XNumber(this.num+r.num)},XNumber.prototype.minus=function(r){return new XNumber(this.num-r.num)},XNumber.prototype.multiply=function(r){return new XNumber(this.num*r.num)},XNumber.prototype.div=function(r){return new XNumber(this.num/r.num)},XNumber.prototype.mod=function(r){return new XNumber(this.num%r.num)},XBoolean.prototype=new Expression,XBoolean.prototype.constructor=XBoolean,XBoolean.superclass=Expression.prototype,XBoolean.prototype.init=function(b){this.b=Boolean(b)},XBoolean.prototype.toString=function(){return this.b.toString()},XBoolean.prototype.evaluate=function(c){return this},XBoolean.prototype.string=function(){return new XString(this.b)},XBoolean.prototype.number=function(){return new XNumber(this.b)},XBoolean.prototype.bool=function(){return this},XBoolean.prototype.nodeset=function(){throw new Error("Cannot convert boolean to nodeset")},XBoolean.prototype.stringValue=function(){return this.string().stringValue()},XBoolean.prototype.numberValue=function(){return this.number().numberValue()},XBoolean.prototype.booleanValue=function(){return this.b},XBoolean.prototype.not=function(){return new XBoolean(!this.b)},XBoolean.prototype.equals=function(r){return Utilities.instance_of(r,XString)||Utilities.instance_of(r,XNumber)?this.equals(r.bool()):Utilities.instance_of(r,XNodeSet)?r.compareWithBoolean(this,Operators.equals):new XBoolean(this.b==r.b)},XBoolean.prototype.notequal=function(r){return Utilities.instance_of(r,XString)||Utilities.instance_of(r,XNumber)?this.notequal(r.bool()):Utilities.instance_of(r,XNodeSet)?r.compareWithBoolean(this,Operators.notequal):new XBoolean(this.b!=r.b)},XBoolean.prototype.lessthan=function(r){return this.number().lessthan(r)},XBoolean.prototype.greaterthan=function(r){return this.number().greaterthan(r)},XBoolean.prototype.lessthanorequal=function(r){return this.number().lessthanorequal(r)},XBoolean.prototype.greaterthanorequal=function(r){return this.number().greaterthanorequal(r)},XBoolean.true_=new XBoolean(!0),XBoolean.false_=new XBoolean(!1),AVLTree.prototype=new Object,AVLTree.prototype.constructor=AVLTree,AVLTree.superclass=Object.prototype,AVLTree.prototype.init=function(n){this.left=null,this.right=null,this.node=n,this.depth=1},AVLTree.prototype.balance=function(){var ldepth=null==this.left?0:this.left.depth,rdepth=null==this.right?0:this.right.depth;if(ldepth>rdepth+1)(null==this.left.left?0:this.left.left.depth)<(null==this.left.right?0:this.left.right.depth)&&this.left.rotateRR(),this.rotateLL();else if(ldepth+1<rdepth){var rrdepth=null==this.right.right?0:this.right.right.depth;(null==this.right.left?0:this.right.left.depth)>rrdepth&&this.right.rotateLL(),this.rotateRR()}},AVLTree.prototype.rotateLL=function(){var nodeBefore=this.node,rightBefore=this.right;this.node=this.left.node,this.right=this.left,this.left=this.left.left,this.right.left=this.right.right,this.right.right=rightBefore,this.right.node=nodeBefore,this.right.updateInNewLocation(),this.updateInNewLocation()},AVLTree.prototype.rotateRR=function(){var nodeBefore=this.node,leftBefore=this.left;this.node=this.right.node,this.left=this.right,this.right=this.right.right,this.left.right=this.left.left,this.left.left=leftBefore,this.left.node=nodeBefore,this.left.updateInNewLocation(),this.updateInNewLocation()},AVLTree.prototype.updateInNewLocation=function(){this.getDepthFromChildren()},AVLTree.prototype.getDepthFromChildren=function(){this.depth=null==this.node?0:1,null!=this.left&&(this.depth=this.left.depth+1),null!=this.right&&this.depth<=this.right.depth&&(this.depth=this.right.depth+1)},AVLTree.prototype.add=function(n){if(n===this.node)return!1;var o=function nodeOrder(n1,n2){if(n1===n2)return 0;if(n1.compareDocumentPosition){var cpos=n1.compareDocumentPosition(n2);return 1&cpos||10&cpos?1:20&cpos?-1:0}for(var d1=0,d2=0,m1=n1;null!=m1;m1=m1.parentNode||m1.ownerElement)d1++;for(var m2=n2;null!=m2;m2=m2.parentNode||m2.ownerElement)d2++;if(d1>d2){for(;d1>d2;)n1=n1.parentNode||n1.ownerElement,d1--;if(n1===n2)return 1}else if(d2>d1){for(;d2>d1;)n2=n2.parentNode||n2.ownerElement,d2--;if(n1===n2)return-1}for(var n1Par=n1.parentNode||n1.ownerElement,n2Par=n2.parentNode||n2.ownerElement;n1Par!==n2Par;)n2=n2Par,n1Par=(n1=n1Par).parentNode||n1.ownerElement,n2Par=n2.parentNode||n2.ownerElement;var n1isAttr=Utilities.isAttribute(n1),n2isAttr=Utilities.isAttribute(n2);if(n1isAttr&&!n2isAttr)return-1;if(!n1isAttr&&n2isAttr)return 1;if(n1Par)for(var cn=n1isAttr?n1Par.attributes:n1Par.childNodes,len=cn.length,i=0;i<len;i+=1){var n=cn[i];if(n===n1)return-1;if(n===n2)return 1}throw new Error("Unexpected: could not determine node order")}(n,this.node),ret=!1;return-1==o?null==this.left?(this.left=new AVLTree(n),ret=!0):(ret=this.left.add(n))&&this.balance():1==o&&(null==this.right?(this.right=new AVLTree(n),ret=!0):(ret=this.right.add(n))&&this.balance()),ret&&this.getDepthFromChildren(),ret},XNodeSet.prototype=new Expression,XNodeSet.prototype.constructor=XNodeSet,XNodeSet.superclass=Expression.prototype,XNodeSet.prototype.init=function(){this.tree=null,this.nodes=[],this.size=0},XNodeSet.prototype.toString=function(){var p=this.first();return null==p?"":this.stringForNode(p)},XNodeSet.prototype.evaluate=function(c){return this},XNodeSet.prototype.string=function(){return new XString(this.toString())},XNodeSet.prototype.stringValue=function(){return this.toString()},XNodeSet.prototype.number=function(){return new XNumber(this.string())},XNodeSet.prototype.numberValue=function(){return Number(this.string())},XNodeSet.prototype.bool=function(){return new XBoolean(this.booleanValue())},XNodeSet.prototype.booleanValue=function(){return!!this.size},XNodeSet.prototype.nodeset=function(){return this},XNodeSet.prototype.stringForNode=function(n){return n.nodeType==NodeTypes_DOCUMENT_NODE||n.nodeType==NodeTypes_ELEMENT_NODE||n.nodeType===NodeTypes_DOCUMENT_FRAGMENT_NODE?this.stringForContainerNode(n):n.nodeType===NodeTypes_ATTRIBUTE_NODE?n.value||n.nodeValue:n.isNamespaceNode?n.namespace:n.nodeValue},XNodeSet.prototype.stringForContainerNode=function(n){for(var s="",n2=n.firstChild;null!=n2;n2=n2.nextSibling){var nt=n2.nodeType;1!==nt&&3!==nt&&4!==nt&&9!==nt&&11!==nt||(s+=this.stringForNode(n2))}return s},XNodeSet.prototype.buildTree=function(){if(!this.tree&&this.nodes.length){this.tree=new AVLTree(this.nodes[0]);for(var i=1;i<this.nodes.length;i+=1)this.tree.add(this.nodes[i])}return this.tree},XNodeSet.prototype.first=function(){var p=this.buildTree();if(null==p)return null;for(;null!=p.left;)p=p.left;return p.node},XNodeSet.prototype.add=function(n){for(var i=0;i<this.nodes.length;i+=1)if(n===this.nodes[i])return;this.tree=null,this.nodes.push(n),this.size+=1},XNodeSet.prototype.addArray=function(ns){var self=this;forEach((function(x){self.add(x)}),ns)},XNodeSet.prototype.toArray=function(){var a=[];return this.toArrayRec(this.buildTree(),a),a},XNodeSet.prototype.toArrayRec=function(t,a){null!=t&&(this.toArrayRec(t.left,a),a.push(t.node),this.toArrayRec(t.right,a))},XNodeSet.prototype.toUnsortedArray=function(){return this.nodes.slice()},XNodeSet.prototype.compareWithString=function(r,o){for(var a=this.toUnsortedArray(),i=0;i<a.length;i++){var n=a[i],res=o(new XString(this.stringForNode(n)),r);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.prototype.compareWithNumber=function(r,o){for(var a=this.toUnsortedArray(),i=0;i<a.length;i++){var n=a[i],res=o(new XNumber(this.stringForNode(n)),r);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.prototype.compareWithBoolean=function(r,o){return o(this.bool(),r)},XNodeSet.prototype.compareWithNodeSet=function(r,o){for(var arr=this.toUnsortedArray(),oInvert=function(lop,rop){return o(rop,lop)},i=0;i<arr.length;i++){var l=new XString(this.stringForNode(arr[i])),res=r.compareWithString(l,oInvert);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.compareWith=function curry(func){var slice=Array.prototype.slice,totalargs=func.length,fn=function(){var args=slice.call(arguments);return args.length<totalargs?function(args,fn){return function(){return fn.apply(this,args.concat(slice.call(arguments)))}}(args,fn):func.apply(this,slice.apply(arguments,[0,totalargs]))};return fn}((function(o,r){return Utilities.instance_of(r,XString)?this.compareWithString(r,o):Utilities.instance_of(r,XNumber)?this.compareWithNumber(r,o):Utilities.instance_of(r,XBoolean)?this.compareWithBoolean(r,o):this.compareWithNodeSet(r,o)})),XNodeSet.prototype.equals=XNodeSet.compareWith(Operators.equals),XNodeSet.prototype.notequal=XNodeSet.compareWith(Operators.notequal),XNodeSet.prototype.lessthan=XNodeSet.compareWith(Operators.lessthan),XNodeSet.prototype.greaterthan=XNodeSet.compareWith(Operators.greaterthan),XNodeSet.prototype.lessthanorequal=XNodeSet.compareWith(Operators.lessthanorequal),XNodeSet.prototype.greaterthanorequal=XNodeSet.compareWith(Operators.greaterthanorequal),XNodeSet.prototype.union=function(r){var ns=new XNodeSet;return ns.addArray(this.toUnsortedArray()),ns.addArray(r.toUnsortedArray()),ns},XPathNamespace.prototype=new Object,XPathNamespace.prototype.constructor=XPathNamespace,XPathNamespace.superclass=Object.prototype,XPathNamespace.prototype.toString=function(){return'{ "'+this.prefix+'", "'+this.namespaceURI+'" }'},XPathContext.prototype=new Object,XPathContext.prototype.constructor=XPathContext,XPathContext.superclass=Object.prototype,XPathContext.prototype.extend=function(newProps){return assign(new XPathContext,this,newProps)},VariableResolver.prototype=new Object,VariableResolver.prototype.constructor=VariableResolver,VariableResolver.superclass=Object.prototype,VariableResolver.prototype.getVariable=function(ln,ns){return null},FunctionResolver.prototype=new Object,FunctionResolver.prototype.constructor=FunctionResolver,FunctionResolver.superclass=Object.prototype,FunctionResolver.prototype.addStandardFunctions=function(){this.functions["{}last"]=Functions.last,this.functions["{}position"]=Functions.position,this.functions["{}count"]=Functions.count,this.functions["{}id"]=Functions.id,this.functions["{}local-name"]=Functions.localName,this.functions["{}namespace-uri"]=Functions.namespaceURI,this.functions["{}name"]=Functions.name,this.functions["{}string"]=Functions.string,this.functions["{}concat"]=Functions.concat,this.functions["{}starts-with"]=Functions.startsWith,this.functions["{}contains"]=Functions.contains,this.functions["{}substring-before"]=Functions.substringBefore,this.functions["{}substring-after"]=Functions.substringAfter,this.functions["{}substring"]=Functions.substring,this.functions["{}string-length"]=Functions.stringLength,this.functions["{}normalize-space"]=Functions.normalizeSpace,this.functions["{}translate"]=Functions.translate,this.functions["{}boolean"]=Functions.boolean_,this.functions["{}not"]=Functions.not,this.functions["{}true"]=Functions.true_,this.functions["{}false"]=Functions.false_,this.functions["{}lang"]=Functions.lang,this.functions["{}number"]=Functions.number,this.functions["{}sum"]=Functions.sum,this.functions["{}floor"]=Functions.floor,this.functions["{}ceiling"]=Functions.ceiling,this.functions["{}round"]=Functions.round},FunctionResolver.prototype.addFunction=function(ns,ln,f){this.functions["{"+ns+"}"+ln]=f},FunctionResolver.getFunctionFromContext=function(qName,context){var parts=Utilities.resolveQName(qName,context.namespaceResolver,context.contextNode,!1);if(null===parts[0])throw new Error("Cannot resolve QName "+name);return context.functionResolver.getFunction(parts[1],parts[0])},FunctionResolver.prototype.getFunction=function(localName,namespace){return this.functions["{"+namespace+"}"+localName]},NamespaceResolver.prototype=new Object,NamespaceResolver.prototype.constructor=NamespaceResolver,NamespaceResolver.superclass=Object.prototype,NamespaceResolver.prototype.getNamespace=function(prefix,n){if("xml"==prefix)return XPath.XML_NAMESPACE_URI;if("xmlns"==prefix)return XPath.XMLNS_NAMESPACE_URI;for(n.nodeType==NodeTypes_DOCUMENT_NODE?n=n.documentElement:n.nodeType==NodeTypes_ATTRIBUTE_NODE?n=PathExpr.getOwnerElement(n):n.nodeType!=NodeTypes_ELEMENT_NODE&&(n=n.parentNode);null!=n&&n.nodeType==NodeTypes_ELEMENT_NODE;){for(var nnm=n.attributes,i=0;i<nnm.length;i++){var a=nnm.item(i),aname=a.name||a.nodeName;if("xmlns"===aname&&""===prefix||aname==="xmlns:"+prefix)return String(a.value||a.nodeValue)}n=n.parentNode}return null};var Functions=new Object;Functions.last=function(c){if(1!=arguments.length)throw new Error("Function last expects ()");return new XNumber(c.contextSize)},Functions.position=function(c){if(1!=arguments.length)throw new Error("Function position expects ()");return new XNumber(c.contextPosition)},Functions.count=function(){var ns,c=arguments[0];if(2!=arguments.length||!Utilities.instance_of(ns=arguments[1].evaluate(c),XNodeSet))throw new Error("Function count expects (node-set)");return new XNumber(ns.size)},Functions.id=function(){var id,c=arguments[0];if(2!=arguments.length)throw new Error("Function id expects (object)");id=arguments[1].evaluate(c);for(var ids=(id=Utilities.instance_of(id,XNodeSet)?id.toArray().join(" "):id.stringValue()).split(/[\x0d\x0a\x09\x20]+/),ns=new XNodeSet,doc=c.contextNode.nodeType==NodeTypes_DOCUMENT_NODE?c.contextNode:c.contextNode.ownerDocument,i=0;i<ids.length;i++){var n;null!=(n=doc.getElementById?doc.getElementById(ids[i]):Utilities.getElementById(doc,ids[i]))&&ns.add(n)}return ns},Functions.localName=function(c,eNode){var n;if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function local-name expects (node-set?)");n=eNode.evaluate(c).first()}return new XString(null==n?"":n.localName||n.baseName||n.target||n.nodeName||"")},Functions.namespaceURI=function(){var n,c=arguments[0];if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function namespace-uri expects (node-set?)");n=arguments[1].evaluate(c).first()}return new XString(null==n?"":n.namespaceURI)},Functions.name=function(){var n,c=arguments[0];if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function name expects (node-set?)");n=arguments[1].evaluate(c).first()}return null==n?new XString(""):n.nodeType==NodeTypes_ELEMENT_NODE?new XString(n.nodeName):n.nodeType==NodeTypes_ATTRIBUTE_NODE?new XString(n.name||n.nodeName):n.nodeType===NodeTypes_PROCESSING_INSTRUCTION_NODE?new XString(n.target||n.nodeName):null==n.localName?new XString(""):new XString(n.localName)},Functions.string=function(){var c=arguments[0];if(1==arguments.length)return new XString(XNodeSet.prototype.stringForNode(c.contextNode));if(2==arguments.length)return arguments[1].evaluate(c).string();throw new Error("Function string expects (object?)")},Functions.concat=function(c){if(arguments.length<3)throw new Error("Function concat expects (string, string[, string]*)");for(var s="",i=1;i<arguments.length;i++)s+=arguments[i].evaluate(c).stringValue();return new XString(s)},Functions.startsWith=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function startsWith expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XBoolean(s1.substring(0,s2.length)==s2)},Functions.contains=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function contains expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XBoolean(-1!==s1.indexOf(s2))},Functions.substringBefore=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function substring-before expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XString(s1.substring(0,s1.indexOf(s2)))},Functions.substringAfter=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function substring-after expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();if(0==s2.length)return new XString(s1);var i=s1.indexOf(s2);return new XString(-1==i?"":s1.substring(i+s2.length))},Functions.substring=function(){var c=arguments[0];if(3!=arguments.length&&4!=arguments.length)throw new Error("Function substring expects (string, number, number?)");var s=arguments[1].evaluate(c).stringValue(),n1=Math.round(arguments[2].evaluate(c).numberValue())-1,n2=4==arguments.length?n1+Math.round(arguments[3].evaluate(c).numberValue()):void 0;return new XString(s.substring(n1,n2))},Functions.stringLength=function(){var s,c=arguments[0];if(1==arguments.length)s=XNodeSet.prototype.stringForNode(c.contextNode);else{if(2!=arguments.length)throw new Error("Function string-length expects (string?)");s=arguments[1].evaluate(c).stringValue()}return new XNumber(s.length)},Functions.normalizeSpace=function(){var s,c=arguments[0];if(1==arguments.length)s=XNodeSet.prototype.stringForNode(c.contextNode);else{if(2!=arguments.length)throw new Error("Function normalize-space expects (string?)");s=arguments[1].evaluate(c).stringValue()}for(var i=0,j=s.length-1;Utilities.isSpace(s.charCodeAt(j));)j--;for(var t="";i<=j&&Utilities.isSpace(s.charCodeAt(i));)i++;for(;i<=j;)if(Utilities.isSpace(s.charCodeAt(i)))for(t+=" ";i<=j&&Utilities.isSpace(s.charCodeAt(i));)i++;else t+=s.charAt(i),i++;return new XString(t)},Functions.translate=function(c,eValue,eFrom,eTo){if(4!=arguments.length)throw new Error("Function translate expects (string, string, string)");var value=eValue.evaluate(c).stringValue(),from=eFrom.evaluate(c).stringValue(),to=eTo.evaluate(c).stringValue(),cMap=reduce((function(acc,ch,i){return ch in acc||(acc[ch]=i>to.length?"":to[i]),acc}),{},from);return new XString(join("",map((function(ch){return ch in cMap?cMap[ch]:ch}),value)))},Functions.boolean_=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function boolean expects (object)");return arguments[1].evaluate(c).bool()},Functions.not=function(c,eValue){if(2!=arguments.length)throw new Error("Function not expects (object)");return eValue.evaluate(c).bool().not()},Functions.true_=function(){if(1!=arguments.length)throw new Error("Function true expects ()");return XBoolean.true_},Functions.false_=function(){if(1!=arguments.length)throw new Error("Function false expects ()");return XBoolean.false_},Functions.lang=function(){var lang,c=arguments[0];if(2!=arguments.length)throw new Error("Function lang expects (string)");for(var n=c.contextNode;null!=n&&n.nodeType!=NodeTypes_DOCUMENT_NODE;n=n.parentNode){var a=n.getAttributeNS(XPath.XML_NAMESPACE_URI,"lang");if(null!=a){lang=String(a);break}}if(null==lang)return XBoolean.false_;var s=arguments[1].evaluate(c).stringValue();return new XBoolean(lang.substring(0,s.length)==s&&(lang.length==s.length||"-"==lang.charAt(s.length)))},Functions.number=function(){var c=arguments[0];if(1!=arguments.length&&2!=arguments.length)throw new Error("Function number expects (object?)");return 1==arguments.length?new XNumber(XNodeSet.prototype.stringForNode(c.contextNode)):arguments[1].evaluate(c).number()},Functions.sum=function(){var ns,c=arguments[0];if(2!=arguments.length||!Utilities.instance_of(ns=arguments[1].evaluate(c),XNodeSet))throw new Error("Function sum expects (node-set)");ns=ns.toUnsortedArray();for(var n=0,i=0;i<ns.length;i++)n+=new XNumber(XNodeSet.prototype.stringForNode(ns[i])).numberValue();return new XNumber(n)},Functions.floor=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function floor expects (number)");return new XNumber(Math.floor(arguments[1].evaluate(c).numberValue()))},Functions.ceiling=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function ceiling expects (number)");return new XNumber(Math.ceil(arguments[1].evaluate(c).numberValue()))},Functions.round=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function round expects (number)");return new XNumber(Math.round(arguments[1].evaluate(c).numberValue()))};var Utilities=new Object;Utilities.isAttribute=function(val){return val&&(val.nodeType===NodeTypes_ATTRIBUTE_NODE||val.ownerElement)},Utilities.splitQName=function(qn){var i=qn.indexOf(":");return-1==i?[null,qn]:[qn.substring(0,i),qn.substring(i+1)]},Utilities.resolveQName=function(qn,nr,n,useDefault){var parts=Utilities.splitQName(qn);return null!=parts[0]?parts[0]=nr.getNamespace(parts[0],n):useDefault?(parts[0]=nr.getNamespace("",n),null==parts[0]&&(parts[0]="")):parts[0]="",parts},Utilities.isSpace=function(c){return 9==c||13==c||10==c||32==c},Utilities.isLetter=function(c){return c>=65&&c<=90||c>=97&&c<=122||c>=192&&c<=214||c>=216&&c<=246||c>=248&&c<=255||c>=256&&c<=305||c>=308&&c<=318||c>=321&&c<=328||c>=330&&c<=382||c>=384&&c<=451||c>=461&&c<=496||c>=500&&c<=501||c>=506&&c<=535||c>=592&&c<=680||c>=699&&c<=705||902==c||c>=904&&c<=906||908==c||c>=910&&c<=929||c>=931&&c<=974||c>=976&&c<=982||986==c||988==c||990==c||992==c||c>=994&&c<=1011||c>=1025&&c<=1036||c>=1038&&c<=1103||c>=1105&&c<=1116||c>=1118&&c<=1153||c>=1168&&c<=1220||c>=1223&&c<=1224||c>=1227&&c<=1228||c>=1232&&c<=1259||c>=1262&&c<=1269||c>=1272&&c<=1273||c>=1329&&c<=1366||1369==c||c>=1377&&c<=1414||c>=1488&&c<=1514||c>=1520&&c<=1522||c>=1569&&c<=1594||c>=1601&&c<=1610||c>=1649&&c<=1719||c>=1722&&c<=1726||c>=1728&&c<=1742||c>=1744&&c<=1747||1749==c||c>=1765&&c<=1766||c>=2309&&c<=2361||2365==c||c>=2392&&c<=2401||c>=2437&&c<=2444||c>=2447&&c<=2448||c>=2451&&c<=2472||c>=2474&&c<=2480||2482==c||c>=2486&&c<=2489||c>=2524&&c<=2525||c>=2527&&c<=2529||c>=2544&&c<=2545||c>=2565&&c<=2570||c>=2575&&c<=2576||c>=2579&&c<=2600||c>=2602&&c<=2608||c>=2610&&c<=2611||c>=2613&&c<=2614||c>=2616&&c<=2617||c>=2649&&c<=2652||2654==c||c>=2674&&c<=2676||c>=2693&&c<=2699||2701==c||c>=2703&&c<=2705||c>=2707&&c<=2728||c>=2730&&c<=2736||c>=2738&&c<=2739||c>=2741&&c<=2745||2749==c||2784==c||c>=2821&&c<=2828||c>=2831&&c<=2832||c>=2835&&c<=2856||c>=2858&&c<=2864||c>=2866&&c<=2867||c>=2870&&c<=2873||2877==c||c>=2908&&c<=2909||c>=2911&&c<=2913||c>=2949&&c<=2954||c>=2958&&c<=2960||c>=2962&&c<=2965||c>=2969&&c<=2970||2972==c||c>=2974&&c<=2975||c>=2979&&c<=2980||c>=2984&&c<=2986||c>=2990&&c<=2997||c>=2999&&c<=3001||c>=3077&&c<=3084||c>=3086&&c<=3088||c>=3090&&c<=3112||c>=3114&&c<=3123||c>=3125&&c<=3129||c>=3168&&c<=3169||c>=3205&&c<=3212||c>=3214&&c<=3216||c>=3218&&c<=3240||c>=3242&&c<=3251||c>=3253&&c<=3257||3294==c||c>=3296&&c<=3297||c>=3333&&c<=3340||c>=3342&&c<=3344||c>=3346&&c<=3368||c>=3370&&c<=3385||c>=3424&&c<=3425||c>=3585&&c<=3630||3632==c||c>=3634&&c<=3635||c>=3648&&c<=3653||c>=3713&&c<=3714||3716==c||c>=3719&&c<=3720||3722==c||3725==c||c>=3732&&c<=3735||c>=3737&&c<=3743||c>=3745&&c<=3747||3749==c||3751==c||c>=3754&&c<=3755||c>=3757&&c<=3758||3760==c||c>=3762&&c<=3763||3773==c||c>=3776&&c<=3780||c>=3904&&c<=3911||c>=3913&&c<=3945||c>=4256&&c<=4293||c>=4304&&c<=4342||4352==c||c>=4354&&c<=4355||c>=4357&&c<=4359||4361==c||c>=4363&&c<=4364||c>=4366&&c<=4370||4412==c||4414==c||4416==c||4428==c||4430==c||4432==c||c>=4436&&c<=4437||4441==c||c>=4447&&c<=4449||4451==c||4453==c||4455==c||4457==c||c>=4461&&c<=4462||c>=4466&&c<=4467||4469==c||4510==c||4520==c||4523==c||c>=4526&&c<=4527||c>=4535&&c<=4536||4538==c||c>=4540&&c<=4546||4587==c||4592==c||4601==c||c>=7680&&c<=7835||c>=7840&&c<=7929||c>=7936&&c<=7957||c>=7960&&c<=7965||c>=7968&&c<=8005||c>=8008&&c<=8013||c>=8016&&c<=8023||8025==c||8027==c||8029==c||c>=8031&&c<=8061||c>=8064&&c<=8116||c>=8118&&c<=8124||8126==c||c>=8130&&c<=8132||c>=8134&&c<=8140||c>=8144&&c<=8147||c>=8150&&c<=8155||c>=8160&&c<=8172||c>=8178&&c<=8180||c>=8182&&c<=8188||8486==c||c>=8490&&c<=8491||8494==c||c>=8576&&c<=8578||c>=12353&&c<=12436||c>=12449&&c<=12538||c>=12549&&c<=12588||c>=44032&&c<=55203||c>=19968&&c<=40869||12295==c||c>=12321&&c<=12329},Utilities.isNCNameChar=function(c){return c>=48&&c<=57||c>=1632&&c<=1641||c>=1776&&c<=1785||c>=2406&&c<=2415||c>=2534&&c<=2543||c>=2662&&c<=2671||c>=2790&&c<=2799||c>=2918&&c<=2927||c>=3047&&c<=3055||c>=3174&&c<=3183||c>=3302&&c<=3311||c>=3430&&c<=3439||c>=3664&&c<=3673||c>=3792&&c<=3801||c>=3872&&c<=3881||46==c||45==c||95==c||Utilities.isLetter(c)||c>=768&&c<=837||c>=864&&c<=865||c>=1155&&c<=1158||c>=1425&&c<=1441||c>=1443&&c<=1465||c>=1467&&c<=1469||1471==c||c>=1473&&c<=1474||1476==c||c>=1611&&c<=1618||1648==c||c>=1750&&c<=1756||c>=1757&&c<=1759||c>=1760&&c<=1764||c>=1767&&c<=1768||c>=1770&&c<=1773||c>=2305&&c<=2307||2364==c||c>=2366&&c<=2380||2381==c||c>=2385&&c<=2388||c>=2402&&c<=2403||c>=2433&&c<=2435||2492==c||2494==c||2495==c||c>=2496&&c<=2500||c>=2503&&c<=2504||c>=2507&&c<=2509||2519==c||c>=2530&&c<=2531||2562==c||2620==c||2622==c||2623==c||c>=2624&&c<=2626||c>=2631&&c<=2632||c>=2635&&c<=2637||c>=2672&&c<=2673||c>=2689&&c<=2691||2748==c||c>=2750&&c<=2757||c>=2759&&c<=2761||c>=2763&&c<=2765||c>=2817&&c<=2819||2876==c||c>=2878&&c<=2883||c>=2887&&c<=2888||c>=2891&&c<=2893||c>=2902&&c<=2903||c>=2946&&c<=2947||c>=3006&&c<=3010||c>=3014&&c<=3016||c>=3018&&c<=3021||3031==c||c>=3073&&c<=3075||c>=3134&&c<=3140||c>=3142&&c<=3144||c>=3146&&c<=3149||c>=3157&&c<=3158||c>=3202&&c<=3203||c>=3262&&c<=3268||c>=3270&&c<=3272||c>=3274&&c<=3277||c>=3285&&c<=3286||c>=3330&&c<=3331||c>=3390&&c<=3395||c>=3398&&c<=3400||c>=3402&&c<=3405||3415==c||3633==c||c>=3636&&c<=3642||c>=3655&&c<=3662||3761==c||c>=3764&&c<=3769||c>=3771&&c<=3772||c>=3784&&c<=3789||c>=3864&&c<=3865||3893==c||3895==c||3897==c||3902==c||3903==c||c>=3953&&c<=3972||c>=3974&&c<=3979||c>=3984&&c<=3989||3991==c||c>=3993&&c<=4013||c>=4017&&c<=4023||4025==c||c>=8400&&c<=8412||8417==c||c>=12330&&c<=12335||12441==c||12442==c||183==c||720==c||721==c||903==c||1600==c||3654==c||3782==c||12293==c||c>=12337&&c<=12341||c>=12445&&c<=12446||c>=12540&&c<=12542},Utilities.coalesceText=function(n){for(var m=n.firstChild;null!=m;m=m.nextSibling)if(m.nodeType==NodeTypes_TEXT_NODE||m.nodeType==NodeTypes_CDATA_SECTION_NODE){var s=m.nodeValue,first=m;for(m=m.nextSibling;null!=m&&(m.nodeType==NodeTypes_TEXT_NODE||m.nodeType==NodeTypes_CDATA_SECTION_NODE);){s+=m.nodeValue;var del=m;m=m.nextSibling,del.parentNode.removeChild(del)}if(first.nodeType==NodeTypes_CDATA_SECTION_NODE){var p=first.parentNode;if(null==first.nextSibling)p.removeChild(first),p.appendChild(p.ownerDocument.createTextNode(s));else{var next=first.nextSibling;p.removeChild(first),p.insertBefore(p.ownerDocument.createTextNode(s),next)}}else first.nodeValue=s;if(null==m)break}else m.nodeType==NodeTypes_ELEMENT_NODE&&Utilities.coalesceText(m)},Utilities.instance_of=function(o,c){for(;null!=o;){if(o.constructor===c)return!0;if(o===Object)return!1;o=o.constructor.superclass}return!1},Utilities.getElementById=function(n,id){if(n.nodeType==NodeTypes_ELEMENT_NODE&&(n.getAttribute("id")==id||n.getAttributeNS(null,"id")==id))return n;for(var m=n.firstChild;null!=m;m=m.nextSibling){var res=Utilities.getElementById(m,id);if(null!=res)return res}return null};var XPathException=function(){function XPathException(code,error,message){var err=Error.call(this,function getMessage(code,exception){var msg=exception?": "+exception.toString():"";switch(code){case XPathException.INVALID_EXPRESSION_ERR:return"Invalid expression"+msg;case XPathException.TYPE_ERR:return"Type error"+msg}return null}(code,error)||message);return err.code=code,err.exception=error,err}return XPathException.prototype=Object.create(Error.prototype),XPathException.prototype.constructor=XPathException,XPathException.superclass=Error,XPathException.prototype.toString=function(){return this.message},XPathException.fromMessage=function(message,error){return new XPathException(null,error,message)},XPathException.INVALID_EXPRESSION_ERR=51,XPathException.TYPE_ERR=52,XPathException}();function XPathExpression(e,r,p){this.xpath=p.parse(e),this.context=new XPathContext,this.context.namespaceResolver=new XPathNSResolverWrapper(r)}function XPathNSResolverWrapper(r){this.xpathNSResolver=r}function NodeXPathNSResolver(n){this.node=n,this.namespaceResolver=new NamespaceResolver}function XPathResult(v,t){switch(t==XPathResult.ANY_TYPE&&(v.constructor===XString?t=XPathResult.STRING_TYPE:v.constructor===XNumber?t=XPathResult.NUMBER_TYPE:v.constructor===XBoolean?t=XPathResult.BOOLEAN_TYPE:v.constructor===XNodeSet&&(t=XPathResult.UNORDERED_NODE_ITERATOR_TYPE)),this.resultType=t,t){case XPathResult.NUMBER_TYPE:return void(this.numberValue=v.numberValue());case XPathResult.STRING_TYPE:return void(this.stringValue=v.stringValue());case XPathResult.BOOLEAN_TYPE:return void(this.booleanValue=v.booleanValue());case XPathResult.ANY_UNORDERED_NODE_TYPE:case XPathResult.FIRST_ORDERED_NODE_TYPE:if(v.constructor===XNodeSet)return void(this.singleNodeValue=v.first());break;case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:case XPathResult.ORDERED_NODE_ITERATOR_TYPE:if(v.constructor===XNodeSet)return this.invalidIteratorState=!1,this.nodes=v.toArray(),void(this.iteratorIndex=0);break;case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:if(v.constructor===XNodeSet)return this.nodes=v.toArray(),void(this.snapshotLength=this.nodes.length)}throw new XPathException(XPathException.TYPE_ERR)}function installDOM3XPathSupport(doc,p){doc.createExpression=function(e,r){try{return new XPathExpression(e,r,p)}catch(e){throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,e)}},doc.createNSResolver=function(n){return new NodeXPathNSResolver(n)},doc.evaluate=function(e,cn,r,t,res){if(t<0||t>9)throw{code:0,toString:function(){return"Request type not supported"}};return doc.createExpression(e,r,p).evaluate(cn,t,res)}}XPathExpression.prototype={},XPathExpression.prototype.constructor=XPathExpression,XPathExpression.superclass=Object.prototype,XPathExpression.getOwnerDocument=function(n){return n.nodeType===NodeTypes_DOCUMENT_NODE?n:n.ownerDocument},XPathExpression.detectHtmlDom=function(n){if(!n)return!1;var doc=XPathExpression.getOwnerDocument(n);try{return doc.implementation.hasFeature("HTML","2.0")}catch(e){return!0}},XPathExpression.prototype.evaluate=function(n,t,res){return this.context.expressionContextNode=n,this.context.caseInsensitive=XPathExpression.detectHtmlDom(n),new XPathResult(this.xpath.evaluate(this.context),t)},XPathNSResolverWrapper.prototype={},XPathNSResolverWrapper.prototype.constructor=XPathNSResolverWrapper,XPathNSResolverWrapper.superclass=Object.prototype,XPathNSResolverWrapper.prototype.getNamespace=function(prefix,n){return null==this.xpathNSResolver?null:this.xpathNSResolver.lookupNamespaceURI(prefix)},NodeXPathNSResolver.prototype={},NodeXPathNSResolver.prototype.constructor=NodeXPathNSResolver,NodeXPathNSResolver.superclass=Object.prototype,NodeXPathNSResolver.prototype.lookupNamespaceURI=function(prefix){return this.namespaceResolver.getNamespace(prefix,this.node)},XPathResult.prototype={},XPathResult.prototype.constructor=XPathResult,XPathResult.superclass=Object.prototype,XPathResult.prototype.iterateNext=function(){if(this.resultType!=XPathResult.UNORDERED_NODE_ITERATOR_TYPE&&this.resultType!=XPathResult.ORDERED_NODE_ITERATOR_TYPE)throw new XPathException(XPathException.TYPE_ERR);return this.nodes[this.iteratorIndex++]},XPathResult.prototype.snapshotItem=function(i){if(this.resultType!=XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE&&this.resultType!=XPathResult.ORDERED_NODE_SNAPSHOT_TYPE)throw new XPathException(XPathException.TYPE_ERR);return this.nodes[i]},XPathResult.ANY_TYPE=0,XPathResult.NUMBER_TYPE=1,XPathResult.STRING_TYPE=2,XPathResult.BOOLEAN_TYPE=3,XPathResult.UNORDERED_NODE_ITERATOR_TYPE=4,XPathResult.ORDERED_NODE_ITERATOR_TYPE=5,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE=6,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE=7,XPathResult.ANY_UNORDERED_NODE_TYPE=8,XPathResult.FIRST_ORDERED_NODE_TYPE=9;try{var shouldInstall=!0;try{document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null)&&(shouldInstall=!1)}catch(e){}shouldInstall&&installDOM3XPathSupport(document,new XPathParser)}catch(e){}installDOM3XPathSupport(exports,new XPathParser),function(){var parser=new XPathParser,defaultNSResolver=new NamespaceResolver,defaultFunctionResolver=new FunctionResolver,defaultVariableResolver=new VariableResolver;function makeNSResolverFromFunction(func){return{getNamespace:function(prefix,node){return func(prefix,node)||defaultNSResolver.getNamespace(prefix,node)}}}function makeNSResolver(resolver){return resolver&&"function"==typeof resolver.getNamespace?function makeNSResolverFromObject(obj){return makeNSResolverFromFunction(obj.getNamespace.bind(obj))}(resolver):"function"==typeof resolver?makeNSResolverFromFunction(resolver):"object"==typeof resolver?function makeNSResolverFromMap(map){return makeNSResolverFromFunction((function(prefix){return map[prefix]}))}(resolver):defaultNSResolver}function convertValue(value){if(null==value||value instanceof XString||value instanceof XBoolean||value instanceof XNumber||value instanceof XNodeSet)return value;switch(typeof value){case"string":return new XString(value);case"boolean":return new XBoolean(value);case"number":return new XNumber(value)}var ns=new XNodeSet;return ns.addArray([].concat(value)),ns}function makeFunctionResolverFromFunction(func){return{getFunction:function(name,namespace){var found=func(name,namespace);return found?function makeEvaluator(func){return function(context){var args=Array.prototype.slice.call(arguments,1).map((function(arg){return arg.evaluate(context)}));return convertValue(func.apply(this,[].concat(context,args)))}}(found):defaultFunctionResolver.getFunction(name,namespace)}}}function makeFunctionResolver(resolver){return resolver&&"function"==typeof resolver.getFunction?function makeFunctionResolverFromObject(obj){return makeFunctionResolverFromFunction(obj.getFunction.bind(obj))}(resolver):"function"==typeof resolver?makeFunctionResolverFromFunction(resolver):"object"==typeof resolver?function makeFunctionResolverFromMap(map){return makeFunctionResolverFromFunction((function(name){return map[name]}))}(resolver):defaultFunctionResolver}function makeVariableResolverFromFunction(func){return{getVariable:function(name,namespace){return convertValue(func(name,namespace))}}}function copyIfPresent(prop,dest,source){prop in source&&(dest[prop]=source[prop])}function makeContext(options){var context=new XPathContext;return options?(context.namespaceResolver=makeNSResolver(options.namespaces),context.functionResolver=makeFunctionResolver(options.functions),context.variableResolver=function makeVariableResolver(resolver){if(resolver){if("function"==typeof resolver.getVariable)return makeVariableResolverFromFunction(resolver.getVariable.bind(resolver));if("function"==typeof resolver)return makeVariableResolverFromFunction(resolver);if("object"==typeof resolver)return makeVariableResolverFromFunction((function(name){return resolver[name]}))}return defaultVariableResolver}(options.variables),context.expressionContextNode=options.node,copyIfPresent("allowAnyNamespaceForNoPrefix",context,options),copyIfPresent("isHtml",context,options)):context.namespaceResolver=defaultNSResolver,context}var evaluatorPrototype={evaluate:function(options){return function evaluate(parsedExpression,options){var context=makeContext(options);return parsedExpression.evaluate(context)}(this.expression,options)},evaluateNumber:function(options){return this.evaluate(options).numberValue()},evaluateString:function(options){return this.evaluate(options).stringValue()},evaluateBoolean:function(options){return this.evaluate(options).booleanValue()},evaluateNodeSet:function(options){return this.evaluate(options).nodeset()},select:function(options){return this.evaluateNodeSet(options).toArray()},select1:function(options){return this.select(options)[0]}};exports.parse=function parse(xpath){var parsed=parser.parse(xpath);return Object.create(evaluatorPrototype,{expression:{value:parsed}})}}(),assign(exports,{XPath:XPath,XPathParser:XPathParser,XPathResult:XPathResult,Step:Step,PathExpr:PathExpr,NodeTest:NodeTest,LocationPath:LocationPath,OrOperation:OrOperation,AndOperation:AndOperation,BarOperation:BarOperation,EqualsOperation:EqualsOperation,NotEqualOperation:NotEqualOperation,LessThanOperation:LessThanOperation,GreaterThanOperation:GreaterThanOperation,LessThanOrEqualOperation:LessThanOrEqualOperation,GreaterThanOrEqualOperation:GreaterThanOrEqualOperation,PlusOperation:PlusOperation,MinusOperation:MinusOperation,MultiplyOperation:MultiplyOperation,DivOperation:DivOperation,ModOperation:ModOperation,UnaryMinusOperation:UnaryMinusOperation,FunctionCall:FunctionCall,VariableReference:VariableReference,XPathContext:XPathContext,XNodeSet:XNodeSet,XBoolean:XBoolean,XString:XString,XNumber:XNumber,NamespaceResolver:NamespaceResolver,FunctionResolver:FunctionResolver,VariableResolver:VariableResolver,Utilities:Utilities}),exports.select=function(e,doc,single){return exports.selectWithResolver(e,doc,null,single)},exports.useNamespaces=function(mappings){var resolver={mappings:mappings||{},lookupNamespaceURI:function(prefix){return this.mappings[prefix]}};return function(e,doc,single){return exports.selectWithResolver(e,doc,resolver,single)}},exports.selectWithResolver=function(e,doc,resolver,single){var expression=new XPathExpression(e,resolver,new XPathParser),type=XPathResult.ANY_TYPE,result=expression.evaluate(doc,type,null);return result.resultType==XPathResult.STRING_TYPE?result=result.stringValue:result.resultType==XPathResult.NUMBER_TYPE?result=result.numberValue:result.resultType==XPathResult.BOOLEAN_TYPE?result=result.booleanValue:(result=result.nodes,single&&(result=result[0])),result},exports.select1=function(e,doc){return exports.select(e,doc,!0)};var isNodeLike=function(value){return value&&"number"==typeof value.nodeType&&Number.isInteger(value.nodeType)&&value.nodeType>=1&&value.nodeType<=11&&"string"==typeof value.nodeName},isNodeOfType=function(type){return function(value){return isNodeLike(value)&&value.nodeType===type}};assign(exports,{isNodeLike:isNodeLike,isArrayOfNodes:function(value){return Array.isArray(value)&&value.every(isNodeLike)},isElement:isNodeOfType(NodeTypes_ELEMENT_NODE),isAttribute:isNodeOfType(NodeTypes_ATTRIBUTE_NODE),isTextNode:isNodeOfType(NodeTypes_TEXT_NODE),isCDATASection:isNodeOfType(NodeTypes_CDATA_SECTION_NODE),isProcessingInstruction:isNodeOfType(NodeTypes_PROCESSING_INSTRUCTION_NODE),isComment:isNodeOfType(NodeTypes_COMMENT_NODE),isDocumentNode:isNodeOfType(NodeTypes_DOCUMENT_NODE),isDocumentTypeNode:isNodeOfType(NodeTypes_DOCUMENT_TYPE_NODE),isDocumentFragment:isNodeOfType(NodeTypes_DOCUMENT_FRAGMENT_NODE)})}(exports)}(xpath)),xpath}var hasRequiredConventions,hasRequiredDom,lib$1={},dom={},conventions={};function requireConventions(){if(hasRequiredConventions)return conventions;function freeze(object,oc){return void 0===oc&&(oc=Object),oc&&"function"==typeof oc.freeze?oc.freeze(object):object}hasRequiredConventions=1;var MIME_TYPE=freeze({HTML:"text/html",isHTML:function(value){return value===MIME_TYPE.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),NAMESPACE=freeze({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(uri){return uri===NAMESPACE.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});return conventions.assign=function assign(target,source){if(null===target||"object"!=typeof target)throw new TypeError("target is not an object");for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key]);return target},conventions.find=function find(list,predicate,ac){if(void 0===ac&&(ac=Array.prototype),list&&"function"==typeof ac.find)return ac.find.call(list,predicate);for(var i=0;i<list.length;i++)if(Object.prototype.hasOwnProperty.call(list,i)){var item=list[i];if(predicate.call(void 0,item,i,list))return item}},conventions.freeze=freeze,conventions.MIME_TYPE=MIME_TYPE,conventions.NAMESPACE=NAMESPACE,conventions}function requireDom(){if(hasRequiredDom)return dom;hasRequiredDom=1;var conventions=requireConventions(),find=conventions.find,NAMESPACE=conventions.NAMESPACE;function notEmptyString(input){return""!==input}function orderedSetReducer(current,element){return current.hasOwnProperty(element)||(current[element]=!0),current}function toOrderedSet(input){if(!input)return[];var list=function splitOnASCIIWhitespace(input){return input?input.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}(input);return Object.keys(list.reduce(orderedSetReducer,{}))}function copy(src,dest){for(var p in src)Object.prototype.hasOwnProperty.call(src,p)&&(dest[p]=src[p])}function _extends(Class,Super){var pt=Class.prototype;if(!(pt instanceof Super)){function t(){}t.prototype=Super.prototype,copy(pt,t=new t),Class.prototype=pt=t}pt.constructor!=Class&&("function"!=typeof Class&&console.error("unknown Class:"+Class),pt.constructor=Class)}var NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={};ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]="Index size error",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]="DOMString size error",2);var HIERARCHY_REQUEST_ERR=ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]="Hierarchy request error",3);ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]="Wrong document",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]="Invalid character",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]="No data allowed",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]="No modification allowed",7);var NOT_FOUND_ERR=ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]="Not found",8);ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]="Not supported",9);var INUSE_ATTRIBUTE_ERR=ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]="Attribute in use",10);function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+": "+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!==inc){var ls=list._refresh(list._node);if(__set__(list,"length",ls.length),!list.$$length||ls.length<list.$$length)for(var i=ls.length;i in list;i++)Object.prototype.hasOwnProperty.call(list,i)&&delete list[i];copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&(el._nsMap[newAttr.prefix?newAttr.localName:""]=newAttr.value)}(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw new DOMException(NOT_FOUND_ERR,new Error(el.tagName+"@"+attr));for(var lastIndex=list.length-1;i<lastIndex;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(){}function Node(){}function _xmlEncoder(c){return("<"==c?"&lt;":">"==c&&"&gt;")||"&"==c&&"&amp;"||'"'==c&&"&quot;"||"&#"+c.charCodeAt()+";"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do{if(_visitNode(node,callback))return!0}while(node=node.nextSibling)}function Document(){this.ownerDocument=this}function _onRemoveAttribute(doc,el,newAttr,remove){doc&&doc._inc++,newAttr.namespaceURI===NAMESPACE.XMLNS&&delete el._nsMap[newAttr.prefix?newAttr.localName:""]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i,delete cs[cs.length]}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,child.parentNode=null,child.previousSibling=null,child.nextSibling=null,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function isDocTypeNode(node){return node&&node.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(node){return node&&node.nodeType===Node.ELEMENT_NODE}function isTextNode(node){return node&&node.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,isElementNode)||isDocTypeNode(child))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function isElementReplacementPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,(function hasElementChildThatIsNotChild(node){return isElementNode(node)&&node!==child})))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function assertPreInsertionValidity1to5(parent,node,child){if(!function hasValidParentNodeType(node){return node&&(node.nodeType===Node.DOCUMENT_NODE||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.ELEMENT_NODE)}(parent))throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+parent.nodeType);if(child&&child.parentNode!==parent)throw new DOMException(NOT_FOUND_ERR,"child not in parent");if(!function hasInsertableNodeType(node){return node&&(isElementNode(node)||isTextNode(node)||isDocTypeNode(node)||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.COMMENT_NODE||node.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}(node)||isDocTypeNode(node)&&parent.nodeType!==Node.DOCUMENT_NODE)throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected node type "+node.nodeType+" for parent node type "+parent.nodeType)}function assertPreInsertionValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,isDocTypeNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)<parentChildNodes.indexOf(child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element");if(!child&&parentElementChild)throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can not be appended since element is present")}}function assertPreReplacementValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){function hasDoctypeChildThatIsNotChild(node){return isDocTypeNode(node)&&node!==child}if(find(parentChildNodes,hasDoctypeChildThatIsNotChild))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)<parentChildNodes.indexOf(child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element")}}function _insertBefore(parent,node,child,_inDocumentAssertion){assertPreInsertionValidity1to5(parent,node,child),parent.nodeType===Node.DOCUMENT_NODE&&(_inDocumentAssertion||assertPreInsertionValidityInDocument)(parent,node,child);var cp=node.parentNode;if(cp&&cp.removeChild(node),node.nodeType===DOCUMENT_FRAGMENT_NODE){var newFirst=node.firstChild;if(null==newFirst)return node;var newLast=node.lastChild}else newFirst=newLast=node;var pre=child?child.previousSibling:parent.lastChild;newFirst.previousSibling=pre,newLast.nextSibling=child,pre?pre.nextSibling=newFirst:parent.firstChild=newFirst,null==child?parent.lastChild=newLast:child.previousSibling=newLast;do{newFirst.parentNode=parent}while(newFirst!==newLast&&(newFirst=newFirst.nextSibling));return _onUpdateChild(parent.ownerDocument||parent,parent),node.nodeType==DOCUMENT_FRAGMENT_NODE&&(node.firstChild=node.lastChild=null),node}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function nodeSerializeToString(isHtml,nodeFilter){var buf=[],refNode=9==this.nodeType&&this.documentElement||this,prefix=refNode.prefix,uri=refNode.namespaceURI;if(uri&&null==prefix&&null==(prefix=refNode.lookupPrefix(uri)))var visibleNamespaces=[{namespace:uri,prefix:null}];return serializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces),buf.join("")}function needNamespaceDefine(node,isHTML,visibleNamespaces){var prefix=node.prefix||"",uri=node.namespaceURI;if(!uri)return!1;if("xml"===prefix&&uri===NAMESPACE.XML||uri===NAMESPACE.XMLNS)return!1;for(var i=visibleNamespaces.length;i--;){var ns=visibleNamespaces[i];if(ns.prefix===prefix)return ns.namespace!==uri}return!0}function addSerializedAttribute(buf,qualifiedName,value){buf.push(" ",qualifiedName,'="',value.replace(/[<>&"\t\n\r]/g,_xmlEncoder),'"')}function serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){if(visibleNamespaces||(visibleNamespaces=[]),nodeFilter){if(!(node=nodeFilter(node)))return;if("string"==typeof node)return void buf.push(node)}switch(node.nodeType){case ELEMENT_NODE:var attrs=node.attributes,len=attrs.length,child=node.firstChild,nodeName=node.tagName,prefixedNodeName=nodeName;if(!(isHTML=NAMESPACE.isHTML(node.namespaceURI)||isHTML)&&!node.prefix&&node.namespaceURI){for(var defaultNS,ai=0;ai<attrs.length;ai++)if("xmlns"===attrs.item(ai).name){defaultNS=attrs.item(ai).value;break}if(!defaultNS)for(var nsi=visibleNamespaces.length-1;nsi>=0;nsi--){if(""===(namespace=visibleNamespaces[nsi]).prefix&&namespace.namespace===node.namespaceURI){defaultNS=namespace.namespace;break}}if(defaultNS!==node.namespaceURI)for(nsi=visibleNamespaces.length-1;nsi>=0;nsi--){var namespace;if((namespace=visibleNamespaces[nsi]).namespace===node.namespaceURI){namespace.prefix&&(prefixedNodeName=namespace.prefix+":"+nodeName);break}}}buf.push("<",prefixedNodeName);for(var i=0;i<len;i++){"xmlns"==(attr=attrs.item(i)).prefix?visibleNamespaces.push({prefix:attr.localName,namespace:attr.value}):"xmlns"==attr.nodeName&&visibleNamespaces.push({prefix:"",namespace:attr.value})}for(i=0;i<len;i++){var attr,prefix,uri;if(needNamespaceDefine(attr=attrs.item(i),0,visibleNamespaces))addSerializedAttribute(buf,(prefix=attr.prefix||"")?"xmlns:"+prefix:"xmlns",uri=attr.namespaceURI),visibleNamespaces.push({prefix:prefix,namespace:uri});serializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces)}if(nodeName===prefixedNodeName&&needNamespaceDefine(node,0,visibleNamespaces))addSerializedAttribute(buf,(prefix=node.prefix||"")?"xmlns:"+prefix:"xmlns",uri=node.namespaceURI),visibleNamespaces.push({prefix:prefix,namespace:uri});if(child||isHTML&&!/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){if(buf.push(">"),isHTML&&/^script$/i.test(nodeName))for(;child;)child.data?buf.push(child.data):serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;else for(;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;buf.push("</",prefixedNodeName,">")}else buf.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(child=node.firstChild;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;return;case ATTRIBUTE_NODE:return addSerializedAttribute(buf,node.name,node.value);case TEXT_NODE:return buf.push(node.data.replace(/[<&>]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push("<![CDATA[",node.data,"]]>");case COMMENT_NODE:return buf.push("\x3c!--",node.data,"--\x3e");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push("<!DOCTYPE ",node.name),pubid)buf.push(" PUBLIC ",pubid),sysid&&"."!=sysid&&buf.push(" ",sysid),buf.push(">");else if(sysid&&"."!=sysid)buf.push(" SYSTEM ",sysid,">");else{var sub=node.internalSubset;sub&&buf.push(" [",sub,"]"),buf.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push("<?",node.target," ",node.data,"?>");case ENTITY_REFERENCE_NODE:return buf.push("&",node.nodeName,";");default:buf.push("??",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:(node2=node.cloneNode(!1)).ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node)if(Object.prototype.hasOwnProperty.call(node,n)){var v=node[n];"object"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;i<len;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]="Invalid state",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]="Syntax error",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]="Invalid modification",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]="Invalid namespace",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]="Invalid access",15),DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return index>=0&&index<this.length?this[index]:null},toString:function(isHTML,nodeFilter){for(var buf=[],i=0;i<this.length;i++)serializeToString(this[i],buf,isHTML,nodeFilter);return buf.join("")},filter:function(predicate){return Array.prototype.filter.call(this,predicate)},indexOf:function(item){return Array.prototype.indexOf.call(this,item)}},LiveNodeList.prototype.item=function(i){return _updateLiveList(this),this[i]||null},_extends(LiveNodeList,NodeList),NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(key){for(var i=this.length;i--;){var attr=this[i];if(attr.nodeName==key)return attr}},setNamedItem:function(attr){var el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);var oldAttr=this.getNamedItem(attr.nodeName);return _addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},setNamedItemNS:function(attr){var oldAttr,el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);return oldAttr=this.getNamedItemNS(attr.namespaceURI,attr.localName),_addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},removeNamedItem:function(key){var attr=this.getNamedItem(key);return _removeNamedNode(this._ownerElement,this,attr),attr},removeNamedItemNS:function(namespaceURI,localName){var attr=this.getNamedItemNS(namespaceURI,localName);return _removeNamedNode(this._ownerElement,this,attr),attr},getNamedItemNS:function(namespaceURI,localName){for(var i=this.length;i--;){var node=this[i];if(node.localName==localName&&node.namespaceURI==namespaceURI)return node}return null}},DOMImplementation.prototype={hasFeature:function(feature,version){return!0},createDocument:function(namespaceURI,qualifiedName,doctype){var doc=new Document;if(doc.implementation=this,doc.childNodes=new NodeList,doc.doctype=doctype||null,doctype&&doc.appendChild(doctype),qualifiedName){var root=doc.createElementNS(namespaceURI,qualifiedName);doc.appendChild(root)}return doc},createDocumentType:function(qualifiedName,publicId,systemId){var node=new DocumentType;return node.name=qualifiedName,node.nodeName=qualifiedName,node.publicId=publicId||"",node.systemId=systemId||"",node}},Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(newChild,refChild){return _insertBefore(this,newChild,refChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),oldChild&&this.removeChild(oldChild)},removeChild:function(oldChild){return _removeChild(this,oldChild)},appendChild:function(newChild){return this.insertBefore(newChild,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(deep){return cloneNode(this.ownerDocument||this,this,deep)},normalize:function(){for(var child=this.firstChild;child;){var next=child.nextSibling;next&&next.nodeType==TEXT_NODE&&child.nodeType==TEXT_NODE?(this.removeChild(next),child.appendData(next.data)):(child.normalize(),child=next)}},isSupported:function(feature,version){return this.ownerDocument.implementation.hasFeature(feature,version)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(Object.prototype.hasOwnProperty.call(map,n)&&map[n]===namespaceURI)return n;el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&Object.prototype.hasOwnProperty.call(map,prefix))return map[prefix];el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){return null==this.lookupPrefix(namespaceURI)}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return _insertBefore(this,newChild,refChild),newChild.ownerDocument=this,null===this.documentElement&&newChild.nodeType===ELEMENT_NODE&&(this.documentElement=newChild),newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),newChild.ownerDocument=this,oldChild&&this.removeChild(oldChild),isElementNode(newChild)&&(this.documentElement=newChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,(function(node){if(node.nodeType==ELEMENT_NODE&&node.getAttribute("id")==id)return rtv=node,!0})),rtv},getElementsByClassName:function(classNames){var classNamesSet=toOrderedSet(classNames);return new LiveNodeList(this,(function(base){var ls=[];return classNamesSet.length>0&&_visitNode(base.documentElement,(function(node){if(node!==base&&node.nodeType===ELEMENT_NODE){var nodeClassNames=node.getAttribute("class");if(nodeClassNames){var matches=classNames===nodeClassNames;if(!matches){var nodeClassNamesSet=toOrderedSet(nodeClassNames);matches=classNamesSet.every(function arrayIncludes(list){return function(element){return list&&-1!==list.indexOf(element)}}(nodeClassNamesSet))}matches&&ls.push(node)}}})),ls}))},createElement:function(tagName){var node=new Element;return node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.localName=tagName,node.childNodes=new NodeList,(node.attributes=new NamedNodeMap)._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.nodeName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(":"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(":");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||""},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):function _appendSingleChild(parentNode,newChild){return newChild.parentNode&&newChild.parentNode.removeChild(newChild),newChild.parentNode=parentNode,newChild.previousSibling=parentNode.lastChild,newChild.nextSibling=null,newChild.previousSibling?newChild.previousSibling.nextSibling=newChild:parentNode.firstChild=newChild,parentNode.lastChild=newChild,_onUpdateChild(parentNode.ownerDocument,parentNode,newChild),newChild}(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||""},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,(function(base){var ls=[];return _visitNode(base,(function(node){node===base||node.nodeType!=ELEMENT_NODE||"*"!==tagName&&node.tagName!=tagName||ls.push(node)})),ls}))},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,(function(base){var ls=[];return _visitNode(base,(function(node){node===base||node.nodeType!==ELEMENT_NODE||"*"!==namespaceURI&&node.namespaceURI!==namespaceURI||"*"!==localName&&node.localName!=localName||ls.push(node)})),ls}))}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(newChild){throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])},deleteData:function(offset,count){this.replaceData(offset,count,"")},replaceData:function(offset,count,text){text=this.data.substring(0,offset)+text+this.data.substring(offset+count),this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node,isHtml,nodeFilter){return nodeSerializeToString.call(node,isHtml,nodeFilter)},Node.prototype.toString=nodeSerializeToString;try{if(Object.defineProperty){function getTextContent(node){switch(node.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join("");default:return node.nodeValue}}Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(data||String(data))&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=data,this.nodeValue=data}}}),__set__=function(object,key,value){object["$$"+key]=value}}}catch(e){}return dom.DocumentType=DocumentType,dom.DOMException=DOMException,dom.DOMImplementation=DOMImplementation,dom.Element=Element,dom.Node=Node,dom.NodeList=NodeList,dom.XMLSerializer=XMLSerializer,dom}var hasRequiredEntities,domParser={},entities={};function requireEntities(){return hasRequiredEntities||(hasRequiredEntities=1,function(exports){var freeze=requireConventions().freeze;exports.XML_ENTITIES=freeze({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),exports.HTML_ENTITIES=freeze({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),exports.entityMap=exports.HTML_ENTITIES}(entities)),entities}var hasRequiredSax,hasRequiredDomParser,hasRequiredLib$2,sax={};function requireSax(){if(hasRequiredSax)return sax;hasRequiredSax=1;var NAMESPACE=requireConventions().NAMESPACE,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]/,nameChar=new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),tagNamePattern=new RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$");function ParseError(message,locator){this.message=message,this.locator=locator,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}function XMLReader(){}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){function addAttribute(qname,value,startIndex){el.attributeNames.hasOwnProperty(qname)&&errorHandler.fatalError("Attribute "+qname+" redefined"),el.addValue(qname,value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,entityReplacer),startIndex)}for(var attrName,p=++start,s=0;;){var c=source.charAt(p);switch(c){case"=":if(1===s)attrName=source.slice(start,p),s=3;else{if(2!==s)throw new Error("attribute equal must after attrName");s=3}break;case"'":case'"':if(3===s||1===s){if(1===s&&(errorHandler.warning('attribute value must after "="'),attrName=source.slice(start,p)),start=p+1,!((p=source.indexOf(c,start))>0))throw new Error("attribute value no end '"+c+"' match");addAttribute(attrName,value=source.slice(start,p),start-1),s=5}else{if(4!=s)throw new Error('attribute value must after "="');addAttribute(attrName,value=source.slice(start,p),start),errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+")!!"),start=p+1,s=5}break;case"/":switch(s){case 0:el.setTagName(source.slice(start,p));case 5:case 6:case 7:s=7,el.closed=!0;case 4:case 1:break;case 2:el.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return errorHandler.error("unexpected end of input"),0==s&&el.setTagName(source.slice(start,p)),p;case">":switch(s){case 0:el.setTagName(source.slice(start,p));case 5:case 6:case 7:break;case 4:case 1:"/"===(value=source.slice(start,p)).slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case 2:2===s&&(value=attrName),4==s?(errorHandler.warning('attribute "'+value+'" missed quot(")!'),addAttribute(attrName,value,start)):(NAMESPACE.isHTML(currentNSMap[""])&&value.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!'),addAttribute(value,value,start));break;case 3:throw new Error("attribute value missed!!")}return p;case"€":c=" ";default:if(c<=" ")switch(s){case 0:el.setTagName(source.slice(start,p)),s=6;break;case 1:attrName=source.slice(start,p),s=2;break;case 4:var value=source.slice(start,p);errorHandler.warning('attribute "'+value+'" missed quot(")!!'),addAttribute(attrName,value,start);case 5:s=6}else switch(s){case 2:el.tagName,NAMESPACE.isHTML(currentNSMap[""])&&attrName.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead2!!'),addAttribute(attrName,attrName,start),start=p,s=1;break;case 5:errorHandler.warning('attribute space is required"'+attrName+'"!!');case 6:s=1,start=p;break;case 3:s=4,start=p;break;case 7:throw new Error("elements closed character '/' and '>' must be connected to")}}p++}}function appendElement(el,domBuilder,currentNSMap){for(var tagName=el.tagName,localNSMap=null,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value;if((nsp=qName.indexOf(":"))>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,!1!==nsPrefix&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=NAMESPACE.XMLNS,domBuilder.startPrefixMapping(nsPrefix,value))}for(i=el.length;i--;){(prefix=(a=el[i]).prefix)&&("xml"===prefix&&(a.uri=NAMESPACE.XML),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix||""]))}var nsp;(nsp=tagName.indexOf(":"))>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),!el.closed)return el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,!0;if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("</"+tagName+">",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&((pos=source.lastIndexOf("</"+tagName+">"))<elStartEnd&&(pos=source.lastIndexOf("</"+tagName)),closeMap[tagName]=pos),pos<elStartEnd}function _copy(source,target){for(var n in source)Object.prototype.hasOwnProperty.call(source,n)&&(target[n]=source[n])}function parseDCC(source,start,domBuilder,errorHandler){if("-"===source.charAt(start+2))return"-"===source.charAt(start+3)?(end=source.indexOf("--\x3e",start+4))>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1):-1;if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=function split(source,start){var match,buf=[],reg=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;reg.lastIndex=start,reg.exec(source);for(;match=reg.exec(source);)if(buf.push(match),match[1])return buf}(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=!1,sysid=!1;len>3&&(/^public$/i.test(matchs[2][0])?(pubid=matchs[3][0],sysid=len>4&&matchs[4][0]):/^system$/i.test(matchs[2][0])&&(sysid=matchs[3][0]));var lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid,sysid),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){this.attributeNames={}}return ParseError.prototype=new Error,ParseError.prototype.name=ParseError.name,XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){var surrogate1=55296+((code-=65536)>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return Object.hasOwnProperty.call(entityMap,k)?entityMap[k]:"#"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace("x","0x"))):(errorHandler.error("entity not found:"+a),a)}function appendText(end){if(end>start){var xt=source.substring(start,end).replace(/&#?\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}}function position(p,m){for(;p>=lineEnd&&(m=linePattern.exec(source));)lineStart=m.index,lineEnd=lineStart+m[0].length,locator.lineNumber++;locator.columnNumber=p-lineStart+1}var lineStart=0,lineEnd=0,linePattern=/.*(?:\r\n?|\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;for(;;){try{var tagStart=source.indexOf("<",start);if(tagStart<0){if(!source.substr(start).match(/^\s*$/)){var doc=domBuilder.doc,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(tagStart>start&&appendText(tagStart),source.charAt(tagStart+1)){case"/":var end=source.indexOf(">",tagStart+3),tagName=source.substring(tagStart+2,end).replace(/[ \t\n\r]+$/g,""),config=parseStack.pop();end<0?(tagName=source.substring(tagStart+2).replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" is not complete:"+config.tagName),end=tagStart+1+tagName.length):tagName.match(/\s</)&&(tagName=tagName.replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" maybe not complete"),end=tagStart+1+tagName.length);var localNSMap=config.localNSMap,endMatch=config.tagName==tagName;if(endMatch||config.tagName&&config.tagName.toLowerCase()==tagName.toLowerCase()){if(domBuilder.endElement(config.uri,config.localName,tagName),localNSMap)for(var prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix);endMatch||errorHandler.fatalError("end tag name: "+tagName+" is not match the current start tagName:"+config.tagName)}else parseStack.push(config);end++;break;case"?":locator&&position(tagStart),end=parseInstruction(source,tagStart,domBuilder);break;case"!":locator&&position(tagStart),end=parseDCC(source,tagStart,domBuilder,errorHandler);break;default:locator&&position(tagStart);var el=new ElementAttributes,currentNSMap=parseStack[parseStack.length-1].currentNSMap,len=(end=parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler),el.length);if(!el.closed&&fixSelfClosed(source,end,el.tagName,closeMap)&&(el.closed=!0,entityMap.nbsp||errorHandler.warning("unclosed xml attribute")),locator&&len){for(var locator2=copyLocator(locator,{}),i=0;i<len;i++){var a=el[i];position(a.offset),a.locator=copyLocator(locator,{})}domBuilder.locator=locator2,appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el),domBuilder.locator=locator}else appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el);NAMESPACE.isHTML(el.uri)&&!el.closed?end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder):end++}}catch(e){if(e instanceof ParseError)throw e;errorHandler.error("element parse error: "+e),end=-1}end>start?start=end:appendText(Math.max(tagStart,start)+1)}}(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw new Error("invalid tagName:"+tagName);this.tagName=tagName},addValue:function(qName,value,offset){if(!tagNamePattern.test(qName))throw new Error("invalid attribute:"+qName);this.attributeNames[qName]=this.length,this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getLocator:function(i){return this[i].locator},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},sax.XMLReader=XMLReader,sax.ParseError=ParseError,sax}function requireDomParser(){if(hasRequiredDomParser)return domParser;hasRequiredDomParser=1;var conventions=requireConventions(),dom=requireDom(),entities=requireEntities(),sax=requireSax(),DOMImplementation=dom.DOMImplementation,NAMESPACE=conventions.NAMESPACE,ParseError=sax.ParseError,XMLReader=sax.XMLReader;function normalizeLineEndings(input){return input.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function DOMParser(options){this.options=options||{locator:{}}}function DOMHandler(){this.cdata=!1}function position(locator,node){node.lineNumber=locator.lineNumber,node.columnNumber=locator.columnNumber}function _locator(l){if(l)return"\n@"+(l.systemId||"")+"#[line:"+l.lineNumber+",col:"+l.columnNumber+"]"}function _toString(chars,start,length){return"string"==typeof chars?chars.substr(start,length):chars.length>=start+length||start?new java.lang.String(chars,start,length)+"":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.doc.appendChild(node)}return DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},isHTML=/\/x?html?$/.test(mimeType),entityMap=isHTML?entities.HTML_ENTITIES:entities.XML_ENTITIES;locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=function buildErrorHandler(errorImpl,domBuilder,locator){if(!errorImpl){if(domBuilder instanceof DOMHandler)return domBuilder;errorImpl=domBuilder}var errorHandler={},isCallback=errorImpl instanceof Function;function build(key){var fn=errorImpl[key];!fn&&isCallback&&(fn=2==errorImpl.length?function(msg){errorImpl(key,msg)}:errorImpl),errorHandler[key]=fn&&function(msg){fn("[xmldom "+key+"]\t"+msg+_locator(locator))}||function(){}}return locator=locator||{},build("warning"),build("error"),build("fatalError"),errorHandler}(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,isHTML&&(defaultNSMap[""]=NAMESPACE.HTML),defaultNSMap.xml=defaultNSMap.xml||NAMESPACE.XML;var normalize=options.normalizeLineEndings||normalizeLineEndings;return source&&"string"==typeof source?sax.parse(normalize(source),defaultNSMap,entityMap):sax.errorHandler.error("invalid doc source"),domBuilder.doc},DOMHandler.prototype={startDocument:function(){this.doc=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.doc,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;i<len;i++){namespaceURI=attrs.getURI(i);var value=attrs.getValue(i),attr=(qName=attrs.getQName(i),doc.createAttributeNS(namespaceURI,qName));this.locator&&position(attrs.getLocator(i),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(namespaceURI,localName,qName){var current=this.currentElement;current.tagName,this.currentElement=current.parentNode},startPrefixMapping:function(prefix,uri){},endPrefixMapping:function(prefix){},processingInstruction:function(target,data){var ins=this.doc.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(ch,start,length){},characters:function(chars,start,length){if(chars=_toString.apply(this,arguments)){if(this.cdata)var charNode=this.doc.createCDATASection(chars);else charNode=this.doc.createTextNode(chars);this.currentElement?this.currentElement.appendChild(charNode):/^\s*$/.test(chars)&&this.doc.appendChild(charNode),this.locator&&position(this.locator,charNode)}},skippedEntity:function(name){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars,start,length){chars=_toString.apply(this,arguments);var comm=this.doc.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.doc.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt),this.doc.doctype=dt}},warning:function(error){console.warn("[xmldom warning]\t"+error,_locator(this.locator))},error:function(error){console.error("[xmldom error]\t"+error,_locator(this.locator))},fatalError:function(error){throw new ParseError(error,this.locator)}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,(function(key){DOMHandler.prototype[key]=function(){return null}})),domParser.__DOMHandler=DOMHandler,domParser.normalizeLineEndings=normalizeLineEndings,domParser.DOMParser=DOMParser,domParser}var hasRequiredDist,hasRequiredUtils$2,utils$2={},dist={};function requireDist(){if(hasRequiredDist)return dist;var NodeTypes;function isNodeLike(value){return value&&"object"==typeof value&&Number.isInteger(value.nodeType)&&value.nodeType>=1&&value.nodeType<=11&&"string"==typeof value.nodeName&&"function"==typeof value.appendChild&&"function"==typeof value.removeChild}function isArrayOfNodes(value){return Array.isArray(value)&&value.every(isNodeLike)}function isNodeOfType(type,value){return isNodeLike(value)&&value.nodeType===type}function assertIsNodeOfType(type,value){const typeName=Object.keys(NodeTypes).find((key=>NodeTypes[key]===type));if(!isNodeOfType(type,value))throw new Error(`Value is not of type ${typeName}`)}hasRequiredDist=1,Object.defineProperty(dist,"__esModule",{value:!0}),dist.assertIsDocumentFragmentNode=dist.assertIsDocumentTypeNode=dist.assertIsDocumentNode=dist.assertIsCommentNode=dist.assertIsProcessingInstructionNode=dist.assertIsCDATASectionNode=dist.assertIsTextNode=dist.assertIsAttributeNode=dist.assertIsElementNode=dist.isDocumentFragmentNode=dist.isDocumentTypeNode=dist.isDocumentNode=dist.isCommentNode=dist.isProcessingInstructionNode=dist.isCDATASectionNode=dist.isTextNode=dist.isAttributeNode=dist.isElementNode=dist.assertIsArrayOfNodes=dist.isArrayOfNodes=dist.assertIsNodeLike=dist.isNodeLike=dist.NodeTypes=void 0,function(NodeTypes){NodeTypes[NodeTypes.ELEMENT_NODE=1]="ELEMENT_NODE",NodeTypes[NodeTypes.ATTRIBUTE_NODE=2]="ATTRIBUTE_NODE",NodeTypes[NodeTypes.TEXT_NODE=3]="TEXT_NODE",NodeTypes[NodeTypes.CDATA_SECTION_NODE=4]="CDATA_SECTION_NODE",NodeTypes[NodeTypes.PROCESSING_INSTRUCTION_NODE=7]="PROCESSING_INSTRUCTION_NODE",NodeTypes[NodeTypes.COMMENT_NODE=8]="COMMENT_NODE",NodeTypes[NodeTypes.DOCUMENT_NODE=9]="DOCUMENT_NODE",NodeTypes[NodeTypes.DOCUMENT_TYPE_NODE=10]="DOCUMENT_TYPE_NODE",NodeTypes[NodeTypes.DOCUMENT_FRAGMENT_NODE=11]="DOCUMENT_FRAGMENT_NODE"}(NodeTypes||(dist.NodeTypes=NodeTypes={})),dist.isNodeLike=isNodeLike,dist.assertIsNodeLike=function assertIsNodeLike(value){if(!isNodeLike(value))throw new Error(`Value is not a Node-like object. Received: ${value}`)},dist.isArrayOfNodes=isArrayOfNodes,dist.assertIsArrayOfNodes=function assertIsArrayOfNodes(value){if(!isArrayOfNodes(value))throw new Error("Value is not an array of Nodes")};dist.isElementNode=value=>isNodeOfType(NodeTypes.ELEMENT_NODE,value);dist.isAttributeNode=value=>isNodeOfType(NodeTypes.ATTRIBUTE_NODE,value);dist.isTextNode=value=>isNodeOfType(NodeTypes.TEXT_NODE,value);dist.isCDATASectionNode=value=>isNodeOfType(NodeTypes.CDATA_SECTION_NODE,value);dist.isProcessingInstructionNode=value=>isNodeOfType(NodeTypes.PROCESSING_INSTRUCTION_NODE,value);dist.isCommentNode=value=>isNodeOfType(NodeTypes.COMMENT_NODE,value);dist.isDocumentNode=value=>isNodeOfType(NodeTypes.DOCUMENT_NODE,value);dist.isDocumentTypeNode=value=>isNodeOfType(NodeTypes.DOCUMENT_TYPE_NODE,value);dist.isDocumentFragmentNode=value=>isNodeOfType(NodeTypes.DOCUMENT_FRAGMENT_NODE,value);dist.assertIsElementNode=value=>{assertIsNodeOfType(NodeTypes.ELEMENT_NODE,value)};dist.assertIsAttributeNode=value=>assertIsNodeOfType(NodeTypes.ATTRIBUTE_NODE,value);dist.assertIsTextNode=value=>assertIsNodeOfType(NodeTypes.TEXT_NODE,value);dist.assertIsCDATASectionNode=value=>assertIsNodeOfType(NodeTypes.CDATA_SECTION_NODE,value);dist.assertIsProcessingInstructionNode=value=>assertIsNodeOfType(NodeTypes.PROCESSING_INSTRUCTION_NODE,value);dist.assertIsCommentNode=value=>assertIsNodeOfType(NodeTypes.COMMENT_NODE,value);dist.assertIsDocumentNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_NODE,value);dist.assertIsDocumentTypeNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_TYPE_NODE,value);return dist.assertIsDocumentFragmentNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_FRAGMENT_NODE,value),dist}function requireUtils$2(){return hasRequiredUtils$2||(hasRequiredUtils$2=1,function(exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateDigestValue=exports.findAncestorNs=exports.derToPem=exports.pemToDer=exports.normalizePem=exports.BASE64_REGEX=exports.EXTRACT_X509_CERTS=exports.PEM_FORMAT_REGEX=exports.encodeSpecialCharactersInText=exports.encodeSpecialCharactersInAttribute=exports.findChilds=exports.findChildren=exports.findAttr=exports.isArrayHasLength=void 0;const xpath=requireXpath(),isDomNode=requireDist();function isArrayHasLength(array){return Array.isArray(array)&&array.length>0}function attrEqualsExplicitly(attr,localName,namespace){return attr.localName===localName&&(attr.namespaceURI===namespace||null==namespace)}function attrEqualsImplicitly(attr,localName,namespace,node){return attr.localName===localName&&(!attr.namespaceURI&&node?.namespaceURI===namespace||null==namespace)}function findChildren(node,localName,namespace){const element=node.documentElement??node,res=[];for(let i=0;i<element.childNodes.length;i++){const child=element.childNodes[i];!isDomNode.isElementNode(child)||child.localName!==localName||child.namespaceURI!==namespace&&null!=namespace||res.push(child)}return res}exports.isArrayHasLength=isArrayHasLength,exports.findAttr=function findAttr(element,localName,namespace){for(let i=0;i<element.attributes.length;i++){const attr=element.attributes[i];if(attrEqualsExplicitly(attr,localName,namespace)||attrEqualsImplicitly(attr,localName,namespace,element))return attr}return null},exports.findChildren=findChildren,exports.findChilds=function findChilds(node,localName,namespace){return findChildren(node,localName,namespace)};const xml_special_to_encoded_attribute={"&":"&amp;","<":"&lt;",'"':"&quot;","\r":"&#xD;","\n":"&#xA;","\t":"&#x9;"},xml_special_to_encoded_text={"&":"&amp;","<":"&lt;",">":"&gt;","\r":"&#xD;"};function normalizePem(pem){return`${(pem.trim().replace(/(\r\n|\r)/g,"\n").match(/.{1,64}/g)??[]).join("\n")}\n`}function collectAncestorNamespaces(node,nsArray=[]){if(!isDomNode.isElementNode(node.parentNode))return nsArray;const parent=node.parentNode;if(!parent)return nsArray;if(parent.attributes&&parent.attributes.length>0)for(let i=0;i<parent.attributes.length;i++){const attr=parent.attributes[i];attr&&attr.nodeName&&-1!==attr.nodeName.search(/^xmlns:?/)&&nsArray.push({prefix:attr.nodeName.replace(/^xmlns:?/,""),namespaceURI:attr.nodeValue||""})}return collectAncestorNamespaces(parent,nsArray)}exports.encodeSpecialCharactersInAttribute=function encodeSpecialCharactersInAttribute(attributeValue){return attributeValue.replace(/([&<"\r\n\t])/g,(function(str,item){return xml_special_to_encoded_attribute[item]}))},exports.encodeSpecialCharactersInText=function encodeSpecialCharactersInText(text){return text.replace(/([&<>\r])/g,(function(str,item){return xml_special_to_encoded_text[item]}))},exports.PEM_FORMAT_REGEX=new RegExp("^-----BEGIN [A-Z ]{1,48}-----([^-]*)-----END [A-Z ]{1,48}-----$","s"),exports.EXTRACT_X509_CERTS=new RegExp("-----BEGIN CERTIFICATE-----[^-]*-----END CERTIFICATE-----","g"),exports.BASE64_REGEX=new RegExp("^(?:[A-Za-z0-9\\+\\/]{4}\\n{0,1})*(?:[A-Za-z0-9\\+\\/]{2}==|[A-Za-z0-9\\+\\/]{3}=)?$","s"),exports.normalizePem=normalizePem,exports.pemToDer=function pemToDer(pem){if(!exports.PEM_FORMAT_REGEX.test(pem.trim()))throw new Error("Invalid PEM format.");return Buffer.from(pem.replace(/(\r\n|\r)/g,"").replace(/-----BEGIN [A-Z\x20]{1,48}-----\n?/,"").replace(/-----END [A-Z\x20]{1,48}-----\n?/,""),"base64")},exports.derToPem=function derToPem(der,pemLabel){const base64Der=Buffer.isBuffer(der)?der.toString("base64").trim():der.replace(/(\r\n|\r)/g,"").trim();if(exports.PEM_FORMAT_REGEX.test(base64Der))return normalizePem(base64Der);if(exports.BASE64_REGEX.test(base64Der.replace(/ /g,""))){if(null==pemLabel)throw new Error("PEM label is required when DER is given.");return normalizePem(`-----BEGIN ${pemLabel}-----\n${base64Der.replace(/ /g,"")}\n-----END ${pemLabel}-----`)}throw new Error("Unknown DER format.")},exports.findAncestorNs=function findAncestorNs(doc,docSubsetXpath,namespaceResolver){if(null==docSubsetXpath)return[];const docSubset=xpath.selectWithResolver(docSubsetXpath,doc,namespaceResolver);if(!isArrayHasLength(docSubset))return[];if(!function isElementSubset(docSubset){return docSubset.every((node=>isDomNode.isElementNode(node)))}(docSubset))throw new Error("Document subset must be list of elements");const ancestorNs=collectAncestorNamespaces(docSubset[0]),ancestorNsWithoutDuplicate=[];for(let i=0;i<ancestorNs.length;i++){let notOnTheList=!0;for(const v in ancestorNsWithoutDuplicate)if(ancestorNsWithoutDuplicate[v].prefix===ancestorNs[i].prefix){notOnTheList=!1;break}notOnTheList&&ancestorNsWithoutDuplicate.push(ancestorNs[i])}const returningNs=[],subsetNsPrefix=function findNSPrefix(subset){const subsetAttributes=subset.attributes;for(let k=0;k<subsetAttributes.length;k++){const nodeName=subsetAttributes[k].nodeName;if(-1!==nodeName.search(/^xmlns:?/))return nodeName.replace(/^xmlns:?/,"")}return subset.prefix||""}(docSubset[0]);for(const ancestorNs of ancestorNsWithoutDuplicate)ancestorNs.prefix!==subsetNsPrefix&&returningNs.push(ancestorNs);return returningNs},exports.validateDigestValue=function validateDigestValue(digest,expectedDigest){const buffer=Buffer.from(digest,"base64"),expectedBuffer=Buffer.from(expectedDigest,"base64");if("function"==typeof buffer.equals)return buffer.equals(expectedBuffer);if(buffer.length!==expectedBuffer.length)return!1;for(let i=0;i<buffer.length;i++)if(buffer[i]!==expectedBuffer[i])return!1;return!0}}(utils$2)),utils$2}var hasRequiredC14nCanonicalization,c14nCanonicalization={};var hasRequiredExclusiveCanonicalization,exclusiveCanonicalization={};var hasRequiredEnvelopedSignature,envelopedSignature={};var hasRequiredHashAlgorithms,hashAlgorithms={};function requireHashAlgorithms(){if(hasRequiredHashAlgorithms)return hashAlgorithms;hasRequiredHashAlgorithms=1,Object.defineProperty(hashAlgorithms,"__esModule",{value:!0}),hashAlgorithms.Sha512=hashAlgorithms.Sha256=hashAlgorithms.Sha1=void 0;const crypto=require$$0__default$1.default;hashAlgorithms.Sha1=class Sha1{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha1");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2000/09/xmldsig#sha1"}}};hashAlgorithms.Sha256=class Sha256{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha256");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2001/04/xmlenc#sha256"}}};return hashAlgorithms.Sha512=class Sha512{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha512");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2001/04/xmlenc#sha512"}}},hashAlgorithms}var hasRequiredTypes,hasRequiredSignatureAlgorithms,hasRequiredSignedXml,hasRequiredLib$1,signatureAlgorithms={},types={};function requireTypes(){if(hasRequiredTypes)return types;return hasRequiredTypes=1,Object.defineProperty(types,"__esModule",{value:!0}),types.createOptionalCallbackFunction=void 0,types.createOptionalCallbackFunction=function createOptionalCallbackFunction(syncVersion){return(...args)=>{const possibleCallback=args[args.length-1];if(!function isErrorFirstCallback(possibleCallback){return"function"==typeof possibleCallback}(possibleCallback))return syncVersion(...args);try{possibleCallback(null,syncVersion(...args.slice(0,-1)))}catch(err){possibleCallback(err instanceof Error?err:new Error("Unknown error"))}}},types}function requireSignatureAlgorithms(){if(hasRequiredSignatureAlgorithms)return signatureAlgorithms;hasRequiredSignatureAlgorithms=1,Object.defineProperty(signatureAlgorithms,"__esModule",{value:!0}),signatureAlgorithms.HmacSha1=signatureAlgorithms.RsaSha512=signatureAlgorithms.RsaSha256=signatureAlgorithms.RsaSha1=void 0;const crypto=require$$0__default$1.default,types_1=requireTypes();signatureAlgorithms.RsaSha1=class RsaSha1{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA1");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA1");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2000/09/xmldsig#rsa-sha1"}};signatureAlgorithms.RsaSha256=class RsaSha256{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA256");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA256");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"}};signatureAlgorithms.RsaSha512=class RsaSha512{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA512");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA512");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"}};return signatureAlgorithms.HmacSha1=class HmacSha1{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createHmac("SHA1",privateKey);signer.update(signedInfo);return signer.digest("base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createHmac("SHA1",key);verifier.update(material);return verifier.digest("base64")===signatureValue})),this.getAlgorithmName=()=>"http://www.w3.org/2000/09/xmldsig#hmac-sha1"}},signatureAlgorithms}function requireSignedXml(){if(hasRequiredSignedXml)return signedXml;hasRequiredSignedXml=1,Object.defineProperty(signedXml,"__esModule",{value:!0}),signedXml.SignedXml=void 0;const xpath=requireXpath(),xmldom=function requireLib$2(){if(hasRequiredLib$2)return lib$1;hasRequiredLib$2=1;var dom=requireDom();return lib$1.DOMImplementation=dom.DOMImplementation,lib$1.XMLSerializer=dom.XMLSerializer,lib$1.DOMParser=requireDomParser().DOMParser,lib$1}(),utils=requireUtils$2(),c14n=function requireC14nCanonicalization(){if(hasRequiredC14nCanonicalization)return c14nCanonicalization;hasRequiredC14nCanonicalization=1,Object.defineProperty(c14nCanonicalization,"__esModule",{value:!0}),c14nCanonicalization.C14nCanonicalizationWithComments=c14nCanonicalization.C14nCanonicalization=void 0;const utils=requireUtils$2(),isDomNode=requireDist();class C14nCanonicalization{constructor(){this.includeComments=!1,this.includeComments=!1}attrCompare(a,b){if(!a.namespaceURI&&b.namespaceURI)return-1;if(!b.namespaceURI&&a.namespaceURI)return 1;const left=a.namespaceURI+a.localName,right=b.namespaceURI+b.localName;return left===right?0:left<right?-1:1}nsCompare(a,b){const attr1=a.prefix,attr2=b.prefix;return attr1===attr2?0:attr1.localeCompare(attr2)}renderAttrs(node){let i,attr;const attrListToRender=[];if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],0!==attr.name.indexOf("xmlns")&&attrListToRender.push(attr);attrListToRender.sort(this.attrCompare);const res=attrListToRender.map((attr=>` ${attr.name}="${utils.encodeSpecialCharactersInAttribute(attr.value)}"`));return res.join("")}renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces){let i,attr;const res=[];let newDefaultNs=defaultNs;const nsListToRender=[],currNs=node.namespaceURI||"";if(node.prefix?-1===prefixesInScope.indexOf(node.prefix)&&(nsListToRender.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]}),prefixesInScope.push(node.prefix)):defaultNs!==currNs&&(newDefaultNs=node.namespaceURI||"",res.push(' xmlns="',newDefaultNs,'"')),node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],"xmlns"===attr.prefix&&-1===prefixesInScope.indexOf(attr.localName)&&(nsListToRender.push({prefix:attr.localName,namespaceURI:attr.value}),prefixesInScope.push(attr.localName)),attr.prefix&&-1===prefixesInScope.indexOf(attr.prefix)&&"xmlns"!==attr.prefix&&"xml"!==attr.prefix&&(nsListToRender.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}),prefixesInScope.push(attr.prefix));if(utils.isArrayHasLength(ancestorNamespaces))for(const ancestorNamespace of ancestorNamespaces){let alreadyListed=!1;for(const nsToRender of nsListToRender)nsToRender.prefix===ancestorNamespace.prefix&&nsToRender.namespaceURI===ancestorNamespace.namespaceURI&&(alreadyListed=!0);alreadyListed||nsListToRender.push(ancestorNamespace)}return nsListToRender.sort(this.nsCompare),res.push(...nsListToRender.map((attr=>attr.prefix?` xmlns:${attr.prefix}="${attr.namespaceURI}"`:` xmlns="${attr.namespaceURI}"`))),{rendered:res.join(""),newDefaultNs:newDefaultNs}}processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces){if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.data)return utils.encodeSpecialCharactersInText(node.data);if(isDomNode.isElementNode(node)){let i,pfxCopy;const ns=this.renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces),res=["<",node.tagName,ns.rendered,this.renderAttrs(node),">"];for(i=0;i<node.childNodes.length;++i)pfxCopy=prefixesInScope.slice(0),res.push(this.processInner(node.childNodes[i],pfxCopy,ns.newDefaultNs,defaultNsForPrefix,[]));return res.push("</",node.tagName,">"),res.join("")}throw new Error(`Unable to canonicalize node type: ${node.nodeType}`)}renderComment(node){if(!this.includeComments)return"";let isBeforeDocument=!1,isAfterDocument=!1;if(node.ownerDocument===node.parentNode){let nextNode=node,previousNode=node;for(;null!==nextNode;){if(nextNode===node.ownerDocument.documentElement){isBeforeDocument=!0;break}nextNode=nextNode.nextSibling}for(;null!==previousNode;){if(previousNode===node.ownerDocument.documentElement){isAfterDocument=!0;break}previousNode=previousNode.previousSibling}}const beforeDocument=isBeforeDocument?"\n":"";return`${isAfterDocument?"\n":""}\x3c!--${utils.encodeSpecialCharactersInText(node.data)}--\x3e${beforeDocument}`}process(node,options){const defaultNs=(options=options||{}).defaultNs||"",defaultNsForPrefix=options.defaultNsForPrefix||{},ancestorNamespaces=options.ancestorNamespaces||[],prefixesInScope=[];for(let i=0;i<ancestorNamespaces.length;i++)prefixesInScope.push(ancestorNamespaces[i].prefix);return this.processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces)}getAlgorithmName(){return"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"}}return c14nCanonicalization.C14nCanonicalization=C14nCanonicalization,c14nCanonicalization.C14nCanonicalizationWithComments=class C14nCanonicalizationWithComments extends C14nCanonicalization{constructor(){super(),this.includeComments=!0}getAlgorithmName(){return"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"}},c14nCanonicalization}(),execC14n=function requireExclusiveCanonicalization(){if(hasRequiredExclusiveCanonicalization)return exclusiveCanonicalization;hasRequiredExclusiveCanonicalization=1,Object.defineProperty(exclusiveCanonicalization,"__esModule",{value:!0}),exclusiveCanonicalization.ExclusiveCanonicalizationWithComments=exclusiveCanonicalization.ExclusiveCanonicalization=void 0;const utils=requireUtils$2(),isDomNode=requireDist();function isPrefixInScope(prefixesInScope,prefix,namespaceURI){let ret=!1;return prefixesInScope.forEach((function(pf){pf.prefix===prefix&&pf.namespaceURI===namespaceURI&&(ret=!0)})),ret}class ExclusiveCanonicalization{constructor(){this.includeComments=!1,this.includeComments=!1}attrCompare(a,b){if(!a.namespaceURI&&b.namespaceURI)return-1;if(!b.namespaceURI&&a.namespaceURI)return 1;const left=a.namespaceURI+a.localName,right=b.namespaceURI+b.localName;return left===right?0:left<right?-1:1}nsCompare(a,b){const attr1=a.prefix,attr2=b.prefix;return attr1===attr2?0:attr1.localeCompare(attr2)}renderAttrs(node){let i,attr;const res=[],attrListToRender=[];if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],0!==attr.name.indexOf("xmlns")&&attrListToRender.push(attr);for(attr of(attrListToRender.sort(this.attrCompare),attrListToRender))res.push(" ",attr.name,'="',utils.encodeSpecialCharactersInAttribute(attr.value),'"');return res.join("")}renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList){let i,attr;const res=[];let newDefaultNs=defaultNs;const nsListToRender=[],currNs=node.namespaceURI||"";if(node.prefix?isPrefixInScope(prefixesInScope,node.prefix,node.namespaceURI||defaultNsForPrefix[node.prefix])||(nsListToRender.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]}),prefixesInScope.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]})):defaultNs!==currNs&&(newDefaultNs=node.namespaceURI,res.push(' xmlns="',newDefaultNs,'"')),node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],attr.prefix&&!isPrefixInScope(prefixesInScope,attr.localName,attr.value)&&inclusiveNamespacesPrefixList.indexOf(attr.localName)>=0&&(nsListToRender.push({prefix:attr.localName,namespaceURI:attr.value}),prefixesInScope.push({prefix:attr.localName,namespaceURI:attr.value})),attr.prefix&&!isPrefixInScope(prefixesInScope,attr.prefix,attr.namespaceURI)&&"xmlns"!==attr.prefix&&"xml"!==attr.prefix&&(nsListToRender.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}),prefixesInScope.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}));nsListToRender.sort(this.nsCompare);for(const p of nsListToRender)res.push(" xmlns:",p.prefix,'="',p.namespaceURI,'"');return{rendered:res.join(""),newDefaultNs:newDefaultNs}}processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList){if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.data)return utils.encodeSpecialCharactersInText(node.data);if(isDomNode.isElementNode(node)){let i,pfxCopy;const ns=this.renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList),res=["<",node.tagName,ns.rendered,this.renderAttrs(node),">"];for(i=0;i<node.childNodes.length;++i)pfxCopy=prefixesInScope.slice(0),res.push(this.processInner(node.childNodes[i],pfxCopy,ns.newDefaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList));return res.push("</",node.tagName,">"),res.join("")}throw new Error(`Unable to exclusive canonicalize node type: ${node.nodeType}`)}renderComment(node){if(!this.includeComments)return"";let isBeforeDocument=!1,isAfterDocument=!1;if(node.ownerDocument===node.parentNode){let nextNode=node,previousNode=node;for(;null!=nextNode;){if(nextNode===node.ownerDocument.documentElement){isBeforeDocument=!0;break}nextNode=nextNode.nextSibling}for(;null!=previousNode;){if(previousNode===node.ownerDocument.documentElement){isAfterDocument=!0;break}previousNode=previousNode.previousSibling}}const beforeDocument=isBeforeDocument?"\n":"";return`${isAfterDocument?"\n":""}\x3c!--${utils.encodeSpecialCharactersInText(node.data)}--\x3e${beforeDocument}`}process(elem,options){let inclusiveNamespacesPrefixList=(options=options||{}).inclusiveNamespacesPrefixList||[];const defaultNs=options.defaultNs||"",defaultNsForPrefix=options.defaultNsForPrefix||{},ancestorNamespaces=options.ancestorNamespaces||[];if(!utils.isArrayHasLength(inclusiveNamespacesPrefixList)){const CanonicalizationMethod=utils.findChildren(elem,"CanonicalizationMethod");if(0!==CanonicalizationMethod.length){const inclusiveNamespaces=utils.findChildren(CanonicalizationMethod[0],"InclusiveNamespaces");0!==inclusiveNamespaces.length&&(inclusiveNamespacesPrefixList=(inclusiveNamespaces[0].getAttribute("PrefixList")||"").split(" "))}}return utils.isArrayHasLength(inclusiveNamespacesPrefixList)&&inclusiveNamespacesPrefixList.forEach((function(prefix){ancestorNamespaces&&ancestorNamespaces.forEach((function(ancestorNamespace){prefix===ancestorNamespace.prefix&&elem.setAttributeNS("http://www.w3.org/2000/xmlns/",`xmlns:${prefix}`,ancestorNamespace.namespaceURI)}))})),this.processInner(elem,[],defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList)}getAlgorithmName(){return"http://www.w3.org/2001/10/xml-exc-c14n#"}}return exclusiveCanonicalization.ExclusiveCanonicalization=ExclusiveCanonicalization,exclusiveCanonicalization.ExclusiveCanonicalizationWithComments=class ExclusiveCanonicalizationWithComments extends ExclusiveCanonicalization{constructor(){super(),this.includeComments=!0}getAlgorithmName(){return"http://www.w3.org/2001/10/xml-exc-c14n#WithComments"}},exclusiveCanonicalization}(),envelopedSignatures=function requireEnvelopedSignature(){if(hasRequiredEnvelopedSignature)return envelopedSignature;hasRequiredEnvelopedSignature=1,Object.defineProperty(envelopedSignature,"__esModule",{value:!0}),envelopedSignature.EnvelopedSignature=void 0;const xpath=requireXpath(),isDomNode=requireDist();return envelopedSignature.EnvelopedSignature=class EnvelopedSignature{constructor(){this.includeComments=!1,this.includeComments=!1}process(node,options){if(null==options.signatureNode){const signature=xpath.select1("./*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",node);return isDomNode.isNodeLike(signature)&&signature.parentNode&&signature.parentNode.removeChild(signature),node}const signatureNode=options.signatureNode,expectedSignatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",signatureNode);if(isDomNode.isTextNode(expectedSignatureValue)){const expectedSignatureValueData=expectedSignatureValue.data,signatures=xpath.select(".//*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",node);for(const nodeSignature of Array.isArray(signatures)?signatures:[]){const signatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",nodeSignature);isDomNode.isTextNode(signatureValue)&&expectedSignatureValueData===signatureValue.data&&nodeSignature.parentNode&&nodeSignature.parentNode.removeChild(nodeSignature)}}return node}getAlgorithmName(){return"http://www.w3.org/2000/09/xmldsig#enveloped-signature"}},envelopedSignature}(),hashAlgorithms=requireHashAlgorithms(),signatureAlgorithms=requireSignatureAlgorithms(),isDomNode=requireDist();class SignedXml{constructor(options={}){this.signatureAlgorithm=void 0,this.canonicalizationAlgorithm=void 0,this.inclusiveNamespacesPrefixList=[],this.namespaceResolver={lookupNamespaceURI:function(){throw new Error("Not implemented")}},this.implicitTransforms=[],this.keyInfoAttributes={},this.getKeyInfoContent=SignedXml.getKeyInfoContent,this.getCertFromKeyInfo=SignedXml.getCertFromKeyInfo,this.id=0,this.signedXml="",this.signatureXml="",this.signatureNode=null,this.signatureValue="",this.originalXmlWithIds="",this.keyInfo=null,this.references=[],this.CanonicalizationAlgorithms={"http://www.w3.org/TR/2001/REC-xml-c14n-20010315":c14n.C14nCanonicalization,"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments":c14n.C14nCanonicalizationWithComments,"http://www.w3.org/2001/10/xml-exc-c14n#":execC14n.ExclusiveCanonicalization,"http://www.w3.org/2001/10/xml-exc-c14n#WithComments":execC14n.ExclusiveCanonicalizationWithComments,"http://www.w3.org/2000/09/xmldsig#enveloped-signature":envelopedSignatures.EnvelopedSignature},this.HashAlgorithms={"http://www.w3.org/2000/09/xmldsig#sha1":hashAlgorithms.Sha1,"http://www.w3.org/2001/04/xmlenc#sha256":hashAlgorithms.Sha256,"http://www.w3.org/2001/04/xmlenc#sha512":hashAlgorithms.Sha512},this.SignatureAlgorithms={"http://www.w3.org/2000/09/xmldsig#rsa-sha1":signatureAlgorithms.RsaSha1,"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256":signatureAlgorithms.RsaSha256,"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512":signatureAlgorithms.RsaSha512};const{idMode:idMode,idAttribute:idAttribute,privateKey:privateKey,publicCert:publicCert,signatureAlgorithm:signatureAlgorithm,canonicalizationAlgorithm:canonicalizationAlgorithm,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,implicitTransforms:implicitTransforms,keyInfoAttributes:keyInfoAttributes,getKeyInfoContent:getKeyInfoContent,getCertFromKeyInfo:getCertFromKeyInfo}=options;this.idMode=idMode,this.idAttributes=["Id","ID","id"],idAttribute&&this.idAttributes.unshift(idAttribute),this.privateKey=privateKey,this.publicCert=publicCert,this.signatureAlgorithm=signatureAlgorithm??this.signatureAlgorithm,this.canonicalizationAlgorithm=canonicalizationAlgorithm,"string"==typeof inclusiveNamespacesPrefixList?this.inclusiveNamespacesPrefixList=inclusiveNamespacesPrefixList.split(" "):utils.isArrayHasLength(inclusiveNamespacesPrefixList)&&(this.inclusiveNamespacesPrefixList=inclusiveNamespacesPrefixList),this.implicitTransforms=implicitTransforms??this.implicitTransforms,this.keyInfoAttributes=keyInfoAttributes??this.keyInfoAttributes,this.getKeyInfoContent=getKeyInfoContent??this.getKeyInfoContent,this.getCertFromKeyInfo=getCertFromKeyInfo??SignedXml.noop,this.CanonicalizationAlgorithms,this.HashAlgorithms,this.SignatureAlgorithms}enableHMAC(){this.SignatureAlgorithms={"http://www.w3.org/2000/09/xmldsig#hmac-sha1":signatureAlgorithms.HmacSha1},this.getKeyInfoContent=SignedXml.noop}static getKeyInfoContent({publicCert:publicCert,prefix:prefix}){if(null==publicCert)return null;prefix=prefix?`${prefix}:`:"";let x509Certs="";Buffer.isBuffer(publicCert)&&(publicCert=publicCert.toString("latin1"));let publicCertMatches=[];return"string"==typeof publicCert&&(publicCertMatches=publicCert.match(utils.EXTRACT_X509_CERTS)||[]),publicCertMatches.length>0&&(x509Certs=publicCertMatches.map((c=>`<${prefix}X509Certificate>${utils.pemToDer(c).toString("base64")}</${prefix}X509Certificate>`)).join("")),`<${prefix}X509Data>${x509Certs}</${prefix}X509Data>`}static getCertFromKeyInfo(keyInfo){if(null!=keyInfo){const cert=xpath.select1(".//*[local-name(.)='X509Certificate']",keyInfo);if(isDomNode.isNodeLike(cert))return utils.derToPem(cert.textContent??"","CERTIFICATE")}return null}checkSignature(xml,callback){if(null!=callback&&"function"!=typeof callback)throw new Error("Last parameter must be a callback function");this.signedXml=xml;const doc=(new xmldom.DOMParser).parseFromString(xml);if(!this.getReferences().every((ref=>this.validateReference(ref,doc))))return!!callback&&void callback(new Error("Could not validate all references"));const signedInfoCanon=this.getCanonSignedInfoXml(doc),signer=this.findSignatureAlgorithm(this.signatureAlgorithm),key=this.getCertFromKeyInfo(this.keyInfo)||this.publicCert||this.privateKey;if(null==key)throw new Error("KeyInfo or publicCert or privateKey is required to validate signature");if(!callback){if(!1===signer.verifySignature(signedInfoCanon,key,this.signatureValue))throw new Error(`invalid signature: the signature value ${this.signatureValue} is incorrect`);return!0}signer.verifySignature(signedInfoCanon,key,this.signatureValue,callback)}getCanonSignedInfoXml(doc){if(null==this.signatureNode)throw new Error("No signature found.");if("string"!=typeof this.canonicalizationAlgorithm)throw new Error("Missing canonicalizationAlgorithm when trying to get signed info for XML");const signedInfo=utils.findChildren(this.signatureNode,"SignedInfo");if(0===signedInfo.length)throw new Error("could not find SignedInfo element in the message");if(!("http://www.w3.org/TR/2001/REC-xml-c14n-20010315"!==this.canonicalizationAlgorithm&&"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"!==this.canonicalizationAlgorithm||doc&&"object"==typeof doc))throw new Error("When canonicalization method is non-exclusive, whole xml dom must be provided as an argument");const c14nOptions={ancestorNamespaces:utils.findAncestorNs(doc,"//*[local-name()='SignedInfo']")};return this.getCanonXml([this.canonicalizationAlgorithm],signedInfo[0],c14nOptions)}getCanonReferenceXml(doc,ref,node){Array.isArray(ref.transforms)&&(ref.ancestorNamespaces=utils.findAncestorNs(doc,ref.xpath,this.namespaceResolver));const c14nOptions={inclusiveNamespacesPrefixList:ref.inclusiveNamespacesPrefixList,ancestorNamespaces:ref.ancestorNamespaces};return this.getCanonXml(ref.transforms,node,c14nOptions)}calculateSignatureValue(doc,callback){const signedInfoCanon=this.getCanonSignedInfoXml(doc),signer=this.findSignatureAlgorithm(this.signatureAlgorithm);if(null==this.privateKey)throw new Error("Private key is required to compute signature");"function"==typeof callback?signer.getSignature(signedInfoCanon,this.privateKey,callback):this.signatureValue=signer.getSignature(signedInfoCanon,this.privateKey)}findSignatureAlgorithm(name){if(null==name)throw new Error("signatureAlgorithm is required");const algo=this.SignatureAlgorithms[name];if(algo)return new algo;throw new Error(`signature algorithm '${name}' is not supported`)}findCanonicalizationAlgorithm(name){if(null!=name){const algo=this.CanonicalizationAlgorithms[name];if(algo)return new algo}throw new Error(`canonicalization algorithm '${name}' is not supported`)}findHashAlgorithm(name){const algo=this.HashAlgorithms[name];if(algo)return new algo;throw new Error(`hash algorithm '${name}' is not supported`)}validateElementAgainstReferences(elemOrXpath,doc){let elem;if("string"==typeof elemOrXpath){const firstElem=xpath.select1(elemOrXpath,doc);isDomNode.assertIsElementNode(firstElem),elem=firstElem}else elem=elemOrXpath;for(const ref of this.getReferences()){const uri="#"===ref.uri?.[0]?ref.uri.substring(1):ref.uri;for(const attr of this.idAttributes){if(uri===elem.getAttribute(attr)){ref.xpath=`//*[@*[local-name(.)='${attr}']='${uri}']`;break}}const canonXml=this.getCanonReferenceXml(doc,ref,elem),digest=this.findHashAlgorithm(ref.digestAlgorithm).getHash(canonXml);if(utils.validateDigestValue(digest,ref.digestValue))return ref}throw new Error("No references passed validation")}validateReference(ref,doc){const uri="#"===ref.uri?.[0]?ref.uri.substring(1):ref.uri;let elem=null;if(""===uri)elem=xpath.select1("//*",doc);else{if(-1!==uri?.indexOf("'"))throw new Error("Cannot validate a uri with quotes inside it");{let num_elements_for_id=0;for(const attr of this.idAttributes){const tmp_elemXpath=`//*[@*[local-name(.)='${attr}']='${uri}']`,tmp_elem=xpath.select(tmp_elemXpath,doc);if(utils.isArrayHasLength(tmp_elem)){if(num_elements_for_id+=tmp_elem.length,num_elements_for_id>1)throw new Error("Cannot validate a document which contains multiple elements with the same value for the ID / Id / Id attributes, in order to prevent signature wrapping attack.");elem=tmp_elem[0],ref.xpath=tmp_elemXpath}}}}if(ref.getValidatedNode=xpathSelector=>{if("string"!=typeof(xpathSelector=xpathSelector||ref.xpath)||null!=ref.validationError)return null;const selectedValue=xpath.select1(xpathSelector,doc);return isDomNode.isNodeLike(selectedValue)?selectedValue:null},!isDomNode.isNodeLike(elem)){const validationError=new Error(`invalid signature: the signature references an element with uri ${ref.uri} but could not find such element in the xml`);return ref.validationError=validationError,!1}const canonXml=this.getCanonReferenceXml(doc,ref,elem),digest=this.findHashAlgorithm(ref.digestAlgorithm).getHash(canonXml);if(!utils.validateDigestValue(digest,ref.digestValue)){const validationError=new Error(`invalid signature: for uri ${ref.uri} calculated digest is ${digest} but the xml to validate supplies digest ${ref.digestValue}`);return ref.validationError=validationError,!1}return!0}findSignatures(doc){const nodes=xpath.select("//*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",doc);return isDomNode.isArrayOfNodes(nodes)?nodes:[]}loadSignature(signatureNode){this.signatureNode="string"==typeof signatureNode?signatureNode=(new xmldom.DOMParser).parseFromString(signatureNode):signatureNode,this.signatureXml=signatureNode.toString();const node=xpath.select1(".//*[local-name(.)='CanonicalizationMethod']/@Algorithm",signatureNode);if(!isDomNode.isNodeLike(node))throw new Error("could not find CanonicalizationMethod/@Algorithm element");isDomNode.isAttributeNode(node)&&(this.canonicalizationAlgorithm=node.value);const signatureAlgorithm=xpath.select1(".//*[local-name(.)='SignatureMethod']/@Algorithm",signatureNode);isDomNode.isAttributeNode(signatureAlgorithm)&&(this.signatureAlgorithm=signatureAlgorithm.value),this.references=[];const references=xpath.select(".//*[local-name(.)='SignedInfo']/*[local-name(.)='Reference']",signatureNode);if(!utils.isArrayHasLength(references))throw new Error("could not find any Reference elements");for(const reference of references)this.loadReference(reference);const signatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",signatureNode);isDomNode.isTextNode(signatureValue)&&(this.signatureValue=signatureValue.data.replace(/\r?\n/g,""));const keyInfo=xpath.select1(".//*[local-name(.)='KeyInfo']",signatureNode);isDomNode.isNodeLike(keyInfo)&&(this.keyInfo=keyInfo)}loadReference(refNode){let nodes=utils.findChildren(refNode,"DigestMethod");if(0===nodes.length)throw new Error(`could not find DigestMethod in reference ${refNode.toString()}`);const digestAlgoNode=nodes[0],attr=utils.findAttr(digestAlgoNode,"Algorithm");if(!attr)throw new Error(`could not find Algorithm attribute in node ${digestAlgoNode.toString()}`);const digestAlgo=attr.value;if(nodes=utils.findChildren(refNode,"DigestValue"),0===nodes.length)throw new Error(`could not find DigestValue node in reference ${refNode.toString()}`);const firstChild=nodes[0].firstChild;if(!firstChild||!("data"in firstChild))throw new Error(`could not find the value of DigestValue in ${nodes[0].toString()}`);const digestValue=firstChild.data,transforms=[];let inclusiveNamespacesPrefixList=[];if(nodes=utils.findChildren(refNode,"Transforms"),0!==nodes.length){const transformsNode=nodes[0],transformsAll=utils.findChildren(transformsNode,"Transform");for(const transform of transformsAll){const transformAttr=utils.findAttr(transform,"Algorithm");transformAttr&&transforms.push(transformAttr.value)}const inclusiveNamespaces=utils.findChildren(transformsAll[transformsAll.length-1],"InclusiveNamespaces");utils.isArrayHasLength(inclusiveNamespaces)&&(inclusiveNamespacesPrefixList=inclusiveNamespaces.flatMap((namespace=>(namespace.getAttribute("PrefixList")??"").split(" "))).filter((value=>value.length>0)))}utils.isArrayHasLength(this.implicitTransforms)&&this.implicitTransforms.forEach((function(t){transforms.push(t)})),0!==transforms.length&&"http://www.w3.org/2000/09/xmldsig#enveloped-signature"!==transforms[transforms.length-1]||transforms.push("http://www.w3.org/TR/2001/REC-xml-c14n-20010315"),this.addReference({transforms:transforms,digestAlgorithm:digestAlgo,uri:isDomNode.isElementNode(refNode)?utils.findAttr(refNode,"URI")?.value:void 0,digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,isEmptyUri:!1})}addReference({xpath:xpath,transforms:transforms,digestAlgorithm:digestAlgorithm,uri:uri="",digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList=[],isEmptyUri:isEmptyUri=!1}){if(null==digestAlgorithm)throw new Error("digestAlgorithm is required");if(!utils.isArrayHasLength(transforms))throw new Error("transforms must contain at least one transform algorithm");this.references.push({xpath:xpath,transforms:transforms,digestAlgorithm:digestAlgorithm,uri:uri,digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,isEmptyUri:isEmptyUri,getValidatedNode:()=>{throw new Error("Reference has not been validated yet; Did you call `sig.checkSignature()`?")}})}getReferences(){return this.references}computeSignature(xml,options,callbackParam){let callback;"function"==typeof options&&null==callbackParam?(callback=options,options={}):(callback=callbackParam,options=options??{});const doc=(new xmldom.DOMParser).parseFromString(xml);let xmlNsAttr="xmlns";const signatureAttrs=[];let currentPrefix;const validActions=["append","prepend","before","after"],prefix=options.prefix,attrs=options.attrs||{},location=options.location||{},existingPrefixes=options.existingPrefixes||{};if(this.namespaceResolver={lookupNamespaceURI:function(prefix){return prefix?existingPrefixes[prefix]:null}},location.reference=location.reference||"/*",location.action=location.action||"append",-1===validActions.indexOf(location.action)){const err=new Error(`location.action option has an invalid action: ${location.action}, must be any of the following values: ${validActions.join(", ")}`);if(callback)return void callback(err);throw err}prefix?(xmlNsAttr+=`:${prefix}`,currentPrefix=`${prefix}:`):currentPrefix="",Object.keys(attrs).forEach((function(name){"xmlns"!==name&&name!==xmlNsAttr&&signatureAttrs.push(`${name}="${attrs[name]}"`)})),signatureAttrs.push(`${xmlNsAttr}="http://www.w3.org/2000/09/xmldsig#"`);let signatureXml=`<${currentPrefix}Signature ${signatureAttrs.join(" ")}>`;signatureXml+=this.createSignedInfo(doc,prefix),signatureXml+=this.getKeyInfo(prefix),signatureXml+=`</${currentPrefix}Signature>`,this.originalXmlWithIds=doc.toString();let existingPrefixesString="";Object.keys(existingPrefixes).forEach((function(key){existingPrefixesString+=`xmlns:${key}="${existingPrefixes[key]}" `}));const dummySignatureWrapper=`<Dummy ${existingPrefixesString}>${signatureXml}</Dummy>`,signatureDoc=(new xmldom.DOMParser).parseFromString(dummySignatureWrapper).documentElement.firstChild,referenceNode=xpath.select1(location.reference,doc);if(!isDomNode.isNodeLike(referenceNode)){const err2=new Error(`the following xpath cannot be used because it was not found: ${location.reference}`);if(callback)return void callback(err2);throw err2}if("append"===location.action)referenceNode.appendChild(signatureDoc);else if("prepend"===location.action)referenceNode.insertBefore(signatureDoc,referenceNode.firstChild);else if("before"===location.action){if(null==referenceNode.parentNode)throw new Error("`location.reference` refers to the root node (by default), so we can't insert `before`");referenceNode.parentNode.insertBefore(signatureDoc,referenceNode)}else if("after"===location.action){if(null==referenceNode.parentNode)throw new Error("`location.reference` refers to the root node (by default), so we can't insert `after`");referenceNode.parentNode.insertBefore(signatureDoc,referenceNode.nextSibling)}this.signatureNode=signatureDoc;const signedInfoNodes=utils.findChildren(this.signatureNode,"SignedInfo");if(0===signedInfoNodes.length){const err3=new Error("could not find SignedInfo element in the message");if(callback)return void callback(err3);throw err3}const signedInfoNode=signedInfoNodes[0];"function"==typeof callback?this.calculateSignatureValue(doc,((err,signature)=>{err?callback(err):(this.signatureValue=signature||"",signatureDoc.insertBefore(this.createSignature(prefix),signedInfoNode.nextSibling),this.signatureXml=signatureDoc.toString(),this.signedXml=doc.toString(),callback(null,this))})):(this.calculateSignatureValue(doc),signatureDoc.insertBefore(this.createSignature(prefix),signedInfoNode.nextSibling),this.signatureXml=signatureDoc.toString(),this.signedXml=doc.toString())}getKeyInfo(prefix){const currentPrefix=prefix?`${prefix}:`:"";let keyInfoAttrs="";this.keyInfoAttributes&&Object.keys(this.keyInfoAttributes).forEach((name=>{keyInfoAttrs+=` ${name}="${this.keyInfoAttributes[name]}"`}));const keyInfoContent=this.getKeyInfoContent({publicCert:this.publicCert,prefix:prefix});return keyInfoAttrs||keyInfoContent?`<${currentPrefix}KeyInfo${keyInfoAttrs}>${keyInfoContent}</${currentPrefix}KeyInfo>`:""}createReferences(doc,prefix){let res="";prefix=(prefix=prefix||"")?`${prefix}:`:prefix;for(const ref of this.getReferences()){const nodes=xpath.selectWithResolver(ref.xpath??"",doc,this.namespaceResolver);if(!utils.isArrayHasLength(nodes))throw new Error(`the following xpath cannot be signed because it was not found: ${ref.xpath}`);for(const node of nodes){if(ref.isEmptyUri)res+=`<${prefix}Reference URI="">`;else{const id=this.ensureHasId(node);ref.uri=id,res+=`<${prefix}Reference URI="#${id}">`}res+=`<${prefix}Transforms>`;for(const trans of ref.transforms||[]){const transform=this.findCanonicalizationAlgorithm(trans);res+=`<${prefix}Transform Algorithm="${transform.getAlgorithmName()}"`,utils.isArrayHasLength(ref.inclusiveNamespacesPrefixList)?(res+=">",res+=`<InclusiveNamespaces PrefixList="${ref.inclusiveNamespacesPrefixList.join(" ")}" xmlns="${transform.getAlgorithmName()}"/>`,res+=`</${prefix}Transform>`):res+=" />"}const canonXml=this.getCanonReferenceXml(doc,ref,node),digestAlgorithm=this.findHashAlgorithm(ref.digestAlgorithm);res+=`</${prefix}Transforms><${prefix}DigestMethod Algorithm="${digestAlgorithm.getAlgorithmName()}" /><${prefix}DigestValue>${digestAlgorithm.getHash(canonXml)}</${prefix}DigestValue></${prefix}Reference>`}}return res}getCanonXml(transforms,node,options={}){options.defaultNsForPrefix=options.defaultNsForPrefix??SignedXml.defaultNsForPrefix,options.signatureNode=this.signatureNode;let transformedXml=node.cloneNode(!0);return transforms.forEach((transformName=>{if(isDomNode.isNodeLike(transformedXml)){const transform=this.findCanonicalizationAlgorithm(transformName);transformedXml=transform.process(transformedXml,options)}})),transformedXml.toString()}ensureHasId(node){let attr;if("wssecurity"===this.idMode?attr=utils.findAttr(node,"Id","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"):this.idAttributes.some((idAttribute=>(attr=utils.findAttr(node,idAttribute),!!attr))),attr)return attr.value;const id="_"+this.id++;return"wssecurity"===this.idMode?(node.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:wsu","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"),node.setAttributeNS("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd","wsu:Id",id)):node.setAttribute("Id",id),id}createSignedInfo(doc,prefix){if("string"!=typeof this.canonicalizationAlgorithm)throw new Error("Missing canonicalizationAlgorithm when trying to create signed info for XML");const transform=this.findCanonicalizationAlgorithm(this.canonicalizationAlgorithm),algo=this.findSignatureAlgorithm(this.signatureAlgorithm);let currentPrefix;currentPrefix=prefix||"",currentPrefix=currentPrefix?`${currentPrefix}:`:currentPrefix;let res=`<${currentPrefix}SignedInfo>`;return res+=`<${currentPrefix}CanonicalizationMethod Algorithm="${transform.getAlgorithmName()}"`,utils.isArrayHasLength(this.inclusiveNamespacesPrefixList)?(res+=">",res+=`<InclusiveNamespaces PrefixList="${this.inclusiveNamespacesPrefixList.join(" ")}" xmlns="${transform.getAlgorithmName()}"/>`,res+=`</${currentPrefix}CanonicalizationMethod>`):res+=" />",res+=`<${currentPrefix}SignatureMethod Algorithm="${algo.getAlgorithmName()}" />`,res+=this.createReferences(doc,prefix),res+=`</${currentPrefix}SignedInfo>`,res}createSignature(prefix){let xmlNsAttr="xmlns";prefix?(xmlNsAttr+=`:${prefix}`,prefix+=":"):prefix="";const dummySignatureWrapper=`<${prefix}Signature ${xmlNsAttr}="http://www.w3.org/2000/09/xmldsig#">${`<${prefix}SignatureValue>${this.signatureValue}</${prefix}SignatureValue>`}</${prefix}Signature>`;return(new xmldom.DOMParser).parseFromString(dummySignatureWrapper).documentElement.firstChild}getSignatureXml(){return this.signatureXml}getOriginalXmlWithIds(){return this.originalXmlWithIds}getSignedXml(){return this.signedXml}}return signedXml.SignedXml=SignedXml,SignedXml.defaultNsForPrefix={ds:"http://www.w3.org/2000/09/xmldsig#"},SignedXml.noop=()=>null,signedXml}var libExports$1=function requireLib$1(){return hasRequiredLib$1||(hasRequiredLib$1=1,function(exports){var __createBinding=lib$2&&lib$2.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=lib$2&&lib$2.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SignedXml=void 0;var signed_xml_1=requireSignedXml();Object.defineProperty(exports,"SignedXml",{enumerable:!0,get:function(){return signed_xml_1.SignedXml}}),__exportStar(requireUtils$2(),exports),__exportStar(requireTypes(),exports)}(lib$2)),lib$2}();class XmlBuilder{constructor(environment){this.environment=environment}assinarXML(xml,tagAssinar){const signedXmlObj=new libExports$1.SignedXml({publicCert:this.environment.getCert(),privateKey:this.environment.getCertKey(),canonicalizationAlgorithm:"http://www.w3.org/TR/2001/REC-xml-c14n-20010315",implicitTransforms:["http://www.w3.org/TR/2001/REC-xml-c14n-20010315"]});return signedXmlObj.addReference({xpath:`//*[local-name(.)='${tagAssinar}']`,digestAlgorithm:"http://www.w3.org/2000/09/xmldsig#sha1",transforms:["http://www.w3.org/2000/09/xmldsig#enveloped-signature","http://www.w3.org/TR/2001/REC-xml-c14n-20010315"]}),signedXmlObj.signatureAlgorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1",signedXmlObj.computeSignature(xml),signedXmlObj.getSignedXml()}serializeXml(obj,rootTag){return new xml2js.Builder({rootName:rootTag,headless:!0,renderOpts:{pretty:!1}}).buildObject(obj)}gerarXml(xmlObject,rootTag){return this.serializeXml(xmlObject,rootTag)}buildSoapEnvelope(xml,soapMethod,soapVersion="soap12",rootTagObj=null){const soapNamespaces={soap12:"http://www.w3.org/2003/05/soap-envelope",soap:"http://schemas.xmlsoap.org/soap/envelope/"},soapNamespace=soapNamespaces[soapVersion]||soapNamespaces.soap12;let soapEnvelopeObj={$:{[`xmlns:${soapVersion}`]:soapNamespace,"xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:xsd":"http://www.w3.org/2001/XMLSchema"},[`${soapVersion}:Body`]:{}};if(rootTagObj&&rootTagObj.tag){let bodyContent={nfeDadosMsg:{$:{xmlns:soapMethod},_:"[XML]"}};rootTagObj.namespace&&(bodyContent.$={xmlns:rootTagObj.namespace}),soapEnvelopeObj[`${soapVersion}:Body`][rootTagObj.tag]=bodyContent}else soapEnvelopeObj[`${soapVersion}:Body`]={nfeDadosMsg:{$:{xmlns:soapMethod},_:"[XML]"}};return this.serializeXml(soapEnvelopeObj,`${soapVersion}:Envelope`).replace("[XML]",xml)}}class NFERetornoAutorizacao$1 extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFERetornoAutorizacao",axios)}gerarXml(data){try{const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe",versao:"4.00"},tpAmb:ambiente,nRec:data};return this.xmlBuilder.gerarXml(xmlObject,"consReciNFe")}catch(error){throw new Error(error.message)}}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async getRetornoRecibo(nRec,xmlNFe){try{const xmlConsulta=this.gerarXml(nRec),{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const{protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno.data);if(!protNFe)throw new Error("Não foi possível encontrar a tag 'protNFe'. Talvez a NFe ainda não tenha sido processada.");return this.getXmlRetornoAutorizacao(protNFe,xmlNFe)}catch(error){throw new Error(error.message)}}getXmlRetornoAutorizacao(protNFe,xmlNFe){try{const XMLs=[];for(let i=0;i<protNFe.length;i++){const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},_:"[XML]"};let xml=this.xmlBuilder.gerarXml(baseXML,"nfeProc");const formatedProtNFe=protNFe,xmlCompleto=xmlNFe.find((item=>-1!==item.indexOf(formatedProtNFe[i].infProt[0].chNFe[0])));if(xmlCompleto){const protTag=this.xmlBuilder.gerarXml(protNFe[i],"protNFe"),xmlFinal=[xmlCompleto];xmlFinal.push(protTag),xml=xml.replace("[XML]",xmlFinal.join("")),xml=`<?xml version="1.0" encoding="UTF-8"?>${xml}`,XMLs.push(xml)}}return{success:!0,message:"xMotivo",data:XMLs}}catch(error){throw new Error(error.message)}}async getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:xmlNFe}){try{if(1===tipoEmissao&&protNFe)return this.getXmlRetornoAutorizacao(protNFe,xmlNFe);if(0===tipoEmissao&&nRec)return this.getRetornoRecibo(nRec,xmlNFe);throw new Error("Não foi possível buscar o retorno da autorização.")}catch(error){throw new Error(error.message)}}}class NFEAutorizacaoHandler$1{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}}function filterFieldsByType(source,requiredFields){const result={};for(const key of requiredFields)key in source&&""!==source[key]&&(result[key]=source[key]);return result}const COFINSMap={"01":"COFINSAliq","02":"COFINSAliq","03":"COFINSQtde","04":"COFINSNT","05":"COFINSNT","06":"COFINSNT","07":"COFINSNT","08":"COFINSNT","09":"COFINSNT",49:"COFINSOutr",50:"COFINSOutr",51:"COFINSOutr",52:"COFINSOutr",53:"COFINSOutr",54:"COFINSOutr",55:"COFINSOutr",56:"COFINSOutr",60:"COFINSOutr",61:"COFINSOutr",62:"COFINSOutr",63:"COFINSOutr",64:"COFINSOutr",65:"COFINSOutr",66:"COFINSOutr",67:"COFINSOutr",70:"COFINSOutr",71:"COFINSOutr",72:"COFINSOutr",73:"COFINSOutr",74:"COFINSOutr",75:"COFINSOutr",98:"COFINSOutr",99:"COFINSOutr"},PISMap={"01":"PISAliq","02":"PISAliq","03":"PISQtde","04":"PISNT","05":"PISNT","06":"PISNT","07":"PISNT","08":"PISNT","09":"PISNT",49:"PISOutr",50:"PISOutr",51:"PISOutr",52:"PISOutr",53:"PISOutr",54:"PISOutr",55:"PISOutr",56:"PISOutr",60:"PISOutr",61:"PISOutr",62:"PISOutr",63:"PISOutr",64:"PISOutr",65:"PISOutr",66:"PISOutr",67:"PISOutr",70:"PISOutr",71:"PISOutr",72:"PISOutr",73:"PISOutr",74:"PISOutr",75:"PISOutr",98:"PISOutr",99:"PISOutr"},ICMSMap={"00":"ICMS00","02":"ICMS02",10:"ICMS10",20:"ICMS20",30:"ICMS30",40:"ICMS40",41:"ICMS40",50:"ICMS40",51:"ICMS51",60:"ICMS60",70:"ICMS70",90:"ICMS90",101:"ICMSSN101",102:"ICMSSN102",103:"ICMSSN102",201:"ICMSSN201",202:"ICMSSN202",203:"ICMSSN202",500:"ICMSSN500",900:"ICMSSN900"},mountCOFINS=cofins=>{const{CST:CST}=cofins,cst_cofins=CST;let cofinsKey=COFINSMap[CST];cofinsKey||(console.warn(`Código de situação tributária do COFINS ${cst_cofins} não é reconhecido. Alterado para padrão 'COFINSAliq'.`),cofinsKey="COFINSAliq");const requiredFields={COFINSAliq:["CST","vBC","pCOFINS","vCOFINS"],COFINSQtde:["CST","qBCProd","vAliqProd","vCOFINS"],COFINSNT:["CST"],COFINSOutr:["CST","vBC","pCOFINS","qBCProd","vAliqProd","vCOFINS"]};if(cofinsKey in requiredFields){const cofinsProperties=filterFieldsByType(cofins,requiredFields[cofinsKey]);return{[cofinsKey]:cofinsProperties}}return console.warn(`Chave COFINS '${cofinsKey}' não reconhecida.`),{}},mountPIS=pis=>{const{CST:CST}=pis,cst_pis=CST;let pisKey=PISMap[cst_pis];pisKey||(console.warn(`Código de situação tributária do PIS ${cst_pis} não é reconhecido. Alterado para padrão 'PISAliq'.`),pisKey="PISAliq");const requiredFields={PISAliq:["CST","vBC","pPIS","vPIS"],PISQtde:["CST","qBCProd","vAliqProd","vPIS"],PISNT:["CST"],PISOutr:["CST","vBC","pPIS","qBCProd","vAliqProd","vPIS"]};if(pisKey in requiredFields){const pisProperties=filterFieldsByType(pis,requiredFields[pisKey]);return{[pisKey]:pisProperties}}return console.warn(`Chave PIS '${pisKey}' não reconhecida.`),{}},mountICMS=icms=>{const{CST:CST}=icms,cod_sit_trib=CST.length>2?CST.substring(1,3):CST;let icmsKey=ICMSMap[cod_sit_trib];icmsKey||(console.warn(`Código de situação tributária ${cod_sit_trib} não é reconhecido. Alterado para padrão 'ICMS00'.`),icmsKey="ICMS00");const requiredFields={ICMS00:["orig","CST","modBC","vBC","pICMS","vICMS","pFCP","vFCP"],ICMS02:["orig","CST","qBCMono","adRemICMS","vICMSMono"],ICMS10:["orig","CST","modBC","vBC","pICMS","vICMS","vBCFCP","pFCP","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vICMSSTDeson","motDesICMSST"],ICMS15:["orig","CST","qBCMono","adRemICMS","vICMSMono","qBCMonoReten","adRemICMSReten","vICMSMonoReten","pRedAdRem","motRedAdRem"],ICMS20:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCFCP","pFCP","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS30:["orig","CST","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vBCFCPST","pFCPST","vFCPST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS40:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS41:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS50:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS51:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vICMSOp","pDif","vICMSDif"],ICMS53:["orig","CST","qBCMono","adRemICMS","vICMSMonoOp","pDif","vICMSMonoDif","vICMSMono","qBCMonoDif","adRemICMSDif"],ICMS60:["orig","CST","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","pRedBCEfet","vBCEfet","pICMSEfet","vICMSEfet"],ICMS61:["orig","CST","qBCMonoRet","adRemICMSRet","vICMSMonoRet"],ICMS70:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCST","pICMSST","vICMSST","vICMSDeson","motDesICMS","indDeduzDeson","modBCST","pMVAST","pRedBCST"],ICMS90:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCST","pICMSST","vICMSST","vICMSDeson","motDesICMS","indDeduzDeson","modBCST","pMVAST","pRedBCST"],ICMSPart:["orig","CST","modBC","vBC","pRedBC","pICMS","vICMS","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","pBCOp","UFST","vBCFCPST","pFCPST","vFCPST"],ICMSST:["orig","CST","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","vBCSTDest","vICMSSTDest"],ICMSSN101:["orig","CSOSN","pCredSN","vCredICMSSN"],ICMSSN102:["orig","CSOSN"],ICMSSN201:["orig","CSOSN","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","pFCPST","vFCPST"],ICMSSN202:["orig","CSOSN","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vFCPST","vBCFCPST","pFCPST"],ICMSSN500:["orig","CSOSN","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","pRedBCEfet","vBCEfet","pICMSEfet","vICMSEfet"],ICMSSN900:["orig","CSOSN","modBC","vBC","pRedBC","pICMS","vICMS","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vBCFCPST","pFCPST","vFCPST","pCredSN","vCredICMSSN"]};if(icmsKey in requiredFields){const icmsProperties=filterFieldsByType(icms,requiredFields[icmsKey]);return{[icmsKey]:icmsProperties}}return console.warn(`Chave ICMS '${icmsKey}' não reconhecida.`),{}};class NFEAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEAutorizacao",axios),this.xmlNFe=[]}gerarXml(data){return this.gerarXmlNFeAutorizacao(data)}salvaArquivos(xmlConsulta,responseInJson,xmlRetorno,options){const config=this.environment.getConfig();let dateAndTimeInFileName=config.dfe.incluirTimestampNoNomeDosArquivos;const createFileName=(prefix,includeMethodName)=>{const dtaTime=dateAndTimeInFileName?`-${format(new Date,"dd-MM-yyyy-HHmm")}`:"";return`${includeMethodName?`${this.metodo}`:""}${prefix?includeMethodName?`-${prefix}`:`${prefix}`:""}${responseInJson.chNFe?`-${responseInJson.chNFe}`:""}${dtaTime}`},salvarArquivo=(data,prefix,path,fileType,includeMethodName)=>{const fileName=createFileName(prefix,includeMethodName),method="xml"===fileType?"salvaXML":"salvaJSON";this.utility[method]({data:data,fileName:fileName,metodo:this.metodo,path:path})};let xmlAutorizacaoInJson={},xMotivoPorXml=[],xmlsInJson=[];if(options){const{xmlAutorizacao:xmlAutorizacao}=options,json=new Json;for(let i=0;i<xmlAutorizacao.length;i++){xmlAutorizacaoInJson=json.convertXmlToJson(xmlAutorizacao[i],"NFEAutorizacaoFinal"),xmlsInJson.push(xmlAutorizacaoInJson);const chNFe=xmlAutorizacaoInJson.protNFe.infProt.chNFe,xMotivo=xmlAutorizacaoInJson.protNFe.infProt.xMotivo,cStat=xmlAutorizacaoInJson.protNFe.infProt.cStat;xMotivoPorXml.push({chNFe:chNFe,xMotivo:xMotivo,cStat:cStat}),config.dfe.armazenarXMLAutorizacao&&(salvarArquivo(xmlAutorizacao[i],chNFe,config.dfe.pathXMLAutorizacao,"xml",!1),salvarArquivo(xmlAutorizacaoInJson,chNFe,config.dfe.pathXMLAutorizacao,"json",!1))}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}async trataRetorno(xmlRetorno,indSinc,responseInJson){try{const{nRec:nRec,protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno);let tipoEmissao=0;1===indSinc&&protNFe&&(tipoEmissao=1);const nfeRetornoAut=new NFERetornoAutorizacao$1(this.environment,this.utility,this.xmlBuilder,this.axios);return await nfeRetornoAut.getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:this.xmlNFe})}catch(error){throw new Error(error.message)}}anoMesEmissao(dhEmi){const dataAtual=new Date(dhEmi);return dataAtual.getFullYear().toString().slice(-2)+(dataAtual.getMonth()+1).toString().padStart(2,"0")}gerarCodigoNumerico(){return Math.floor(1e8*Math.random()).toString().padStart(8,"0")}calcularModulo11(sequencia){const pesos=[4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2];let somatoria=0;for(let i=0;i<sequencia.length;i++)somatoria+=parseInt(sequencia.charAt(i))*pesos[i];const restoDivisao=somatoria%11;return 0===restoDivisao||1===restoDivisao?0:11-restoDivisao}calcularDigitoVerificador(data){const{infNFe:{ide:{cUF:cUF,mod:mod,serie:serie,nNF:nNF,tpEmis:tpEmis,cNF:cNF,dhEmi:dhEmi},emit:{CNPJCPF:CNPJCPF}}}=data,sequencia=`${cUF}${this.anoMesEmissao(dhEmi)}${CNPJCPF}${mod}${String(serie).padStart(3,"0")}${String(nNF).padStart(9,"0")}${tpEmis}${cNF}`,dv=this.calcularModulo11(sequencia),chaveAcesso=`NFe${sequencia}`+dv;return this.chaveNfe=`${sequencia}${dv}`,{chaveAcesso:chaveAcesso,dv:dv}}validaDocumento(doc,campo){const nfeAutorizacaoHandler=new NFEAutorizacaoHandler$1,{documentoValido:documentoValido,tipoDoDocumento:tipoDoDocumento}=nfeAutorizacaoHandler.validarCpfCnpj(doc);if(!documentoValido||"Desconhecido"===tipoDoDocumento){throw new Error("Desconhecido"===tipoDoDocumento?`Documento do ${campo} ausente ou inválido`:`${tipoDoDocumento} do ${campo} é inválido`)}return tipoDoDocumento}gerarXmlNFeAutorizacao(data){const createXML=NFe=>{if(NFe?.infNFe?.det instanceof Array){const formatedItens=NFe.infNFe.det.map(((det,index)=>{if(det.imposto.ICMS.dadosICMS){const icms=mountICMS(det.imposto.ICMS.dadosICMS);det.imposto.ICMS=icms}if(det.imposto.PIS.dadosPIS){const pis=mountPIS(det.imposto.PIS.dadosPIS);det.imposto.PIS=pis}if(det.imposto.COFINS.dadosCOFINS){const cofins=mountCOFINS(det.imposto.COFINS.dadosCOFINS);det.imposto.COFINS=cofins}return{$:{nItem:index+1},...det}}));NFe.infNFe.det=formatedItens}const{chaveAcesso:chaveAcesso,dv:dv}=this.calcularDigitoVerificador(NFe);if(NFe.infNFe.ide.cDV=dv,NFe.infNFe.ide.verProc=NFe.infNFe.ide.verProc||"1.0.0.0",NFe.infNFe.emit=Object.assign({[this.validaDocumento(String(NFe.infNFe.emit.CNPJCPF),"emitente")]:NFe.infNFe.emit.CNPJCPF},NFe.infNFe.emit),delete NFe.infNFe.emit.CNPJCPF,NFe.infNFe.dest&&(NFe.infNFe.dest=Object.assign({[this.validaDocumento(String(NFe.infNFe.dest?.CNPJCPF||""),"destinatário")]:NFe.infNFe.dest?.CNPJCPF||""},NFe.infNFe.dest),delete NFe.infNFe.dest.CNPJCPF),NFe.infNFe.transp.transporta&&(NFe.infNFe.transp.transporta=Object.assign({[this.validaDocumento(String(NFe.infNFe.transp.transporta?.CNPJCPF),"transportador")]:NFe.infNFe.transp.transporta?.CNPJCPF},NFe.infNFe.transp.transporta),delete NFe.infNFe.transp.transporta?.CNPJCPF),NFe.infNFe?.NFref instanceof Array){const NFrefArray=NFe.infNFe.NFref;NFrefArray&&NFrefArray.length>0&&(NFe.infNFe.NFref=NFrefArray.map((NFref=>(NFref.refNFP&&(NFref.refNFP=Object.assign({[this.validaDocumento(String(NFref.refNFP.CNPJCPF),"produtor rural")]:NFref.refNFP.CNPJCPF},NFref.refNFP),delete NFref.refNFP.CNPJCPF),NFref))))}else NFe.infNFe.NFref&&NFe.infNFe.NFref.refNFP&&(NFe.infNFe.NFref.refNFP=Object.assign({[this.validaDocumento(String(NFe.infNFe.NFref.refNFP.CNPJCPF),"produtor rural")]:NFe.infNFe.NFref.refNFP.CNPJCPF},NFe.infNFe.NFref.refNFP));NFe.infNFe.dest&&2===NFe.infNFe.ide.tpAmb&&(NFe.infNFe.dest.xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");const xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe"},infNFe:{$:{versao:"4.00",Id:chaveAcesso},...NFe.infNFe}},eventoXML=this.xmlBuilder.gerarXml(xmlObject,"NFe"),xmlAssinado=this.xmlBuilder.assinarXML(eventoXML,"infNFe");this.xmlNFe.push(xmlAssinado)};if(data.NFe instanceof Array)for(let i=0;i<data.NFe.length;i++){createXML(data.NFe[i])}else createXML(data.NFe);const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},idLote:data.idLote,indSinc:data.indSinc,_:"[XML]"};return this.xmlBuilder.gerarXml(baseXML,"enviNFe").replace("[XML]",this.xmlNFe.join(""))}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async Exec(data){let xmlConsulta="",soapXML="";try{xmlConsulta=this.gerarXmlNFeAutorizacao(data);const{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);soapXML=xmlFormated,this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const retorno=await this.trataRetorno(xmlRetorno.data,data.indSinc,responseInJson),xmlFinal=this.salvaArquivos(xmlConsulta,responseInJson,xmlRetorno.data,{xmlAutorizacao:retorno.data,xMotivo:retorno.message});return{success:!0,xMotivo:xmlFinal.xMotivo,xmls:xmlFinal.response}}catch(error){throw this.utility.salvaConsulta(xmlConsulta,soapXML,this.metodo),new Error(error.message)}}}class NFEInutilizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEInutilizacao",axios)}gerarXml(chave){return this.gerarXmlNFeInutilizacao(chave)}criarId(codigoUF,ano,cnpj,modelo,serie,numeroInicial,numeroFinal){return`ID${codigoUF}${ano}${cnpj}${modelo}${serie}${numeroInicial}${numeroFinal}`}gerarXmlNFeInutilizacao(data){const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),{cUF:cUF,ano:ano,CNPJ:CNPJ,mod:mod,serie:serie,nNFIni:nNFIni,nNFFin:nNFFin,xJust:xJust}=data,anoFormatado=ano.toString().slice(-2),serieFormatada=serie.padStart(3,"0"),numNFIniFormatado=nNFIni.padStart(9,"0"),numNFFinFormatado=nNFFin.padStart(9,"0"),id=this.criarId(cUF,anoFormatado,CNPJ,mod,serieFormatada,numNFIniFormatado,numNFFinFormatado);if(-1===[55,65].indexOf(Number(mod)))throw new Error(`Modelo do documento para inutilização deve ser 55 ou 65. Modelo informado: ${mod}`);const xmlObject={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},infInut:{$:{Id:`${id}`},tpAmb:ambiente,xServ:"INUTILIZAR",cUF:cUF,ano:ano,CNPJ:CNPJ,mod:mod,serie:serie,nNFIni:nNFIni,nNFFin:nNFFin,xJust:xJust}},xml=this.xmlBuilder.gerarXml(xmlObject,"inutNFe");return this.xmlBuilder.assinarXML(xml,"infInut")}}class ValidaCPFCNPJ{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}mascaraCnpjCpf(cpfcnpj){return 11===(cpfcnpj=cpfcnpj.replace(/\D/g,"")).length?cpfcnpj.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/,"$1.$2.$3-$4"):14===cpfcnpj.length?cpfcnpj.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/,"$1.$2.$3/$4-$5"):cpfcnpj}}const baseDir$1=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class NFEGerarDanfe{constructor(props){const{data:data,chave:chave,outputPath:outputPath}=props;this.data=data,this.chave=chave.trim(),this.outputPath=outputPath,this.enviada=!1,this.barcodePath="../tmp",this.documento=new ValidaCPFCNPJ,this.protNFe=data.protNFe;const nfeData=Array.isArray(data.NFe)?data.NFe[0]:data.NFe,{det:det,ide:ide,emit:emit,dest:dest,total:total,transp:transp,infAdic:infAdic}=nfeData.infNFe;this.det=det,this.ide=ide,this.emit=emit,this.total=total,this.transp=transp,this.infAdic=infAdic,dest&&(this.dest=dest),this.protNFe?.infProt.nProt&&(this.enviada=!0),this.doc=new PDFDocument__default.default({margins:{top:22,right:22.68,bottom:12,left:5.67},size:"a4",bufferPages:!0,layout:"portrait",font:"Times-Roman"})}createDir(path){fs__default.default.existsSync(path)||fs__default.default.mkdirSync(path,{recursive:!0})}async generateBarcode(data){try{const barcode=(await bwipjs__default.default.toBuffer({bcid:"code128",text:data,scaleX:4,height:14,includetext:!1})).toString("base64"),barcodeDir=this.barcodePath,filePath=path__default.default.resolve(baseDir$1,this.barcodePath);this.createDir(barcodeDir),fs__default.default.writeFileSync(`${filePath}/barcode.png`,Buffer.from(barcode,"base64"))}catch(err){return console.error("Erro ao gerar código de barras:",err),null}}setLineStyle(lineWidth,strokeColor){this.doc.lineWidth(lineWidth).strokeColor(strokeColor).fill("black")}drawHeader(isFirstPage){isFirstPage?(this._buildGuia(),this._buildSeparator(),this._buildHeader(52)):this._buildHeader(0)}drawFooter(){this._buildFooter()}_buildGuia(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left,top,470,21).stroke(),this.doc.fontSize(5).text(`RECEBEMOS DE ${this.emit.xNome} OS PRODUTOS / SERVIÇOS CONSTANTES DA NOTA FISCAL INDICADO AO LADO`,10,26,{characterSpacing:.5}),this.doc.fontSize(6).text(`EMISSÃO: ${format(new Date(this.ide.dhEmi),"dd-MM-yyyy")} - DEST. / REM.: ${this.dest?.xNome||""} - VALOR TOTAL: R$ ${parseFloat(String(this.total.ICMSTot.vNF)).toFixed(2)}`,10,33.5,{characterSpacing:.5}),this.doc.rect(left+470,top,96.93,42).stroke(),this.doc.fontSize(11).text("NF-e",480,27,{characterSpacing:1.5,align:"center"}),this.doc.fontSize(8.8).font("Times-Bold").text(`Nº ${String(this.ide.nNF).padStart(2,"0")}`,480,40.5,{characterSpacing:1.5,align:"center"}),this.doc.fontSize(8.5).font("Times-Roman").text(`SÉRIE ${this.ide.serie.padStart(3,"0")}`,480,53,{characterSpacing:1.5,align:"center"}),this.doc.rect(left,top+21,75,21).stroke(),this.doc.fontSize(5).text("DATA DE RECEBIMENTO",10,46.5,{characterSpacing:.5}),this.doc.rect(left+75,top+21,395,21).stroke(),this.doc.fontSize(5).text("IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR",85,46.5,{characterSpacing:.5})}_buildSeparator(){const{left:left,right:right}=this.doc.page.margins,lineWidth=595.28-left-right;this.doc.moveTo(left,69).lineTo(left+lineWidth,69).lineWidth(1).dash(1.5,{space:1.5}).strokeColor("black").stroke(),this.doc.undash()}_buildHeader(pos){const{top:top,left:left}=this.doc.page.margins,page=this.doc.bufferedPageRange(),CNPJCPF=this.emit.CNPJCPF?.toString(),CNPJ=this.emit.CNPJ?.toString(),CPF=this.emit.CPF?.toString(),documento=this.documento.mascaraCnpjCpf(CNPJCPF||CNPJ||CPF||"");this.setLineStyle(.75,"#1c1c1c");const topIdentificacao_1=top+pos,identificationJoined=`\nCEP: ${this.emit.enderEmit.CEP} - ${this.emit.enderEmit.xBairro} - ${this.emit.enderEmit.UF}\nTEL: ${this.emit.enderEmit.fone} - FAX: ${this.emit.enderEmit.fone}`;(()=>{this.doc.rect(left,topIdentificacao_1,197.5,98).stroke(),this.doc.fontSize(5).text("IDENTIFICAÇÃO DO EMITENTE",10,topIdentificacao_1+3.5,{characterSpacing:.5}),this.doc.fontSize(8).font("Times-Bold").text(this.emit.xNome,35,topIdentificacao_1+14,{characterSpacing:1,width:170,lineBreak:!0,lineGap:4}),this.doc.fontSize(7).font("Times-Roman").text(`${this.emit.enderEmit.xLgr}, ${this.emit.enderEmit.nro} ${this.emit.xFant?`- ${this.emit.xFant}`:""}`,10,topIdentificacao_1+44,{characterSpacing:1,width:181,lineBreak:!0,lineGap:2,continued:!0}).text(identificationJoined)})(),(()=>{this.doc.rect(left+197.5,topIdentificacao_1,112.7,98).stroke(),this.doc.fontSize(12).font("Times-Bold").text("DANFE",203,topIdentificacao_1+8,{characterSpacing:1.5,width:112.7,align:"center"}),this.doc.fontSize(6).text("DOCUMENTO AUXILIAR DA NOTA FISCAL ELETRÔNICA",215,topIdentificacao_1+20,{characterSpacing:.5,width:95,align:"left",lineGap:2}),this.doc.fontSize(8).font("Times-Roman").text("0 - ENTRADA",217,topIdentificacao_1+40,{characterSpacing:.5,align:"left"}),this.doc.fontSize(8).text("1 - SAÍDA",217,topIdentificacao_1+50,{characterSpacing:.5,align:"left"}),this.doc.rect(left+275,topIdentificacao_1+38,18,18).stroke(),this.doc.fontSize(14).font("Times-Bold").text(String(this.ide.tpNF),left+280,topIdentificacao_1+42.5),this.doc.fontSize(8.8).text(`Nº ${String(this.ide.nNF).padStart(2,"0")}`,208,topIdentificacao_1+65,{characterSpacing:1}),this.doc.fontSize(10).font("Times-Roman").text(`fl. ${page.start+1}/${page.count}`,240,topIdentificacao_1+65,{characterSpacing:1.5,width:112.7,align:"center"}),this.doc.fontSize(8.8).text(`SÉRIE ${this.ide.serie.padStart(3,"0")}`,208,topIdentificacao_1+78,{characterSpacing:1.5,width:112.7,align:"center"})})(),(()=>{this.doc.rect(left+310.2,topIdentificacao_1,256.73,35).stroke();const filePath=path__default.default.resolve(baseDir$1,this.barcodePath);if(this.doc.image(`${filePath}/barcode.png`,left+323.5,topIdentificacao_1+3,{width:230,height:30}),2===Number(this.ide.tpAmb)||this.enviada||this.doc.fontSize(14).font("Times-Bold").fillColor("red").text("NF-E NÃO ENVIADA PARA SEFAZ",left+316,topIdentificacao_1+12,{characterSpacing:1,width:256.73}),this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left+310.2,topIdentificacao_1+35,256.73,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("CHAVE DE ACESSO",left+314,topIdentificacao_1+38,{characterSpacing:.5}),this.doc.fontSize(6).text(this.chave,left+310.2,topIdentificacao_1+47,{characterSpacing:1,width:256.73,align:"center"}),this.doc.rect(left+310.2,topIdentificacao_1+58,256.73,40).stroke(),(2===Number(this.ide.tpAmb)||this.enviada)&&(this.doc.fontSize(6.5).text("Consulta de autenticidade no portal nacional da NF-e",left+310.2,topIdentificacao_1+65,{characterSpacing:.5,width:256.73,align:"center"}),this.doc.fontSize(6.5).text("www.nfe.fazenda.gov.br/portal",left+310.2,topIdentificacao_1+75,{characterSpacing:.5,width:256.73,align:"center"}),this.doc.fontSize(6.5).text("ou no site da Sefaz Autorizadora",left+310.2,topIdentificacao_1+85,{characterSpacing:.5,width:256.73,align:"center"})),this.doc.rect(left,topIdentificacao_1+98,310.2,23).stroke(),this.doc.fontSize(5).text("NATUREZA DE OPERAÇÃO",left+4,topIdentificacao_1+102,{characterSpacing:.5}),this.doc.fontSize(8).text(this.ide.natOp,left+4,topIdentificacao_1+112,{characterSpacing:1}),this.doc.rect(left+310.2,topIdentificacao_1+98,256.73,23).stroke(),2===Number(this.ide.tpAmb)||this.enviada){let dhRecbto="";this.protNFe?.infProt.dhRecbto&&(dhRecbto=format(new Date(this.protNFe?.infProt.dhRecbto),"dd/MM/yyyy HH:mm:ss"));const xProtNfe=`${String(this.protNFe?.infProt.nProt||"")} ${dhRecbto}`;this.doc.fontSize(5).text("PROTOCOLO DE AUTORIZAÇÃO DE USO",left+314.2,topIdentificacao_1+102,{characterSpacing:.5}),this.doc.fontSize(8).text(xProtNfe,left+314.2,topIdentificacao_1+112,{characterSpacing:1})}})(),(()=>{this.doc.rect(left,topIdentificacao_1+121,189.5,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+4,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.emit.IE,left+5,topIdentificacao_1+135,{characterSpacing:1}),this.doc.rect(left+189.5,topIdentificacao_1+121,187.93,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL DO SUBST. TRIB.",left+193.5,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.emit.IEST||""),left+194.5,topIdentificacao_1+135,{characterSpacing:1}),this.doc.rect(left+377.43,topIdentificacao_1+121,189.5,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+381.43,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(documento,left+386.43,topIdentificacao_1+135,{characterSpacing:1})})()}_buildDestinatario(){const{top:top,left:left}=this.doc.page.margins,docDest=this.documento.mascaraCnpjCpf(this.dest?.CNPJCPF||this.dest?.CNPJ||this.dest?.CPF||"");this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+90;this.doc.fontSize(6).font("Times-Bold").text("DESTINATÁRIO / REMETENTE",left,topDestinatario+114,{characterSpacing:.5}),(()=>{this.doc.rect(left,topDestinatario+120,398,23).stroke();let xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";2!==Number(this.ide.tpAmb)&&(xNome=String(this.dest?.xNome||"")),this.doc.fontSize(5).font("Times-Roman").text("NOME / RAZÃO SOCIAL",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(xNome,left+5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+398,topDestinatario+120,94,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+402,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(docDest,left+403,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+120,74.3,23).stroke(),this.doc.fontSize(5).text("DATA DA EMISSÃO",left+496,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date(this.ide.dhEmi),"dd-MM-yyyy"),left+497,topDestinatario+135,{characterSpacing:1})})(),(()=>{this.doc.rect(left,topDestinatario+143,320,23).stroke(),this.doc.fontSize(5).text("ENDEREÇO",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(`${this.dest?.enderDest?.xLgr||""}, ${this.dest?.enderDest?.nro||""}`,left+5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+320,topDestinatario+143,118.5,23).stroke(),this.doc.fontSize(5).text("BAIRRO / DISTRITO",left+324,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.xBairro||""),left+326,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+438.5,topDestinatario+143,53.5,23).stroke(),this.doc.fontSize(5).text("CEP",left+442.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.CEP||""),left+443.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+143,74.3,23).stroke(),this.doc.fontSize(5).text("DATA SAÍDA / ENTRADA",left+496,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date,"dd-MM-yyyy"),left+497,topDestinatario+158,{characterSpacing:1})})(),(()=>{this.doc.rect(left,topDestinatario+166,246.5,23).stroke(),this.doc.fontSize(5).text("MUNICÍPIO",left+4,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.xMun||""),left+5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+246.5,topDestinatario+166,113,23).stroke(),this.doc.fontSize(5).text("FONE / FAX",left+250.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(this.dest?.enderDest?.fone||"",left+250.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+359.5,topDestinatario+166,40,23).stroke(),this.doc.fontSize(5).text("UF",left+363.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.UF||""),left+363.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+399.5,topDestinatario+166,92.5,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+403.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.indIEDest||""),left+403.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+166,74.3,23).stroke(),this.doc.fontSize(5).text("HORA DA SAÍDA",left+496,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date,"HH:mm"),left+497,topDestinatario+181,{characterSpacing:1})})()}_builCalculoImposto(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+173;this.doc.fontSize(6).font("Times-Bold").text("CÁLCULO DO IMPOSTO",left,topDestinatario+114,{characterSpacing:.5}),(()=>{this.doc.rect(left,topDestinatario+120,86,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("BASE DE CÁLCULO DO ICMS",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vBC)).toFixed(2),left-8,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+86,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO ICMS",left+90,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vICMS)).toFixed(2),left+86-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+165,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("BASE CÁLC. ICMS SUBST",left+169,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vBCST)).toFixed(2),left+165-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+244,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO ICMS SUBST.",left+248,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vST)).toFixed(2),left+244-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+323,topDestinatario+120,91,23).stroke(),this.doc.fontSize(5).text("VALOR APROX. DOS TRIBUTOS",left+327,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(this.total.ICMSTot.vTotTrib||"0").toFixed(2),left+323-6,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+414,topDestinatario+120,152.93,23).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(5).text("VALOR TOTAL DOS PRODUTOS",left+418,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vProd)).toFixed(2),left+480-8,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left,topDestinatario+143,86,23).stroke(),this.doc.fontSize(5).text("VALOR DO FRETE",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vFrete)).toFixed(2),left-8,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+86,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO SEGURO",left+90,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vSeg)).toFixed(2),left+86-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+165,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("DESCONTO",left+169,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vDesc)).toFixed(2),left+165-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+244,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("OUTRAS DESP. ACESS.",left+248,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vOutro)).toFixed(2),left+244-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+323,topDestinatario+143,91,23).stroke(),this.doc.fontSize(5).text("VALOR DO IPI",left+327,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vIPI)).toFixed(2),left+323-6,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+414,topDestinatario+143,152.93,23).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(5).text("VALOR TOTAL DA NOTA",left+418,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vNF)).toFixed(2),left+480-8,topDestinatario+158,{characterSpacing:1,align:"right",width:86})})()}_builTransporte(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+233,getModFrete=()=>{const modFrete=parseInt(String(this.transp.modFrete));switch(modFrete){case 0:case 3:return`${modFrete} - REMETENTE`;case 1:case 4:return`${modFrete} - DESTINATÁRIO`;case 2:return`${modFrete} - TERCEIROS`;default:return""}};this.doc.fontSize(6).font("Times-Bold").text("TRANSPORTADOR / VOLUMES TRANSPORTADOS",left,topDestinatario+114,{characterSpacing:.5}),(()=>{const documento=this.documento.mascaraCnpjCpf(this.transp.transporta?.CNPJCPF||this.transp.transporta?.CNPJ||this.transp.transporta?.CPF||"");this.doc.rect(left,topDestinatario+120,248.5,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("RAZÃO SOCIAL",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xNome||"",left+5,topDestinatario+135,{characterSpacing:1,width:246}),this.doc.rect(left+248.5,topDestinatario+120,90,23).stroke(),this.doc.fontSize(5).text("FRETE POR CONTA",left+252.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(getModFrete(),left+253.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+338.5,topDestinatario+120,50,23).stroke(),this.doc.fontSize(5).text("CÓDIGO ANTT",left+342.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.veicTransp?.RNTC||"",left+343.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+388.5,topDestinatario+120,62,23).stroke(),this.doc.fontSize(5).text("PLACA DO VEÍCULO",left+391.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.veicTransp?.placa||"",left+393.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+450.5,topDestinatario+120,22,23).stroke(),this.doc.fontSize(5).text("UF",left+454.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.UF||"",left+455.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+472.5,topDestinatario+120,94.43,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+476.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(documento,left+477.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left,topDestinatario+143,338.5,23).stroke(),this.doc.fontSize(5).text("ENDEREÇO",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xEnder||"",left+4,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+338.5,topDestinatario+143,112,23).stroke(),this.doc.fontSize(5).text("MUNICÍPIO",left+342.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xMun||"",left+343.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+450.5,topDestinatario+143,22,23).stroke(),this.doc.fontSize(5).text("UF",left+454.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.UF||"",left+455.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+472.5,topDestinatario+143,94.43,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+476.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.IE||"",left+476.5,topDestinatario+158,{characterSpacing:1})})(),(()=>{if(this.transp.vol){let topTrnasport=topDestinatario+166,topTrnasportTitle=topDestinatario+171,topTrnasportValue=topDestinatario+181;const createVolume=vol=>{this.doc.rect(left,topTrnasport,68.5,23).stroke(),this.doc.fontSize(5).text("QUANTIDADE",left+4,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.qVol||""),left-8,topTrnasportValue,{characterSpacing:1,align:"right",width:68.5}),this.doc.rect(left+68.5,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("ESPÉCIE",left+72.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.esp||""),left+73.5,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+169,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("MARCA",left+173,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.marca||""),left+174,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+269.5,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("NUMERAÇÃO",left+273.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+274.5,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+370,topTrnasport,102.6,23).stroke(),this.doc.fontSize(5).text("PESO BRUTO",left+374,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+375,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+472.5,topTrnasport,94.43,23).stroke(),this.doc.fontSize(5).text("PESO LÍQUIDO",left+474.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+475.5,topTrnasportValue,{characterSpacing:1}),topTrnasport+=23,topTrnasportTitle+=23,topTrnasportValue+=23};if(this.transp.vol instanceof Array)for(let vol of this.transp.vol)createVolume(vol);else createVolume(this.transp.vol)}})()}_buildProdutos(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(6).font("Times-Bold").fillColor("black").text("DADOS DO PRODUTO / SERVIÇOS",left,452,{characterSpacing:.5});let y=458,currentPage=0;const header=top=>{this.doc.rect(left,top,40,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.font("Times-Roman").fontSize(5.7).text("CÓDIGO DO PROD. / SERV",left,top+2.8,{width:40,align:"center"}),this.doc.rect(left+40,top,138,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("DESCRIÇÃO DO PRODUTO / SERVIÇO",left+40,top+5.9,{width:138,align:"center"}),this.doc.rect(left+178,top,30,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("NCM / SH",left+178,top+5.9,{width:30,align:"center"}),this.doc.rect(left+208,top,17,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("CST",left+208,top+5.9,{width:17,align:"center"}),this.doc.rect(left+225,top,28,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("CFOP",left+225,top+5.9,{width:28,align:"center"}),this.doc.rect(left+253,top,23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("UNID.",left+253,top+5.9,{width:23,align:"center"}),this.doc.rect(left+276,top,25,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("QUANT.",left+276,top+5.9,{width:25,align:"center"}),this.doc.rect(left+301,top,37.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR UNITÁRIO",left+301,top+2.9,{width:37.23,align:"center"}),this.doc.rect(left+338.23,top,39.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR DESCONTO",left+338.23,top+2.9,{width:39.23,align:"center"}),this.doc.rect(left+377.46,top,33.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR LIQUIDO",left+377.46,top+2.9,{width:33.23,align:"center"}),this.doc.rect(left+410.69,top,38,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("BASE CÁLC. ICMS",left+413.8,top+2.9,{width:32,align:"center"}),this.doc.rect(left+448.69,top,35,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR I.C.M.S.",left+448.69,top+2.9,{width:35,align:"center"}),this.doc.rect(left+483.69,top,38,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR I.P.I.",left+490.69,top+2.9,{width:25,align:"center"}),this.doc.rect(left+521.69,top,45.2,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("ALÍQUOTAS",left+521.69,top+2,{width:45,align:"center"}),this.doc.rect(left+521.69,top+7.5,22.5,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("ICMS",left+521.69,top+9.5,{width:22.5,align:"center"}),this.doc.rect(left+544.19,top+7.5,22.75,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("IPI",left+544.19,top+9.5,{width:22.5,align:"center"})},row=(top,item)=>{const CST=function getCST(ICMS){const chavesICMS=Object.keys(ICMS),icmsSemCST=["ICMSSN101","ICMSSN102","ICMSSN201","ICMSSN202","ICMSSN500","ICMSSN900"].includes(chavesICMS[0]);let CST="";if(chavesICMS.length>0){const tipoICMS=chavesICMS[0];icmsSemCST||(CST=ICMS[tipoICMS].CST)}return CST}(item.imposto.ICMS),{vIPI:vIPI,pIPI:pIPI}=function getValoresIPI(IPI){return IPI?{vIPI:parseFloat(String(IPI.IPITrib.vIPI)).toFixed(2),pIPI:parseFloat(String(IPI.IPITrib.pIPI)).toFixed(2)}:{vIPI:"0,00",pIPI:"0,00"}}(item.imposto.IPI),{vBC:vBC,vICMS:vICMS,pICMS:pICMS}=function getValoresItem(ICMS){const chavesICMS=Object.keys(ICMS),icmsSemvBC=["ICMS02","ICMS15","ICMS30","ICMS40","ICMS53","ICMS60","ICMS61","ICMSST","ICMSSN101","ICMSSN102","ICMSSN201","ICMSSN202","ICMSSN500"].includes(chavesICMS[0]);let vBC="0,00",vICMS="0,00",pICMS="0,00";if(chavesICMS.length>0){const tipoICMS=chavesICMS[0];if(!icmsSemvBC)return vBC=ICMS[tipoICMS].vBC,vICMS=ICMS[tipoICMS].vICMS,pICMS=ICMS[tipoICMS].pICMS,{vBC:parseFloat(vBC).toFixed(2),vICMS:parseFloat(vBC).toFixed(2),pICMS:parseFloat(pICMS).toFixed(2)}}return{vBC:vBC,vICMS:vICMS,pICMS:pICMS}}(item.imposto.ICMS),text=item.infAdProd?`${item.prod.xProd||""}\n${item.infAdProd}`:item.prod.xProd||"",textHeight=this.doc.heightOfString(text,{width:138,align:"center"}),itemHeight=Math.max(15,textHeight+10);this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left,top,40,itemHeight).stroke(),this.doc.font("Times-Roman").fontSize(6).text(item.prod.cProd||"",left+2,top+3,{width:40}),this.doc.rect(left+40,top,138,itemHeight).stroke(),this.doc.text(text,left+43,top+4,{width:137}),this.doc.rect(left+178,top,30,itemHeight).stroke(),this.doc.text(String(item.prod.NCM)||"",left+178,top+5.9,{width:30,align:"center"}),this.doc.rect(left+208,top,17,itemHeight).stroke(),this.doc.text(CST,left+208,top+5.9,{width:17,align:"center"}),this.doc.rect(left+225,top,28,itemHeight).stroke(),this.doc.text(String(item.prod.CFOP||""),left+225,top+5.9,{width:28,align:"center"}),this.doc.rect(left+253,top,23,itemHeight).stroke(),this.doc.text(item.prod.uCom||item.prod.uTrib||"",left+256,top+5.9,{width:23});const quant=parseFloat(String(item.prod.qCom||item.prod.qTrib)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.rect(left+276,top,25,itemHeight).stroke(),this.doc.text(String(quant||""),left+274.5,top+5.9,{width:25,align:"right"});const valUnit=parseFloat(String(item.prod.vUnCom||item.prod.vUnTrib||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});this.doc.rect(left+301,top,37.23,itemHeight).stroke(),this.doc.text(valUnit,left+299.5,top+5.9,{width:37.23,align:"right"});const valDesc=parseFloat(String(item.prod.vDesc||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});this.doc.rect(left+338.23,top,39.23,itemHeight).stroke(),this.doc.text(valDesc,left+336.73,top+5.9,{width:39.23,align:"right"});const valLiq=parseFloat(String(item.prod.vProd||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});return this.doc.rect(left+377.46,top,33.23,itemHeight).stroke(),this.doc.text(valLiq,left+375.96,top+5.9,{width:33.23,align:"right"}),this.doc.rect(left+410.69,top,38,itemHeight).stroke(),this.doc.text(vBC,left+409.19,top+5.9,{width:38,align:"right"}),this.doc.rect(left+448.69,top,35,itemHeight).stroke(),this.doc.text(vICMS,left+447.19,top+5.9,{width:35,align:"right"}),this.doc.rect(left+483.69,top,38,itemHeight).stroke(),this.doc.text(vIPI,left+482.19,top+5.9,{width:38,align:"right"}),this.doc.rect(left+521.69,top,22.5,itemHeight).stroke(),this.doc.text(pICMS,left+520.19,top+5.9,{width:22.5,align:"right"}),this.doc.rect(left+544.19,top,22.75,itemHeight).stroke(),this.doc.text(pIPI,left+542.69,top+5.9,{width:22.5,align:"right"}),itemHeight};header(458);const createTable=prod=>{y+15>this.doc.page.height-160&&(this.doc.addPage(),currentPage++,currentPage>0&&(y=185,this.doc.fontSize(6).font("Times-Bold").fillColor("black").text("DADOS DO PRODUTO / SERVIÇOS",left,175,{characterSpacing:.5}),header(185)));const itemHeight=row(y+15,prod);y+=itemHeight};if(this.det instanceof Array)for(let i=0;i<this.det.length;i++){createTable(this.det[i])}else createTable(this.det)}_buildFooter(){const{left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");if(this.doc.fontSize(6).font("Times-Bold").text("DADOS ADICIONAIS",left,726.95,{characterSpacing:.5}),this.doc.rect(left,731.95,408,95).stroke(),this.doc.fontSize(5).font("Times-Roman").text("INFORMAÇÕES COMPLEMENTARES",10,736.45,{characterSpacing:.5}),this.doc.fontSize(8).text(this.infAdic?.infCpl||"",13,744.95,{characterSpacing:1,width:400}),this.doc.rect(left+408,731.95,158.93,95).stroke(),this.doc.fontSize(5).text("RESERVADO AO FISCO",418,736.45,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.infAdic?.infAdFisco||""),13,744.95,{characterSpacing:1,width:400}),this.exibirMarcaDaguaDanfe){const topPosition=2!==Number(Number(this.ide.tpAmb))?769.95:789.95,leftPosition=2!==Number(Number(this.ide.tpAmb))?left+150:left+100;this.doc.fontSize(26).font("Times-Bold").fillColor("#c7c7c7").text("NFeWizard-io",leftPosition,topPosition,{characterSpacing:.5})}2===Number(Number(this.ide.tpAmb))&&this.doc.fontSize(14).font("Times-Bold").fillColor("grey").text("AMBIENTE DE HOMOLOGAÇÃO - NF-E SEM VALOR FISCAL",left+100,776.95,{characterSpacing:1})}async generatePDF(exibirMarcaDaguaDanfe){try{this.exibirMarcaDaguaDanfe=exibirMarcaDaguaDanfe||!0;const chave=this.chave;return await this.generateBarcode(chave),this.doc.pipe(fs__default.default.createWriteStream(this.outputPath)),this.drawHeader(!0),this._buildDestinatario(),this._builCalculoImposto(),this._builTransporte(),this.doc.on("pageAdded",(()=>{this.drawHeader(!1)})),this.drawFooter(),this.doc.on("pageAdded",(()=>{this.drawFooter()})),this._buildProdutos(),this.doc.end(),{message:` DANFE Gerada em '${this.outputPath}'`,success:!0}}catch(error){throw new Error(`Erro ao gerar DANFE: ${error.message}`)}}}class NFEDistribuicaoDFePorUltNSU extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDistribuicaoDFePorNSU extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDistribuicaoDFePorChave extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECancelamento extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECienciaDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEConfirmacaoDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEOperacaoNaoRealizada extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECartaDeCorrecao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDesconhecimentoDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEEpec extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}var cookies,hasRequiredCookies,nodemailer$1={},shared={exports:{}},fetch$1={exports:{}};var hasRequiredFetch,hasRequiredShared,mimeTypes_1,hasRequiredMimeTypes,punycode_1,hasRequiredPunycode,base64,hasRequiredBase64,qp,hasRequiredQp,mimeFuncs,hasRequiredMimeFuncs,addressparser_1,hasRequiredAddressparser,lastNewline,hasRequiredLastNewline,leWindows,hasRequiredLeWindows,leUnix,hasRequiredLeUnix,mimeNode,hasRequiredMimeNode,mailComposer,hasRequiredMailComposer,messageParser,hasRequiredMessageParser,relaxedBody,hasRequiredRelaxedBody,require$$9={name:"nodemailer",version:"6.9.14",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",lint:"eslint .",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install"},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-ses":"3.600.0",bunyan:"1.8.15",c8:"10.1.2",eslint:"8.57.0","eslint-config-nodemailer":"1.2.0","eslint-config-prettier":"9.1.0",libbase64:"1.3.0",libmime:"5.3.5",libqp:"2.1.0","nodemailer-ntlm-auth":"1.0.4",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.13.4"},engines:{node:">=6.0.0"}};function requireFetch(){if(hasRequiredFetch)return fetch$1.exports;hasRequiredFetch=1;const http=require$$3__default.default,https=https__default.default,urllib=require$$0__default$4.default,zlib=zlib__default.default,PassThrough=require$$0__default$2.default.PassThrough,Cookies=function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;const urllib=require$$0__default$4.default;return cookies=class Cookies{constructor(options){this.options=options||{},this.cookies=[]}set(cookieStr,url){let domain,urlparts=urllib.parse(url||""),cookie=this.parse(cookieStr);return cookie.domain?(domain=cookie.domain.replace(/^\./,""),(urlparts.hostname.length<domain.length||("."+urlparts.hostname).substr(1-domain.length)!=="."+domain)&&(cookie.domain=urlparts.hostname)):cookie.domain=urlparts.hostname,cookie.path||(cookie.path=this.getPath(urlparts.pathname)),cookie.expires||(cookie.expires=new Date(Date.now()+1e3*(Number(this.options.sessionTimeout||1800)||1800))),this.add(cookie)}get(url){return this.list(url).map((cookie=>cookie.name+"="+cookie.value)).join("; ")}list(url){let i,cookie,result=[];for(i=this.cookies.length-1;i>=0;i--)cookie=this.cookies[i],this.isExpired(cookie)?this.cookies.splice(i,i):this.match(cookie,url)&&result.unshift(cookie);return result}parse(cookieStr){let cookie={};return(cookieStr||"").toString().split(";").forEach((cookiePart=>{let domain,valueParts=cookiePart.split("="),key=valueParts.shift().trim().toLowerCase(),value=valueParts.join("=").trim();if(key)switch(key){case"expires":value=new Date(value),"Invalid Date"!==value.toString()&&(cookie.expires=value);break;case"path":cookie.path=value;break;case"domain":domain=value.toLowerCase(),domain.length&&"."!==domain.charAt(0)&&(domain="."+domain),cookie.domain=domain;break;case"max-age":cookie.expires=new Date(Date.now()+1e3*(Number(value)||0));break;case"secure":cookie.secure=!0;break;case"httponly":cookie.httponly=!0;break;default:cookie.name||(cookie.name=key,cookie.value=value)}})),cookie}match(cookie,url){let urlparts=urllib.parse(url||"");return(urlparts.hostname===cookie.domain||"."===cookie.domain.charAt(0)&&("."+urlparts.hostname).substr(-cookie.domain.length)===cookie.domain)&&this.getPath(urlparts.pathname).substr(0,cookie.path.length)===cookie.path&&(!cookie.secure||"https:"===urlparts.protocol)}add(cookie){let i,len;if(!cookie||!cookie.name)return!1;for(i=0,len=this.cookies.length;i<len;i++)if(this.compare(this.cookies[i],cookie))return this.isExpired(cookie)?(this.cookies.splice(i,1),!1):(this.cookies[i]=cookie,!0);return this.isExpired(cookie)||this.cookies.push(cookie),!0}compare(a,b){return a.name===b.name&&a.path===b.path&&a.domain===b.domain&&a.secure===b.secure&&a.httponly==a.httponly}isExpired(cookie){return cookie.expires&&cookie.expires<new Date||!cookie.value}getPath(pathname){let path=(pathname||"/").split("/");return path.pop(),path=path.join("/").trim(),"/"!==path.charAt(0)&&(path="/"+path),"/"!==path.substr(-1)&&(path+="/"),path}},cookies}(),packageData=require$$9,net=require$$7__default.default;function nmfetch(url,options){(options=options||{}).fetchRes=options.fetchRes||new PassThrough,options.cookies=options.cookies||new Cookies,options.redirects=options.redirects||0,options.maxRedirects=isNaN(options.maxRedirects)?5:options.maxRedirects,options.cookie&&([].concat(options.cookie||[]).forEach((cookie=>{options.cookies.set(cookie,url)})),options.cookie=!1);let cookies,body,req,fetchRes=options.fetchRes,parsed=urllib.parse(url),method=(options.method||"").toString().trim().toUpperCase()||"GET",finished=!1,handler="https:"===parsed.protocol?https:http,headers={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+packageData.version};if(Object.keys(options.headers||{}).forEach((key=>{headers[key.toLowerCase().trim()]=options.headers[key]})),options.userAgent&&(headers["user-agent"]=options.userAgent),parsed.auth&&(headers.Authorization="Basic "+Buffer.from(parsed.auth).toString("base64")),(cookies=options.cookies.get(url))&&(headers.cookie=cookies),options.body){if(!1!==options.contentType&&(headers["Content-Type"]=options.contentType||"application/x-www-form-urlencoded"),"function"==typeof options.body.pipe)headers["Transfer-Encoding"]="chunked",body=options.body,body.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err))}));else{if(options.body instanceof Buffer)body=options.body;else if("object"==typeof options.body)try{body=Buffer.from(Object.keys(options.body).map((key=>{let value=options.body[key].toString().trim();return encodeURIComponent(key)+"="+encodeURIComponent(value)})).join("&"))}catch(E){if(finished)return;return finished=!0,E.type="FETCH",E.sourceUrl=url,void fetchRes.emit("error",E)}else body=Buffer.from(options.body.toString().trim());headers["Content-Type"]=options.contentType||"application/x-www-form-urlencoded",headers["Content-Length"]=body.length}method=(options.method||"").toString().trim().toUpperCase()||"POST"}let reqOptions={method:method,host:parsed.hostname,path:parsed.path,port:parsed.port?parsed.port:"https:"===parsed.protocol?443:80,headers:headers,rejectUnauthorized:!1,agent:!1};options.tls&&Object.keys(options.tls).forEach((key=>{reqOptions[key]=options.tls[key]})),"https:"!==parsed.protocol||!parsed.hostname||parsed.hostname===reqOptions.host||net.isIP(parsed.hostname)||reqOptions.servername||(reqOptions.servername=parsed.hostname);try{req=handler.request(reqOptions)}catch(E){return finished=!0,setImmediate((()=>{E.type="FETCH",E.sourceUrl=url,fetchRes.emit("error",E)})),fetchRes}return options.timeout&&req.setTimeout(options.timeout,(()=>{if(finished)return;finished=!0,req.abort();let err=new Error("Request Timeout");err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err)})),req.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err))})),req.on("response",(res=>{let inflate;if(!finished){switch(res.headers["content-encoding"]){case"gzip":case"deflate":inflate=zlib.createUnzip()}if(res.headers["set-cookie"]&&[].concat(res.headers["set-cookie"]||[]).forEach((cookie=>{options.cookies.set(cookie,url)})),[301,302,303,307,308].includes(res.statusCode)&&res.headers.location){if(options.redirects++,options.redirects>options.maxRedirects){finished=!0;let err=new Error("Maximum redirect count exceeded");return err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),void req.abort()}return options.method="GET",options.body=!1,nmfetch(urllib.resolve(url,res.headers.location),options)}if(fetchRes.statusCode=res.statusCode,fetchRes.headers=res.headers,res.statusCode>=300&&!options.allowErrorResponse){finished=!0;let err=new Error("Invalid status code "+res.statusCode);return err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),void req.abort()}res.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),req.abort())})),inflate?(res.pipe(inflate).pipe(fetchRes),inflate.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),req.abort())}))):res.pipe(fetchRes)}})),setImmediate((()=>{if(body)try{if("function"==typeof body.pipe)return body.pipe(req);req.write(body)}catch(err){return finished=!0,err.type="FETCH",err.sourceUrl=url,void fetchRes.emit("error",err)}req.end()})),fetchRes}return fetch$1.exports=function(url,options){return nmfetch(url,options)},fetch$1.exports.Cookies=Cookies,fetch$1.exports}function requireShared(){return hasRequiredShared||(hasRequiredShared=1,function(module){const urllib=require$$0__default$4.default,util=require$$0__default$3.default,fs=fs__default.default,nmfetch=requireFetch(),dns=require$$4__default$2.default,net=require$$7__default.default,os=require$$0__default$5.default;let networkInterfaces;try{networkInterfaces=os.networkInterfaces()}catch(err){}module.exports.networkInterfaces=networkInterfaces;const isFamilySupported=(family,allowInternal)=>{let networkInterfaces=module.exports.networkInterfaces;if(!networkInterfaces)return!0;return Object.keys(networkInterfaces).map((key=>networkInterfaces[key])).reduce(((acc,val)=>acc.concat(val)),[]).filter((i=>!i.internal||allowInternal)).filter((i=>i.family==="IPv"+family||i.family===family)).length>0},resolver=(family,hostname,options,callback)=>{if(!isFamilySupported(family,(options=options||{}).allowInternalNetworkInterfaces))return callback(null,[]);(dns.Resolver?new dns.Resolver(options):dns)["resolve"+family](hostname,((err,addresses)=>{if(err){switch(err.code){case dns.NODATA:case dns.NOTFOUND:case dns.NOTIMP:case dns.SERVFAIL:case dns.CONNREFUSED:case dns.REFUSED:case"EAI_AGAIN":return callback(null,[])}return callback(err)}return callback(null,Array.isArray(addresses)?addresses:[].concat(addresses||[]))}))},dnsCache=module.exports.dnsCache=new Map,formatDNSValue=(value,extra)=>value?Object.assign({servername:value.servername,host:value.addresses&&value.addresses.length?1===value.addresses.length?value.addresses[0]:value.addresses[Math.floor(Math.random()*value.addresses.length)]:null},extra||{}):Object.assign({},extra||{});function resolveStream(stream,callback){let responded=!1,chunks=[],chunklen=0;stream.on("error",(err=>{responded||(responded=!0,callback(err))})),stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),stream.on("end",(()=>{if(responded)return;let value;responded=!0;try{value=Buffer.concat(chunks,chunklen)}catch(E){return callback(E)}callback(null,value)}))}module.exports.resolveHostname=(options,callback)=>{if(!(options=options||{}).host&&options.servername&&(options.host=options.servername),!options.host||net.isIP(options.host)){let value={addresses:[options.host],servername:options.servername||!1};return callback(null,formatDNSValue(value,{cached:!1}))}let cached;if(dnsCache.has(options.host)&&(cached=dnsCache.get(options.host),!cached.expires||cached.expires>=Date.now()))return callback(null,formatDNSValue(cached.value,{cached:!0}));resolver(4,options.host,options,((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);if(addresses&&addresses.length){let value={addresses:addresses,servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}resolver(6,options.host,options,((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);if(addresses&&addresses.length){let value={addresses:addresses,servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}try{dns.lookup(options.host,{all:!0},((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);let address=!!addresses&&addresses.filter((addr=>isFamilySupported(addr.family))).map((addr=>addr.address)).shift();if(addresses&&addresses.length&&!address&&console.warn(`Failed to resolve IPv${addresses[0].family} addresses with current network`),!address&&cached)return callback(null,formatDNSValue(cached.value,{cached:!0}));let value={addresses:address?[address]:[options.host],servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}))}catch(err){return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err)}}))}))},module.exports.parseConnectionUrl=str=>{str=str||"";let options={};return[urllib.parse(str,!0)].forEach((url=>{let auth;switch(url.protocol){case"smtp:":options.secure=!1;break;case"smtps:":options.secure=!0;break;case"direct:":options.direct=!0}!isNaN(url.port)&&Number(url.port)&&(options.port=Number(url.port)),url.hostname&&(options.host=url.hostname),url.auth&&(auth=url.auth.split(":"),options.auth||(options.auth={}),options.auth.user=auth.shift(),options.auth.pass=auth.join(":")),Object.keys(url.query||{}).forEach((key=>{let obj=options,lKey=key,value=url.query[key];switch(isNaN(value)||(value=Number(value)),value){case"true":value=!0;break;case"false":value=!1}if(0===key.indexOf("tls."))lKey=key.substr(4),options.tls||(options.tls={}),obj=options.tls;else if(key.indexOf(".")>=0)return;lKey in obj||(obj[lKey]=value)}))})),options},module.exports._logFunc=(logger,level,defaults,data,message,...args)=>{let entry={};Object.keys(defaults||{}).forEach((key=>{"level"!==key&&(entry[key]=defaults[key])})),Object.keys(data||{}).forEach((key=>{"level"!==key&&(entry[key]=data[key])})),logger[level](entry,message,...args)},module.exports.getLogger=(options,defaults)=>{let response={},levels=["trace","debug","info","warn","error","fatal"];if(!(options=options||{}).logger)return levels.forEach((level=>{response[level]=()=>!1})),response;let logger=options.logger;return!0===options.logger&&(logger=function createDefaultLogger(levels){let levelMaxLen=0,levelNames=new Map;levels.forEach((level=>{level.length>levelMaxLen&&(levelMaxLen=level.length)})),levels.forEach((level=>{let levelName=level.toUpperCase();levelName.length<levelMaxLen&&(levelName+=" ".repeat(levelMaxLen-levelName.length)),levelNames.set(level,levelName)}));let print=(level,entry,message,...args)=>{let prefix="";entry&&("server"===entry.tnx?prefix="S: ":"client"===entry.tnx&&(prefix="C: "),entry.sid&&(prefix="["+entry.sid+"] "+prefix),entry.cid&&(prefix="[#"+entry.cid+"] "+prefix)),(message=util.format(message,...args)).split(/\r?\n/).forEach((line=>{console.log("[%s] %s %s",(new Date).toISOString().substr(0,19).replace(/T/," "),levelNames.get(level),prefix+line)}))},logger={};return levels.forEach((level=>{logger[level]=print.bind(null,level)})),logger}(levels)),levels.forEach((level=>{response[level]=(data,message,...args)=>{module.exports._logFunc(logger,level,defaults,data,message,...args)}})),response},module.exports.callbackPromise=(resolve,reject)=>function(){let args=Array.from(arguments),err=args.shift();err?reject(err):resolve(...args)},module.exports.parseDataURI=uri=>{let input=uri,commaPos=input.indexOf(",");if(!commaPos)return uri;let encoding,data=input.substring(commaPos+1),metaEntries=input.substring(5,commaPos).split(";"),lastMetaEntry=metaEntries.length>1&&metaEntries[metaEntries.length-1];lastMetaEntry&&lastMetaEntry.indexOf("=")<0&&(encoding=lastMetaEntry.toLowerCase(),metaEntries.pop());let contentType=metaEntries.shift()||"application/octet-stream",params={};for(let entry of metaEntries){let sep=entry.indexOf("=");if(sep>=0){let key=entry.substring(0,sep),value=entry.substring(sep+1);params[key]=value}}switch(encoding){case"base64":data=Buffer.from(data,"base64");break;case"utf8":data=Buffer.from(data);break;default:try{data=Buffer.from(decodeURIComponent(data))}catch(err){data=Buffer.from(data)}data=Buffer.from(data)}return{data:data,encoding:encoding,contentType:contentType,params:params}},module.exports.resolveContent=(data,key,callback)=>{let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=module.exports.callbackPromise(resolve,reject)})));let contentStream,content=data&&data[key]&&data[key].content||data[key],encoding=("object"==typeof data[key]&&data[key].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!content)return callback(null,content);if("object"==typeof content){if("function"==typeof content.pipe)return resolveStream(content,((err,value)=>{if(err)return callback(err);data[key].content?data[key].content=value:data[key]=value,callback(null,value)}));if(/^https?:\/\//i.test(content.path||content.href))return contentStream=nmfetch(content.path||content.href),resolveStream(contentStream,callback);if(/^data:/i.test(content.path||content.href)){let parsedDataUri=module.exports.parseDataURI(content.path||content.href);return parsedDataUri&&parsedDataUri.data?callback(null,parsedDataUri.data):callback(null,Buffer.from(0))}if(content.path)return resolveStream(fs.createReadStream(content.path),callback)}return"string"!=typeof data[key].content||["utf8","usascii","ascii"].includes(encoding)||(content=Buffer.from(data[key].content,encoding)),setImmediate((()=>callback(null,content))),promise},module.exports.assign=function(){let args=Array.from(arguments),target=args.shift()||{};return args.forEach((source=>{Object.keys(source||{}).forEach((key=>{["tls","auth"].includes(key)&&source[key]&&"object"==typeof source[key]?(target[key]||(target[key]={}),Object.keys(source[key]).forEach((subKey=>{target[key][subKey]=source[key][subKey]}))):target[key]=source[key]}))})),target},module.exports.encodeXText=str=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(str))return str;let buf=Buffer.from(str),result="";for(let i=0,len=buf.length;i<len;i++){let c=buf[i];result+=c<33||c>126||43===c||61===c?"+"+(c<16?"0":"")+c.toString(16).toUpperCase():String.fromCharCode(c)}return result}}(shared)),shared.exports}function requireMimeTypes(){if(hasRequiredMimeTypes)return mimeTypes_1;hasRequiredMimeTypes=1;const path=path__default.default,mimeTypes=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),extensions=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);return mimeTypes_1={detectMimeType(filename){if(!filename)return"application/octet-stream";let parsed=path.parse(filename),extension=(parsed.ext.substr(1)||parsed.name||"").split("?").shift().trim().toLowerCase(),value="application/octet-stream";return extensions.has(extension)&&(value=extensions.get(extension)),Array.isArray(value)?value[0]:value},detectExtension(mimeType){if(!mimeType)return"bin";let parts=(mimeType||"").toLowerCase().trim().split("/"),rootType=parts.shift().trim(),subType=parts.join("/").trim();if(mimeTypes.has(rootType+"/"+subType)){let value=mimeTypes.get(rootType+"/"+subType);return Array.isArray(value)?value[0]:value}return"text"===rootType?"txt":"bin"}}}function requirePunycode(){if(hasRequiredPunycode)return punycode_1;hasRequiredPunycode=1;const maxInt=2147483647,regexPunycode=/^xn--/,regexNonASCII=/[^\0-\x7F]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},floor=Math.floor,stringFromCharCode=String.fromCharCode;function error(type){throw new RangeError(errors[type])}function mapDomain(domain,callback){const parts=domain.split("@");let result="";parts.length>1&&(result=parts[0]+"@",domain=parts[1]);const encoded=function map(array,callback){const result=[];let length=array.length;for(;length--;)result[length]=callback(array[length]);return result}((domain=domain.replace(regexSeparators,".")).split("."),callback).join(".");return result+encoded}function ucs2decode(string){const output=[];let counter=0;const length=string.length;for(;counter<length;){const value=string.charCodeAt(counter++);if(value>=55296&&value<=56319&&counter<length){const extra=string.charCodeAt(counter++);56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)}else output.push(value)}return output}const digitToBasic=function(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)},adapt=function(delta,numPoints,firstTime){let k=0;for(delta=firstTime?floor(delta/700):delta>>1,delta+=floor(delta/numPoints);delta>455;k+=36)delta=floor(delta/35);return floor(k+36*delta/(delta+38))},decode=function(input){const output=[],inputLength=input.length;let i=0,n=128,bias=72,basic=input.lastIndexOf("-");basic<0&&(basic=0);for(let j=0;j<basic;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(let index=basic>0?basic+1:0;index<inputLength;){const oldi=i;for(let w=1,k=36;;k+=36){index>=inputLength&&error("invalid-input");const digit=(codePoint=input.charCodeAt(index++))>=48&&codePoint<58?codePoint-48+26:codePoint>=65&&codePoint<91?codePoint-65:codePoint>=97&&codePoint<123?codePoint-97:36;digit>=36&&error("invalid-input"),digit>floor((maxInt-i)/w)&&error("overflow"),i+=digit*w;const t=k<=bias?1:k>=bias+26?26:k-bias;if(digit<t)break;const baseMinusT=36-t;w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT}const out=output.length+1;bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}var codePoint;return String.fromCodePoint(...output)},encode=function(input){const output=[],inputLength=(input=ucs2decode(input)).length;let n=128,delta=0,bias=72;for(const currentValue of input)currentValue<128&&output.push(stringFromCharCode(currentValue));const basicLength=output.length;let handledCPCount=basicLength;for(basicLength&&output.push("-");handledCPCount<inputLength;){let m=maxInt;for(const currentValue of input)currentValue>=n&&currentValue<m&&(m=currentValue);const handledCPCountPlusOne=handledCPCount+1;m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m;for(const currentValue of input)if(currentValue<n&&++delta>maxInt&&error("overflow"),currentValue===n){let q=delta;for(let k=36;;k+=36){const t=k<=bias?1:k>=bias+26?26:k-bias;if(q<t)break;const qMinusT=q-t,baseMinusT=36-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT)}output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount===basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")};return punycode_1={version:"2.3.1",ucs2:{decode:ucs2decode,encode:codePoints=>String.fromCodePoint(...codePoints)},decode:decode,encode:encode,toASCII:function(input){return mapDomain(input,(function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string}))},toUnicode:function(input){return mapDomain(input,(function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string}))}}}function requireBase64(){if(hasRequiredBase64)return base64;hasRequiredBase64=1;const Transform=require$$0__default$2.default.Transform;function encode(buffer){return"string"==typeof buffer&&(buffer=Buffer.from(buffer,"utf-8")),buffer.toString("base64")}function wrap(str,lineLength){if(lineLength=lineLength||76,(str=(str||"").toString()).length<=lineLength)return str;let result=[],pos=0,chunkLength=1024*lineLength;for(;pos<str.length;){let wrappedLines=str.substr(pos,chunkLength).replace(new RegExp(".{"+lineLength+"}","g"),"$&\r\n").trim();result.push(wrappedLines),pos+=chunkLength}return result.join("\r\n").trim()}return base64={encode:encode,wrap:wrap,Encoder:class Encoder extends Transform{constructor(options){super(),this.options=options||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(chunk,encoding,done){if("buffer"!==encoding&&(chunk=Buffer.from(chunk,encoding)),!chunk||!chunk.length)return setImmediate(done);this.inputBytes+=chunk.length,this._remainingBytes&&this._remainingBytes.length&&(chunk=Buffer.concat([this._remainingBytes,chunk],this._remainingBytes.length+chunk.length),this._remainingBytes=!1),chunk.length%3?(this._remainingBytes=chunk.slice(chunk.length-chunk.length%3),chunk=chunk.slice(0,chunk.length-chunk.length%3)):this._remainingBytes=!1;let b64=this._curLine+encode(chunk);if(this.options.lineLength){b64=wrap(b64,this.options.lineLength);let lastLF=b64.lastIndexOf("\n");lastLF<0?(this._curLine=b64,b64=""):lastLF===b64.length-1?this._curLine="":(this._curLine=b64.substr(lastLF+1),b64=b64.substr(0,lastLF+1))}b64&&(this.outputBytes+=b64.length,this.push(Buffer.from(b64,"ascii"))),setImmediate(done)}_flush(done){this._remainingBytes&&this._remainingBytes.length&&(this._curLine+=encode(this._remainingBytes)),this._curLine&&(this._curLine=wrap(this._curLine,this.options.lineLength),this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii"),this._curLine=""),done()}}}}function requireQp(){if(hasRequiredQp)return qp;hasRequiredQp=1;const Transform=require$$0__default$2.default.Transform;function encode(buffer){"string"==typeof buffer&&(buffer=Buffer.from(buffer,"utf-8"));let ord,ranges=[[9],[10],[13],[32,60],[62,126]],result="";for(let i=0,len=buffer.length;i<len;i++)ord=buffer[i],checkRanges(ord,ranges)&&(32!==ord&&9!==ord||i!==len-1&&10!==buffer[i+1]&&13!==buffer[i+1])?result+=String.fromCharCode(ord):result+="="+(ord<16?"0":"")+ord.toString(16).toUpperCase();return result}function wrap(str,lineLength){if(lineLength=lineLength||76,(str=(str||"").toString()).length<=lineLength)return str;let match,code,line,pos=0,len=str.length,lineMargin=Math.floor(lineLength/3),result="";for(;pos<len;)if(line=str.substr(pos,lineLength),match=line.match(/\r\n/))line=line.substr(0,match.index+match[0].length),result+=line,pos+=line.length;else if("\n"!==line.substr(-1))if(match=line.substr(-lineMargin).match(/\n.*?$/))line=line.substr(0,line.length-(match[0].length-1)),result+=line,pos+=line.length;else{if(line.length>lineLength-lineMargin&&(match=line.substr(-lineMargin).match(/[ \t.,!?][^ \t.,!?]*$/)))line=line.substr(0,line.length-(match[0].length-1));else if(line.match(/[=][\da-f]{0,2}$/i))for((match=line.match(/[=][\da-f]{0,1}$/i))&&(line=line.substr(0,line.length-match[0].length));line.length>3&&line.length<len-pos&&!line.match(/^(?:=[\da-f]{2}){1,4}$/i)&&(match=line.match(/[=][\da-f]{2}$/gi))&&(code=parseInt(match[0].substr(1,2),16),!(code<128))&&(line=line.substr(0,line.length-3),!(code>=192)););pos+line.length<len&&"\n"!==line.substr(-1)?(line.length===lineLength&&line.match(/[=][\da-f]{2}$/i)?line=line.substr(0,line.length-3):line.length===lineLength&&(line=line.substr(0,line.length-1)),pos+=line.length,line+="=\r\n"):pos+=line.length,result+=line}else result+=line,pos+=line.length;return result}function checkRanges(nr,ranges){for(let i=ranges.length-1;i>=0;i--)if(ranges[i].length){if(1===ranges[i].length&&nr===ranges[i][0])return!0;if(2===ranges[i].length&&nr>=ranges[i][0]&&nr<=ranges[i][1])return!0}return!1}return qp={encode:encode,wrap:wrap,Encoder:class Encoder extends Transform{constructor(options){super(),this.options=options||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(chunk,encoding,done){let qp;if("buffer"!==encoding&&(chunk=Buffer.from(chunk,encoding)),!chunk||!chunk.length)return done();this.inputBytes+=chunk.length,this.options.lineLength?(qp=this._curLine+encode(chunk),qp=wrap(qp,this.options.lineLength),qp=qp.replace(/(^|\n)([^\n]*)$/,((match,lineBreak,lastLine)=>(this._curLine=lastLine,lineBreak))),qp&&(this.outputBytes+=qp.length,this.push(qp))):(qp=encode(chunk),this.outputBytes+=qp.length,this.push(qp,"ascii")),done()}_flush(done){this._curLine&&(this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii")),done()}}}}function requireMimeFuncs(){if(hasRequiredMimeFuncs)return mimeFuncs;hasRequiredMimeFuncs=1;const base64=requireBase64(),qp=requireQp(),mimeTypes=requireMimeTypes();return mimeFuncs={isPlainText:(value,isParam)=>"string"==typeof value&&!(isParam?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(value),hasLongerLines:(str,lineLength)=>str.length>131072||new RegExp("^.{"+(lineLength+1)+",}","m").test(str),encodeWord(data,mimeWordEncoding,maxLength){let encodedStr;if((maxLength=maxLength||0)&&maxLength>12&&(maxLength-=12),"Q"===(mimeWordEncoding=(mimeWordEncoding||"Q").toString().toUpperCase().trim().charAt(0))?encodedStr=qp.encode(data).replace(/[^a-z0-9!*+\-/=]/gi,(chr=>{let ord=chr.charCodeAt(0).toString(16).toUpperCase();return" "===chr?"_":"="+(1===ord.length?"0"+ord:ord)})):"B"===mimeWordEncoding&&(encodedStr="string"==typeof data?data:base64.encode(data),maxLength=maxLength?Math.max(3,(maxLength-maxLength%4)/4*3):0),maxLength&&("B"!==mimeWordEncoding?encodedStr:base64.encode(data)).length>maxLength)if("Q"===mimeWordEncoding)encodedStr=this.splitMimeEncodedString(encodedStr,maxLength).join("?= =?UTF-8?"+mimeWordEncoding+"?");else{let parts=[],lpart="";for(let i=0,len=encodedStr.length;i<len;i++){let chr=encodedStr.charAt(i);/[\ud83c\ud83d\ud83e]/.test(chr)&&i<len-1&&(chr+=encodedStr.charAt(++i)),Buffer.byteLength(lpart+chr)<=maxLength||0===i?lpart+=chr:(parts.push(base64.encode(lpart)),lpart=chr)}lpart&&parts.push(base64.encode(lpart)),encodedStr=parts.length>1?parts.join("?= =?UTF-8?"+mimeWordEncoding+"?"):parts.join("")}else"B"===mimeWordEncoding&&(encodedStr=base64.encode(data));return"=?UTF-8?"+mimeWordEncoding+"?"+encodedStr+("?="===encodedStr.substr(-2)?"":"?=")},encodeWords(value,mimeWordEncoding,maxLength,encodeAll){let encodedValue;maxLength=maxLength||0;let firstMatch=value.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!firstMatch)return value;if(encodeAll)return this.encodeWord(value,mimeWordEncoding,maxLength);let lastMatch=value.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!lastMatch)return value;let startIndex=firstMatch.index+(firstMatch[0].match(/[^\s]/)||{index:0}).index,endIndex=lastMatch.index+(lastMatch[1]||"").length;return encodedValue=(startIndex?value.substr(0,startIndex):"")+this.encodeWord(value.substring(startIndex,endIndex),mimeWordEncoding||"Q",maxLength)+(endIndex<value.length?value.substr(endIndex):""),encodedValue},buildHeaderValue(structured){let paramsArray=[];return Object.keys(structured.params||{}).forEach((param=>{let value=structured.params[param];!this.isPlainText(value,!0)||value.length>=75?this.buildHeaderParam(param,value,50).forEach((encodedParam=>{/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(encodedParam.value)&&"*"!==encodedParam.key.substr(-1)?paramsArray.push(encodedParam.key+"="+JSON.stringify(encodedParam.value)):paramsArray.push(encodedParam.key+"="+encodedParam.value)})):/[\s'"\\;:/=(),<>@[\]?]|^-/.test(value)?paramsArray.push(param+"="+JSON.stringify(value)):paramsArray.push(param+"="+value)})),structured.value+(paramsArray.length?"; "+paramsArray.join("; "):"")},buildHeaderParam(key,data,maxLength){let encodedStrArr,chr,ord,line,i,len,list=[],encodedStr="string"==typeof data?data:(data||"").toString(),startPos=0;if(maxLength=maxLength||50,this.isPlainText(data,!0)){if(encodedStr.length<=maxLength)return[{key:key,value:encodedStr}];encodedStr=encodedStr.replace(new RegExp(".{"+maxLength+"}","g"),(str=>(list.push({line:str}),""))),encodedStr&&list.push({line:encodedStr})}else{if(/[\uD800-\uDBFF]/.test(encodedStr)){for(encodedStrArr=[],i=0,len=encodedStr.length;i<len;i++)chr=encodedStr.charAt(i),ord=chr.charCodeAt(0),ord>=55296&&ord<=56319&&i<len-1?(chr+=encodedStr.charAt(i+1),encodedStrArr.push(chr),i++):encodedStrArr.push(chr);encodedStr=encodedStrArr}line="utf-8''";let encoded=!0;for(startPos=0,i=0,len=encodedStr.length;i<len;i++){if(chr=encodedStr[i],encoded)chr=this.safeEncodeURIComponent(chr);else if(chr=" "===chr?chr:this.safeEncodeURIComponent(chr),chr!==encodedStr[i]){if(!((this.safeEncodeURIComponent(line)+chr).length>=maxLength)){encoded=!0,i=startPos,line="";continue}list.push({line:line,encoded:encoded}),line="",startPos=i-1}(line+chr).length>=maxLength?(list.push({line:line,encoded:encoded}),line=chr=" "===encodedStr[i]?" ":this.safeEncodeURIComponent(encodedStr[i]),chr===encodedStr[i]?(encoded=!1,startPos=i-1):encoded=!0):line+=chr}line&&list.push({line:line,encoded:encoded})}return list.map(((item,i)=>({key:key+"*"+i+(item.encoded?"*":""),value:item.line})))},parseHeaderValue(str){let chr,response={value:!1,params:{}},key=!1,value="",type="value",quote=!1,escaped=!1;for(let i=0,len=str.length;i<len;i++)if(chr=str.charAt(i),"key"===type){if("="===chr){key=value.trim().toLowerCase(),type="value",value="";continue}value+=chr}else{if(escaped)value+=chr;else{if("\\"===chr){escaped=!0;continue}quote&&chr===quote?quote=!1:quote||'"'!==chr?quote||";"!==chr?value+=chr:(!1===key?response.value=value.trim():response.params[key]=value.trim(),type="key",value=""):quote=chr}escaped=!1}return"value"===type?!1===key?response.value=value.trim():response.params[key]=value.trim():value.trim()&&(response.params[value.trim().toLowerCase()]=""),Object.keys(response.params).forEach((key=>{let actualKey,nr,match,value;(match=key.match(/(\*(\d+)|\*(\d+)\*|\*)$/))&&(actualKey=key.substr(0,match.index),nr=Number(match[2]||match[3])||0,response.params[actualKey]&&"object"==typeof response.params[actualKey]||(response.params[actualKey]={charset:!1,values:[]}),value=response.params[key],0===nr&&"*"===match[0].substr(-1)&&(match=value.match(/^([^']*)'[^']*'(.*)$/))&&(response.params[actualKey].charset=match[1]||"iso-8859-1",value=match[2]),response.params[actualKey].values[nr]=value,delete response.params[key])})),Object.keys(response.params).forEach((key=>{let value;response.params[key]&&Array.isArray(response.params[key].values)&&(value=response.params[key].values.map((val=>val||"")).join(""),response.params[key].charset?response.params[key]="=?"+response.params[key].charset+"?Q?"+value.replace(/[=?_\s]/g,(s=>{let c=s.charCodeAt(0).toString(16);return" "===s?"_":"%"+(c.length<2?"0":"")+c})).replace(/%/g,"=")+"?=":response.params[key]=value)})),response},detectExtension:mimeType=>mimeTypes.detectExtension(mimeType),detectMimeType:extension=>mimeTypes.detectMimeType(extension),foldLines(str,lineLength,afterSpace){lineLength=lineLength||76;let line,match,pos=0,len=(str=(str||"").toString()).length,result="";for(;pos<len;){if(line=str.substr(pos,lineLength),line.length<lineLength){result+=line;break}(match=line.match(/^[^\n\r]*(\r?\n|\r)/))?(line=match[0],result+=line,pos+=line.length):((match=line.match(/(\s+)[^\s]*$/))&&match[0].length-(afterSpace?(match[1]||"").length:0)<line.length?line=line.substr(0,line.length-(match[0].length-(afterSpace?(match[1]||"").length:0))):(match=str.substr(pos+line.length).match(/^[^\s]+(\s*)/))&&(line+=match[0].substr(0,match[0].length-(afterSpace?0:(match[1]||"").length))),result+=line,pos+=line.length,pos<len&&(result+="\r\n"))}return result},splitMimeEncodedString:(str,maxlen)=>{let curLine,match,chr,done,lines=[];for(maxlen=Math.max(maxlen||0,12);str.length;){for(curLine=str.substr(0,maxlen),(match=curLine.match(/[=][0-9A-F]?$/i))&&(curLine=curLine.substr(0,match.index)),done=!1;!done;)done=!0,(match=str.substr(curLine.length).match(/^[=]([0-9A-F]{2})/i))&&(chr=parseInt(match[1],16),chr<194&&chr>127&&(curLine=curLine.substr(0,curLine.length-3),done=!1));curLine.length&&lines.push(curLine),str=str.substr(curLine.length)}return lines},encodeURICharComponent:chr=>{let res="",ord=chr.charCodeAt(0).toString(16).toUpperCase();if(ord.length%2&&(ord="0"+ord),ord.length>2)for(let i=0,len=ord.length/2;i<len;i++)res+="%"+ord.substr(i,2);else res+="%"+ord;return res},safeEncodeURIComponent(str){str=(str||"").toString();try{str=encodeURIComponent(str)}catch(E){return str.replace(/[^\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return str.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,(chr=>this.encodeURICharComponent(chr)))}},mimeFuncs}function requireAddressparser(){if(hasRequiredAddressparser)return addressparser_1;hasRequiredAddressparser=1;class Tokenizer{constructor(str){this.str=(str||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let chr,list=[];for(let i=0,len=this.str.length;i<len;i++)chr=this.str.charAt(i),this.checkChar(chr);return this.list.forEach((node=>{node.value=(node.value||"").toString().trim(),node.value&&list.push(node)})),list}checkChar(chr){if(this.escaped);else{if(chr===this.operatorExpecting)return this.node={type:"operator",value:chr},this.list.push(this.node),this.node=null,this.operatorExpecting="",void(this.escaped=!1);if(!this.operatorExpecting&&chr in this.operators)return this.node={type:"operator",value:chr},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[chr],void(this.escaped=!1);if(['"',"'"].includes(this.operatorExpecting)&&"\\"===chr)return void(this.escaped=!0)}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===chr&&(chr=" "),(chr.charCodeAt(0)>=33||[" ","\t"].includes(chr))&&(this.node.value+=chr),this.escaped=!1}}function addressparser(str,options){options=options||{};let tokens=new Tokenizer(str).tokenize(),addresses=[],address=[],parsedAddresses=[];if(tokens.forEach((token=>{"operator"!==token.type||","!==token.value&&";"!==token.value?address.push(token):(address.length&&addresses.push(address),address=[])})),address.length&&addresses.push(address),addresses.forEach((address=>{address=function _handleAddress(tokens){let token,address,i,len,isGroup=!1,state="text",addresses=[],data={address:[],comment:[],group:[],text:[]};for(i=0,len=tokens.length;i<len;i++)if(token=tokens[i],"operator"===token.type)switch(token.value){case"<":state="address";break;case"(":state="comment";break;case":":state="group",isGroup=!0;break;default:state="text"}else token.value&&("address"===state&&(token.value=token.value.replace(/^[^<]*<\s*/,"")),data[state].push(token.value));if(!data.text.length&&data.comment.length&&(data.text=data.comment,data.comment=[]),isGroup)data.text=data.text.join(" "),addresses.push({name:data.text||address&&address.name,group:data.group.length?addressparser(data.group.join(",")):[]});else{if(!data.address.length&&data.text.length){for(i=data.text.length-1;i>=0;i--)if(data.text[i].match(/^[^@\s]+@[^@\s]+$/)){data.address=data.text.splice(i,1);break}let _regexHandler=function(address){return data.address.length?address:(data.address=[address.trim()]," ")};if(!data.address.length)for(i=data.text.length-1;i>=0&&(data.text[i]=data.text[i].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,_regexHandler).trim(),!data.address.length);i--);}if(!data.text.length&&data.comment.length&&(data.text=data.comment,data.comment=[]),data.address.length>1&&(data.text=data.text.concat(data.address.splice(1))),data.text=data.text.join(" "),data.address=data.address.join(" "),!data.address&&isGroup)return[];address={address:data.address||data.text||"",name:data.text||data.address||""},address.address===address.name&&((address.address||"").match(/@/)?address.name="":address.address=""),addresses.push(address)}return addresses}(address),address.length&&(parsedAddresses=parsedAddresses.concat(address))})),options.flatten){let addresses=[],walkAddressList=list=>{list.forEach((address=>{if(address.group)return walkAddressList(address.group);addresses.push(address)}))};return walkAddressList(parsedAddresses),addresses}return parsedAddresses}return addressparser_1=addressparser}function requireLeWindows(){if(hasRequiredLeWindows)return leWindows;hasRequiredLeWindows=1;const Transform=require$$0__default$2.default.Transform;return leWindows=class LeWindows extends Transform{constructor(options){super(options),this.options=options||{},this.lastByte=!1}_transform(chunk,encoding,done){let buf,lastPos=0;for(let i=0,len=chunk.length;i<len;i++)10===chunk[i]&&(i&&13!==chunk[i-1]||!i&&13!==this.lastByte)&&(i>lastPos&&(buf=chunk.slice(lastPos,i),this.push(buf)),this.push(Buffer.from("\r\n")),lastPos=i+1);lastPos&&lastPos<chunk.length?(buf=chunk.slice(lastPos),this.push(buf)):lastPos||this.push(chunk),this.lastByte=chunk[chunk.length-1],done()}}}function requireMimeNode(){if(hasRequiredMimeNode)return mimeNode;hasRequiredMimeNode=1;const crypto=require$$0__default$1.default,fs=fs__default.default,punycode=requirePunycode(),PassThrough=require$$0__default$2.default.PassThrough,shared=requireShared(),mimeFuncs=requireMimeFuncs(),qp=requireQp(),base64=requireBase64(),addressparser=requireAddressparser(),nmfetch=requireFetch(),LastNewline=function requireLastNewline(){if(hasRequiredLastNewline)return lastNewline;hasRequiredLastNewline=1;const Transform=require$$0__default$2.default.Transform;return lastNewline=class LastNewline extends Transform{constructor(){super(),this.lastByte=!1}_transform(chunk,encoding,done){chunk.length&&(this.lastByte=chunk[chunk.length-1]),this.push(chunk),done()}_flush(done){return 10===this.lastByte?done():13===this.lastByte?(this.push(Buffer.from("\n")),done()):(this.push(Buffer.from("\r\n")),done())}}}(),LeWindows=requireLeWindows(),LeUnix=function requireLeUnix(){if(hasRequiredLeUnix)return leUnix;hasRequiredLeUnix=1;const Transform=require$$0__default$2.default.Transform;return leUnix=class LeWindows extends Transform{constructor(options){super(options),this.options=options||{}}_transform(chunk,encoding,done){let buf,lastPos=0;for(let i=0,len=chunk.length;i<len;i++)13===chunk[i]&&(buf=chunk.slice(lastPos,i),lastPos=i+1,this.push(buf));lastPos&&lastPos<chunk.length?(buf=chunk.slice(lastPos),this.push(buf)):lastPos||this.push(chunk),done()}}}();class MimeNode{constructor(contentType,options){this.nodeCounter=0,options=options||{},this.baseBoundary=options.baseBoundary||crypto.randomBytes(8).toString("hex"),this.boundaryPrefix=options.boundaryPrefix||"--_NmP",this.disableFileAccess=!!options.disableFileAccess,this.disableUrlAccess=!!options.disableUrlAccess,this.normalizeHeaderKey=options.normalizeHeaderKey,this.date=new Date,this.rootNode=options.rootNode||this,this.keepBcc=!!options.keepBcc,options.filename&&(this.filename=options.filename,contentType||(contentType=mimeFuncs.detectMimeType(this.filename.split(".").pop()))),this.textEncoding=(options.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=options.parentNode,this.hostname=options.hostname,this.newline=options.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],contentType&&this.setHeader("Content-Type",contentType)}createChild(contentType,options){options||"object"!=typeof contentType||(options=contentType,contentType=void 0);let node=new MimeNode(contentType,options);return this.appendChild(node),node}appendChild(childNode){return childNode.rootNode!==this.rootNode&&(childNode.rootNode=this.rootNode,childNode._nodeId=++this.rootNode.nodeCounter),childNode.parentNode=this,this.childNodes.push(childNode),childNode}replace(node){return node===this?this:(this.parentNode.childNodes.forEach(((childNode,i)=>{childNode===this&&(node.rootNode=this.rootNode,node.parentNode=this.parentNode,node._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,node.parentNode.childNodes[i]=node)})),node)}remove(){if(!this.parentNode)return this;for(let i=this.parentNode.childNodes.length-1;i>=0;i--)if(this.parentNode.childNodes[i]===this)return this.parentNode.childNodes.splice(i,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(key,value){let headerValue,added=!1;if(!value&&key&&"object"==typeof key)return key.key&&"value"in key?this.setHeader(key.key,key.value):Array.isArray(key)?key.forEach((i=>{this.setHeader(i.key,i.value)})):Object.keys(key).forEach((i=>{this.setHeader(i,key[i])})),this;headerValue={key:key=this._normalizeHeaderKey(key),value:value};for(let i=0,len=this._headers.length;i<len;i++)this._headers[i].key===key&&(added?(this._headers.splice(i,1),i--,len--):(this._headers[i]=headerValue,added=!0));return added||this._headers.push(headerValue),this}addHeader(key,value){return!value&&key&&"object"==typeof key?(key.key&&key.value?this.addHeader(key.key,key.value):Array.isArray(key)?key.forEach((i=>{this.addHeader(i.key,i.value)})):Object.keys(key).forEach((i=>{this.addHeader(i,key[i])})),this):Array.isArray(value)?(value.forEach((val=>{this.addHeader(key,val)})),this):(this._headers.push({key:this._normalizeHeaderKey(key),value:value}),this)}getHeader(key){key=this._normalizeHeaderKey(key);for(let i=0,len=this._headers.length;i<len;i++)if(this._headers[i].key===key)return this._headers[i].value}setContent(content){return this.content=content,"function"==typeof this.content.pipe?(this._contentErrorHandler=err=>{this.content.removeListener("error",this._contentErrorHandler),this.content=err},this.content.once("error",this._contentErrorHandler)):"string"==typeof this.content&&(this._isPlainText=mimeFuncs.isPlainText(this.content),this._isPlainText&&mimeFuncs.hasLongerLines(this.content,76)&&(this._hasLongLines=!0)),this}build(callback){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));let stream=this.createReadStream(),buf=[],buflen=0,returned=!1;return stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)buf.push(chunk),buflen+=chunk.length})),stream.once("error",(err=>{if(!returned)return returned=!0,callback(err)})),stream.once("end",(chunk=>{if(!returned)return returned=!0,chunk&&chunk.length&&(buf.push(chunk),buflen+=chunk.length),callback(null,Buffer.concat(buf,buflen))})),promise}getTransferEncoding(){let transferEncoding=!1,contentType=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();return this.content&&(transferEncoding=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),transferEncoding&&["base64","quoted-printable"].includes(transferEncoding)||(/^text\//i.test(contentType)?transferEncoding=this._isPlainText&&!this._hasLongLines?"7bit":"string"==typeof this.content||this.content instanceof Buffer?"Q"===this._getTextEncoding(this.content)?"quoted-printable":"base64":"B"===this.textEncoding?"base64":"quoted-printable":/^(multipart|message)\//i.test(contentType)||(transferEncoding=transferEncoding||"base64"))),transferEncoding}buildHeaders(){let transferEncoding=this.getTransferEncoding(),headers=[];if(transferEncoding&&this.setHeader("Content-Transfer-Encoding",transferEncoding),this.filename&&!this.getHeader("Content-Disposition")&&this.setHeader("Content-Disposition","attachment"),this.rootNode===this){this.getHeader("Date")||this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000")),this.messageId(),this.getHeader("MIME-Version")||this.setHeader("MIME-Version","1.0");for(let i=this._headers.length-2;i>=0;i--){let header=this._headers[i];"Content-Type"===header.key&&(this._headers.splice(i,1),this._headers.push(header))}}return this._headers.forEach((header=>{let structured,param,key=header.key,value=header.value,options={};if(!value||"object"!=typeof value||["From","Sender","To","Cc","Bcc","Reply-To","Date","References"].includes(key)||(Object.keys(value).forEach((key=>{"value"!==key&&(options[key]=value[key])})),value=(value.value||"").toString(),value.trim()))if(options.prepared)options.foldLines?headers.push(mimeFuncs.foldLines(key+": "+value)):headers.push(key+": "+value);else{switch(header.key){case"Content-Disposition":structured=mimeFuncs.parseHeaderValue(value),this.filename&&(structured.params.filename=this.filename),value=mimeFuncs.buildHeaderValue(structured);break;case"Content-Type":structured=mimeFuncs.parseHeaderValue(value),this._handleContentType(structured),structured.value.match(/^text\/plain\b/)&&"string"==typeof this.content&&/[\u0080-\uFFFF]/.test(this.content)&&(structured.params.charset="utf-8"),value=mimeFuncs.buildHeaderValue(structured),this.filename&&(param=this._encodeWords(this.filename),(param!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(param))&&(param='"'+param+'"'),value+="; name="+param);break;case"Bcc":if(!this.keepBcc)return}if(value=this._encodeHeaderValue(key,value),(value||"").toString().trim()){if("function"==typeof this.normalizeHeaderKey){let normalized=this.normalizeHeaderKey(key,value);normalized&&"string"==typeof normalized&&normalized.length&&(key=normalized)}headers.push(mimeFuncs.foldLines(key+": "+value,76))}}})),headers.join("\r\n")}createReadStream(options){let transform,stream=new PassThrough(options=options||{}),outputStream=stream;this.stream(stream,options,(err=>{err?outputStream.emit("error",err):stream.end()}));for(let i=0,len=this._transforms.length;i<len;i++)transform="function"==typeof this._transforms[i]?this._transforms[i]():this._transforms[i],outputStream.once("error",(err=>{transform.emit("error",err)})),outputStream=outputStream.pipe(transform);transform=new LastNewline,outputStream.once("error",(err=>{transform.emit("error",err)})),outputStream=outputStream.pipe(transform);for(let i=0,len=this._processFuncs.length;i<len;i++)transform=this._processFuncs[i],outputStream=transform(outputStream);if(this.newline){const newlineTransform=["win","windows","dos","\r\n"].includes(this.newline.toString().toLowerCase())?new LeWindows:new LeUnix,stream=outputStream.pipe(newlineTransform);return outputStream.on("error",(err=>stream.emit("error",err))),stream}return outputStream}transform(transform){this._transforms.push(transform)}processFunc(processFunc){this._processFuncs.push(processFunc)}stream(outputStream,options,done){let contentStream,localStream,transferEncoding=this.getTransferEncoding(),returned=!1,callback=err=>{returned||(returned=!0,done(err))},finalize=()=>{let childId=0,processChildNode=()=>{if(childId>=this.childNodes.length)return outputStream.write("\r\n--"+this.boundary+"--\r\n"),callback();let child=this.childNodes[childId++];outputStream.write((childId>1?"\r\n":"")+"--"+this.boundary+"\r\n"),child.stream(outputStream,options,(err=>{if(err)return callback(err);setImmediate(processChildNode)}))};if(!this.multipart)return callback();setImmediate(processChildNode)},sendContent=()=>{if(!this.content)return setImmediate(finalize);{if("[object Error]"===Object.prototype.toString.call(this.content))return callback(this.content);"function"==typeof this.content.pipe&&(this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=err=>callback(err),this.content.once("error",this._contentErrorHandler));let createStream=()=>{["quoted-printable","base64"].includes(transferEncoding)?(contentStream=new("base64"===transferEncoding?base64:qp).Encoder(options),contentStream.pipe(outputStream,{end:!1}),contentStream.once("end",finalize),contentStream.once("error",(err=>callback(err))),localStream=this._getStream(this.content),localStream.pipe(contentStream)):(localStream=this._getStream(this.content),localStream.pipe(outputStream,{end:!1}),localStream.once("end",finalize)),localStream.once("error",(err=>callback(err)))};if(this.content._resolve){let chunks=[],chunklen=0,returned=!1,sourceStream=this._getStream(this.content);sourceStream.on("error",(err=>{returned||(returned=!0,callback(err))})),sourceStream.on("readable",(()=>{let chunk;for(;null!==(chunk=sourceStream.read());)chunks.push(chunk),chunklen+=chunk.length})),sourceStream.on("end",(()=>{returned||(returned=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(chunks,chunklen),setImmediate(createStream))}))}else setImmediate(createStream)}};this._raw?setImmediate((()=>{if("[object Error]"===Object.prototype.toString.call(this._raw))return callback(this._raw);"function"==typeof this._raw.pipe&&this._raw.removeListener("error",this._contentErrorHandler);let raw=this._getStream(this._raw);raw.pipe(outputStream,{end:!1}),raw.on("error",(err=>outputStream.emit("error",err))),raw.on("end",finalize)})):(outputStream.write(this.buildHeaders()+"\r\n\r\n"),setImmediate(sendContent))}setEnvelope(envelope){let list;this._envelope={from:!1,to:[]},envelope.from&&(list=[],this._convertAddresses(this._parseAddresses(envelope.from),list),list=list.filter((address=>address&&address.address)),list.length&&list[0]&&(this._envelope.from=list[0].address)),["to","cc","bcc"].forEach((key=>{envelope[key]&&this._convertAddresses(this._parseAddresses(envelope[key]),this._envelope.to)})),this._envelope.to=this._envelope.to.map((to=>to.address)).filter((address=>address));let standardFields=["to","cc","bcc","from"];return Object.keys(envelope).forEach((key=>{standardFields.includes(key)||(this._envelope[key]=envelope[key])})),this}getAddresses(){let addresses={};return this._headers.forEach((header=>{let key=header.key.toLowerCase();["from","sender","reply-to","to","cc","bcc"].includes(key)&&(Array.isArray(addresses[key])||(addresses[key]=[]),this._convertAddresses(this._parseAddresses(header.value),addresses[key]))})),addresses}getEnvelope(){if(this._envelope)return this._envelope;let envelope={from:!1,to:[]};return this._headers.forEach((header=>{let list=[];"From"===header.key||!envelope.from&&["Reply-To","Sender"].includes(header.key)?(this._convertAddresses(this._parseAddresses(header.value),list),list.length&&list[0]&&(envelope.from=list[0].address)):["To","Cc","Bcc"].includes(header.key)&&this._convertAddresses(this._parseAddresses(header.value),envelope.to)})),envelope.to=envelope.to.map((to=>to.address)),envelope}messageId(){let messageId=this.getHeader("Message-ID");return messageId||(messageId=this._generateMessageId(),this.setHeader("Message-ID",messageId)),messageId}setRaw(raw){return this._raw=raw,this._raw&&"function"==typeof this._raw.pipe&&(this._contentErrorHandler=err=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=err},this._raw.once("error",this._contentErrorHandler)),this}_getStream(content){let contentStream;return content._resolvedValue?(contentStream=new PassThrough,setImmediate((()=>{try{contentStream.end(content._resolvedValue)}catch(err){contentStream.emit("error",err)}})),contentStream):"function"==typeof content.pipe?content:content&&"string"==typeof content.path&&!content.href?this.disableFileAccess?(contentStream=new PassThrough,setImmediate((()=>contentStream.emit("error",new Error("File access rejected for "+content.path)))),contentStream):fs.createReadStream(content.path):content&&"string"==typeof content.href?this.disableUrlAccess?(contentStream=new PassThrough,setImmediate((()=>contentStream.emit("error",new Error("Url access rejected for "+content.href)))),contentStream):nmfetch(content.href,{headers:content.httpHeaders}):(contentStream=new PassThrough,setImmediate((()=>{try{contentStream.end(content||"")}catch(err){contentStream.emit("error",err)}})),contentStream)}_parseAddresses(addresses){return[].concat.apply([],[].concat(addresses).map((address=>address&&address.address?(address.address=this._normalizeAddress(address.address),address.name=address.name||"",[address]):addressparser(address))))}_normalizeHeaderKey(key){return key=(key||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,(c=>c.toUpperCase())).replace(/^Content-Features$/i,"Content-features")}_handleContentType(structured){this.contentType=structured.value.trim().toLowerCase(),this.multipart=!!/^multipart\//i.test(this.contentType)&&this.contentType.substr(this.contentType.indexOf("/")+1),this.multipart?this.boundary=structured.params.boundary=structured.params.boundary||this.boundary||this._generateBoundary():this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(key,value){switch(key=this._normalizeHeaderKey(key)){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(value));case"Message-ID":case"In-Reply-To":case"Content-Id":return"<"!==(value=(value||"").toString().replace(/\r?\n|\r/g," ")).charAt(0)&&(value="<"+value),">"!==value.charAt(value.length-1)&&(value+=">"),value;case"References":return(value=[].concat.apply([],[].concat(value||"").map((elm=>(elm=(elm||"").toString().replace(/\r?\n|\r/g," ").trim()).replace(/<[^>]*>/g,(str=>str.replace(/\s/g,""))).split(/\s+/)))).map((elm=>("<"!==elm.charAt(0)&&(elm="<"+elm),">"!==elm.charAt(elm.length-1)&&(elm+=">"),elm)))).join(" ").trim();case"Date":return"[object Date]"===Object.prototype.toString.call(value)?value.toUTCString().replace(/GMT/,"+0000"):(value=(value||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(value));case"Content-Type":case"Content-Disposition":return(value||"").toString().replace(/\r?\n|\r/g," ");default:return value=(value||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(value)}}_convertAddresses(addresses,uniqueList){let values=[];return uniqueList=uniqueList||[],[].concat(addresses||[]).forEach((address=>{if(address.address)address.address=this._normalizeAddress(address.address),address.name?address.name&&values.push(`${this._encodeAddressName(address.name)} <${address.address}>`):values.push(address.address.indexOf(" ")>=0?`<${address.address}>`:`${address.address}`),address.address&&(uniqueList.filter((a=>a.address===address.address)).length||uniqueList.push(address));else if(address.group){let groupListAddresses=(address.group.length?this._convertAddresses(address.group,uniqueList):"").trim();values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`)}})),values.join(", ")}_normalizeAddress(address){let lastAt=(address=(address||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim()).lastIndexOf("@");if(lastAt<0)return address;let encodedDomain,user=address.substr(0,lastAt),domain=address.substr(lastAt+1);try{encodedDomain=punycode.toASCII(domain.toLowerCase())}catch(err){}return user.indexOf(" ")>=0&&('"'!==user.charAt(0)&&(user='"'+user),'"'!==user.substr(-1)&&(user+='"')),`${user}@${encodedDomain}`}_encodeAddressName(name){return/^[\w ]*$/.test(name)?name:/^[\x20-\x7e]*$/.test(name)?'"'+name.replace(/([\\"])/g,"\\$1")+'"':mimeFuncs.encodeWord(name,this._getTextEncoding(name),52)}_encodeWords(value){return mimeFuncs.encodeWords(value,this._getTextEncoding(value),52,!0)}_getTextEncoding(value){value=(value||"").toString();let latinLen,nonLatinLen,encoding=this.textEncoding;return encoding||(nonLatinLen=(value.match(/[\x00-\x08\x0B\x0C\x0E-\x1F\u0080-\uFFFF]/g)||[]).length,latinLen=(value.match(/[a-z]/gi)||[]).length,encoding=nonLatinLen<latinLen?"Q":"B"),encoding}_generateMessageId(){return"<"+[2,2,2,6].reduce(((prev,len)=>prev+"-"+crypto.randomBytes(len).toString("hex")),crypto.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}return mimeNode=MimeNode}var hasRequiredSign,dkim,hasRequiredDkim,httpProxyClient_1,hasRequiredHttpProxyClient,mailMessage,hasRequiredMailMessage,mailer,hasRequiredMailer,dataStream,hasRequiredDataStream,smtpConnection,hasRequiredSmtpConnection,xoauth2,hasRequiredXoauth2,poolResource,hasRequiredPoolResource,sign={exports:{}};function requireSign(){if(hasRequiredSign)return sign.exports;hasRequiredSign=1;const punycode=requirePunycode(),mimeFuncs=requireMimeFuncs(),crypto=require$$0__default$1.default;function relaxedHeaders(headers,fieldNames,skipFields){let includedFields=new Set,skip=new Set,headerFields=new Map;(skipFields||"").toLowerCase().split(":").forEach((field=>{skip.add(field.trim())})),(fieldNames||"").toLowerCase().split(":").filter((field=>!skip.has(field.trim()))).forEach((field=>{includedFields.add(field.trim())}));for(let i=headers.length-1;i>=0;i--){let line=headers[i];includedFields.has(line.key)&&!headerFields.has(line.key)&&headerFields.set(line.key,relaxedHeaderLine(line.line))}let headersList=[],fields=[];return includedFields.forEach((field=>{headerFields.has(field)&&(fields.push(field),headersList.push(field+":"+headerFields.get(field)))})),{headers:headersList.join("\r\n")+"\r\n",fieldNames:fields.join(":")}}function relaxedHeaderLine(line){return line.substr(line.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}return sign.exports=(headers,hashAlgo,bodyHash,options)=>{let signer,signature,canonicalizedHeaderData=relaxedHeaders(headers,(options=options||{}).headerFieldNames||"From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",options.skipFields),dkimHeader=function generateDKIMHeader(domainName,keySelector,fieldNames,hashAlgo,bodyHash){let dkim=["v=1","a=rsa-"+hashAlgo,"c=relaxed/relaxed","d="+punycode.toASCII(domainName),"q=dns/txt","s="+keySelector,"bh="+bodyHash,"h="+fieldNames].join("; ");return mimeFuncs.foldLines("DKIM-Signature: "+dkim,76)+";\r\n b="}(options.domainName,options.keySelector,canonicalizedHeaderData.fieldNames,hashAlgo,bodyHash);canonicalizedHeaderData.headers+="dkim-signature:"+relaxedHeaderLine(dkimHeader),signer=crypto.createSign(("rsa-"+hashAlgo).toUpperCase()),signer.update(canonicalizedHeaderData.headers);try{signature=signer.sign(options.privateKey,"base64")}catch(E){return!1}return dkimHeader+signature.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,"$&\r\n ").trim()},sign.exports.relaxedHeaders=relaxedHeaders,sign.exports}function requireDkim(){if(hasRequiredDkim)return dkim;hasRequiredDkim=1;const MessageParser=function requireMessageParser(){if(hasRequiredMessageParser)return messageParser;hasRequiredMessageParser=1;const Transform=require$$0__default$2.default.Transform;return messageParser=class MessageParser extends Transform{constructor(options){super(options),this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(data){let lblen=this.lastBytes.length,nblen=Math.min(data.length,lblen);for(let i=0,len=lblen-nblen;i<len;i++)this.lastBytes[i]=this.lastBytes[i+nblen];for(let i=1;i<=nblen;i++)this.lastBytes[lblen-i]=data[data.length-i]}checkHeaders(data){if(this.headersParsed)return!0;let lblen=this.lastBytes.length,headerPos=0;this.curLinePos=0;for(let i=0,len=this.lastBytes.length+data.length;i<len;i++){let chr;if(chr=i<lblen?this.lastBytes[i]:data[i-lblen],10===chr&&i){let pr1=i-1<lblen?this.lastBytes[i-1]:data[i-1-lblen],pr2=i>1&&(i-2<lblen?this.lastBytes[i-2]:data[i-2-lblen]);if(10===pr1){this.headersParsed=!0,headerPos=i-lblen+1,this.headerBytes+=headerPos;break}if(13===pr1&&10===pr2){this.headersParsed=!0,headerPos=i-lblen+1,this.headerBytes+=headerPos;break}}}if(this.headersParsed){if(this.headerChunks.push(data.slice(0,headerPos)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),data.length-1>headerPos){let chunk=data.slice(headerPos);this.bodySize+=chunk.length,setImmediate((()=>this.push(chunk)))}return!1}return this.headerBytes+=data.length,this.headerChunks.push(data),this.updateLastBytes(data),!1}_transform(chunk,encoding,callback){if(!chunk||!chunk.length)return callback();let headersFound;"string"==typeof chunk&&(chunk=Buffer.from(chunk,encoding));try{headersFound=this.checkHeaders(chunk)}catch(E){return callback(E)}headersFound&&(this.bodySize+=chunk.length,this.push(chunk)),setImmediate(callback)}_flush(callback){if(this.headerChunks){let chunk=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=chunk.length,this.push(chunk),this.headerChunks=null}callback()}parseHeaders(){let lines=(this.rawHeaders||"").toString().split(/\r?\n/);for(let i=lines.length-1;i>0;i--)/^\s/.test(lines[i])&&(lines[i-1]+="\n"+lines[i],lines.splice(i,1));return lines.filter((line=>line.trim())).map((line=>({key:line.substr(0,line.indexOf(":")).trim().toLowerCase(),line:line})))}}}(),RelaxedBody=function requireRelaxedBody(){if(hasRequiredRelaxedBody)return relaxedBody;hasRequiredRelaxedBody=1;const Transform=require$$0__default$2.default.Transform,crypto=require$$0__default$1.default;return relaxedBody=class RelaxedBody extends Transform{constructor(options){super(),options=options||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=crypto.createHash(options.hashAlgo||"sha1"),this.remainder="",this.byteLength=0,this.debug=options.debug,this._debugBody=!!options.debug&&[]}updateHash(chunk){let bodyStr,nextRemainder="",state="file";for(let i=chunk.length-1;i>=0;i--){let c=chunk[i];if("file"!==state||10!==c&&13!==c)if("file"!==state||9!==c&&32!==c){if(("line"!==state||9!==c&&32!==c)&&("file"===state||"line"===state)&&(state="body",i===chunk.length-1))break}else state="line";if(0===i){if("file"===state&&(!this.remainder||/[\r\n]$/.test(this.remainder))||"line"===state&&(!this.remainder||/[ \t]$/.test(this.remainder)))return void(this.remainder+=chunk.toString("binary"));if("line"===state||"file"===state){nextRemainder=chunk.toString("binary"),chunk=!1;break}}if("body"===state){nextRemainder=chunk.slice(i+1).toString("binary"),chunk=chunk.slice(0,i+1);break}}let needsFixing=!!this.remainder;if(chunk&&!needsFixing)for(let i=0,len=chunk.length;i<len;i++){if(i&&10===chunk[i]&&13!==chunk[i-1]){needsFixing=!0;break}if(i&&13===chunk[i]&&32===chunk[i-1]){needsFixing=!0;break}if(i&&32===chunk[i]&&32===chunk[i-1]){needsFixing=!0;break}if(9===chunk[i]){needsFixing=!0;break}}needsFixing?(bodyStr=this.remainder+(chunk?chunk.toString("binary"):""),this.remainder=nextRemainder,bodyStr=bodyStr.replace(/\r?\n/g,"\n").replace(/[ \t]*$/gm,"").replace(/[ \t]+/gm," ").replace(/\n/g,"\r\n"),chunk=Buffer.from(bodyStr,"binary")):nextRemainder&&(this.remainder=nextRemainder),this.debug&&this._debugBody.push(chunk),this.bodyHash.update(chunk)}_transform(chunk,encoding,callback){if(!chunk||!chunk.length)return callback();"string"==typeof chunk&&(chunk=Buffer.from(chunk,encoding)),this.updateHash(chunk),this.byteLength+=chunk.length,this.push(chunk),callback()}_flush(callback){/[\r\n]$/.test(this.remainder)&&this.byteLength>2&&this.bodyHash.update(Buffer.from("\r\n")),this.byteLength||this.push(Buffer.from("\r\n")),this.emit("hash",this.bodyHash.digest("base64"),!!this.debug&&Buffer.concat(this._debugBody)),callback()}}}(),sign=requireSign(),PassThrough=require$$0__default$2.default.PassThrough,fs=fs__default.default,path=path__default.default,crypto=require$$0__default$1.default;class DKIMSigner{constructor(options,keys,input,output){this.options=options||{},this.keys=keys,this.cacheTreshold=Number(this.options.cacheTreshold)||131072,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=!!this.cacheDir&&path.join(this.cacheDir,"message."+Date.now()+"-"+crypto.randomBytes(14).toString("hex")),this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=input,this.output=output,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",(err=>{this.hasErrored=!0,this.cleanup(),output.emit("error",err)}))}cleanup(){this.cache&&this.cachePath&&fs.unlink(this.cachePath,(()=>!1))}createReadCache(){this.cache=fs.createReadStream(this.cachePath),this.cache.once("error",(err=>{this.cleanup(),this.output.emit("error",err)})),this.cache.once("close",(()=>{this.cleanup()})),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length)return this.cache?this.createReadCache():this.output.end();let chunk=this.chunks[this.readPos++];if(!1===this.output.write(chunk))return this.output.once("drain",(()=>{this.sendNextChunk()}));setImmediate((()=>this.sendNextChunk()))}sendSignedOutput(){let keyPos=0,signNextKey=()=>{if(keyPos>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate((()=>this.sendNextChunk()));let key=this.keys[keyPos++],dkimField=sign(this.headers,this.hashAlgo,this.bodyHash,{domainName:key.domainName,keySelector:key.keySelector,privateKey:key.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});return dkimField&&this.output.write(Buffer.from(dkimField+"\r\n")),setImmediate(signNextKey)};if(this.bodyHash&&this.headers)return signNextKey();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=fs.createWriteStream(this.cachePath),this.cache.once("error",(err=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",(()=>{for(;null!==this.relaxedBody.read(););})),this.hasErrored=!0,this.output.emit("error",err)})),this.cache.once("close",(()=>{this.sendSignedOutput()})),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new MessageParser,this.relaxedBody=new RelaxedBody({hashAlgo:this.hashAlgo}),this.parser.on("headers",(value=>{this.headers=value})),this.relaxedBody.on("hash",(value=>{this.bodyHash=value})),this.relaxedBody.on("readable",(()=>{let chunk;if(!this.cache)for(;null!==(chunk=this.relaxedBody.read());)if(this.chunks.push(chunk),this.chunklen+=chunk.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()})),this.relaxedBody.on("end",(()=>{this.cache||this.sendSignedOutput()})),this.parser.pipe(this.relaxedBody),setImmediate((()=>this.input.pipe(this.parser)))}}return dkim=class DKIM{constructor(options){this.options=options||{},this.keys=[].concat(this.options.keys||{domainName:options.domainName,keySelector:options.keySelector,privateKey:options.privateKey})}sign(input,extraOptions){let output=new PassThrough,inputStream=input,writeValue=!1;Buffer.isBuffer(input)?(writeValue=input,inputStream=new PassThrough):"string"==typeof input&&(writeValue=Buffer.from(input),inputStream=new PassThrough);let options=this.options;extraOptions&&Object.keys(extraOptions).length&&(options={},Object.keys(this.options||{}).forEach((key=>{options[key]=this.options[key]})),Object.keys(extraOptions||{}).forEach((key=>{key in options||(options[key]=extraOptions[key])})));let signer=new DKIMSigner(options,this.keys,inputStream,output);return setImmediate((()=>{signer.signStream(),writeValue&&setImmediate((()=>{inputStream.end(writeValue)}))})),output}}}function requireMailer(){if(hasRequiredMailer)return mailer;hasRequiredMailer=1;const EventEmitter=require$$0__default.default,shared=requireShared(),mimeTypes=requireMimeTypes(),MailComposer=function requireMailComposer(){if(hasRequiredMailComposer)return mailComposer;hasRequiredMailComposer=1;const MimeNode=requireMimeNode(),mimeFuncs=requireMimeFuncs(),parseDataURI=requireShared().parseDataURI;return mailComposer=class MailComposer{constructor(mail){this.mail=mail||{},this.message=!1}compile(){return this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter((alternative=>/^text\/html\b/i.test(alternative.contentType))).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!(!this._htmlNode||!this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&1===this._attachments.attached.length,this.mail.raw?this.message=new MimeNode("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw):this._useMixed?this.message=this._createMixed():this._useAlternative?this.message=this._createAlternative():this._useRelated?this.message=this._createRelated():this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""}),this.mail.headers&&this.message.addHeader(this.mail.headers),["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach((header=>{let key=header.replace(/-(\w)/g,((o,c)=>c.toUpperCase()));this.mail[key]&&this.message.setHeader(header,this.mail[key])})),this.mail.envelope&&this.message.setEnvelope(this.mail.envelope),this.message.messageId(),this.message}getAttachments(findRelated){let icalEvent,eventObject,attachments=[].concat(this.mail.attachments||[]).map(((attachment,i)=>{let data,isMessageNode=/^message\//i.test(attachment.contentType);/^data:/i.test(attachment.path||attachment.href)&&(attachment=this._processDataUrl(attachment));let contentType=attachment.contentType||mimeFuncs.detectMimeType(attachment.filename||attachment.path||attachment.href||"bin"),isImage=/^image\//i.test(contentType);return data={contentType:contentType,contentDisposition:attachment.contentDisposition||(isMessageNode||isImage&&attachment.cid?"inline":"attachment"),contentTransferEncoding:"contentTransferEncoding"in attachment?attachment.contentTransferEncoding:"base64"},attachment.filename?data.filename=attachment.filename:isMessageNode||!1===attachment.filename||(data.filename=(attachment.path||attachment.href||"").split("/").pop().split("?").shift()||"attachment-"+(i+1),data.filename.indexOf(".")<0&&(data.filename+="."+mimeFuncs.detectExtension(data.contentType))),/^https?:\/\//i.test(attachment.path)&&(attachment.href=attachment.path,attachment.path=void 0),attachment.cid&&(data.cid=attachment.cid),attachment.raw?data.raw=attachment.raw:attachment.path?data.content={path:attachment.path}:attachment.href?data.content={href:attachment.href,httpHeaders:attachment.httpHeaders}:data.content=attachment.content||"",attachment.encoding&&(data.encoding=attachment.encoding),attachment.headers&&(data.headers=attachment.headers),data}));return this.mail.icalEvent&&(icalEvent="object"==typeof this.mail.icalEvent&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?this.mail.icalEvent:{content:this.mail.icalEvent},eventObject={},Object.keys(icalEvent).forEach((key=>{eventObject[key]=icalEvent[key]})),eventObject.contentType="application/ics",eventObject.headers||(eventObject.headers={}),eventObject.filename=eventObject.filename||"invite.ics",eventObject.headers["Content-Disposition"]="attachment",eventObject.headers["Content-Transfer-Encoding"]="base64"),findRelated?{attached:attachments.filter((attachment=>!attachment.cid)).concat(eventObject||[]),related:attachments.filter((attachment=>!!attachment.cid))}:{attached:attachments.concat(eventObject||[]),related:[]}}getAlternatives(){let text,html,watchHtml,amp,icalEvent,eventObject,alternatives=[];return this.mail.text&&(text="object"==typeof this.mail.text&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw)?this.mail.text:{content:this.mail.text},text.contentType="text/plain; charset=utf-8"),this.mail.watchHtml&&(watchHtml="object"==typeof this.mail.watchHtml&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw)?this.mail.watchHtml:{content:this.mail.watchHtml},watchHtml.contentType="text/watch-html; charset=utf-8"),this.mail.amp&&(amp="object"==typeof this.mail.amp&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw)?this.mail.amp:{content:this.mail.amp},amp.contentType="text/x-amp-html; charset=utf-8"),this.mail.icalEvent&&(icalEvent="object"==typeof this.mail.icalEvent&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?this.mail.icalEvent:{content:this.mail.icalEvent},eventObject={},Object.keys(icalEvent).forEach((key=>{eventObject[key]=icalEvent[key]})),eventObject.content&&"object"==typeof eventObject.content&&(eventObject.content._resolve=!0),eventObject.filename=!1,eventObject.contentType="text/calendar; charset=utf-8; method="+(eventObject.method||"PUBLISH").toString().trim().toUpperCase(),eventObject.headers||(eventObject.headers={})),this.mail.html&&(html="object"==typeof this.mail.html&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw)?this.mail.html:{content:this.mail.html},html.contentType="text/html; charset=utf-8"),[].concat(text||[]).concat(watchHtml||[]).concat(amp||[]).concat(html||[]).concat(eventObject||[]).concat(this.mail.alternatives||[]).forEach((alternative=>{let data;/^data:/i.test(alternative.path||alternative.href)&&(alternative=this._processDataUrl(alternative)),data={contentType:alternative.contentType||mimeFuncs.detectMimeType(alternative.filename||alternative.path||alternative.href||"txt"),contentTransferEncoding:alternative.contentTransferEncoding},alternative.filename&&(data.filename=alternative.filename),/^https?:\/\//i.test(alternative.path)&&(alternative.href=alternative.path,alternative.path=void 0),alternative.raw?data.raw=alternative.raw:alternative.path?data.content={path:alternative.path}:alternative.href?data.content={href:alternative.href}:data.content=alternative.content||"",alternative.encoding&&(data.encoding=alternative.encoding),alternative.headers&&(data.headers=alternative.headers),alternatives.push(data)})),alternatives}_createMixed(parentNode){let node;return node=parentNode?parentNode.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._useAlternative?this._createAlternative(node):this._useRelated&&this._createRelated(node),[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach((element=>{this._useRelated&&element===this._htmlNode||this._createContentNode(node,element)})),node}_createAlternative(parentNode){let node;return node=parentNode?parentNode.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._alternatives.forEach((alternative=>{this._useRelated&&this._htmlNode===alternative?this._createRelated(node):this._createContentNode(node,alternative)})),node}_createRelated(parentNode){let node;return node=parentNode?parentNode.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._createContentNode(node,this._htmlNode),this._attachments.related.forEach((alternative=>this._createContentNode(node,alternative))),node}_createContentNode(parentNode,element){let node;(element=element||{}).content=element.content||"";let encoding=(element.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");return node=parentNode?parentNode.createChild(element.contentType,{filename:element.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode(element.contentType,{filename:element.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),element.headers&&node.addHeader(element.headers),element.cid&&node.setHeader("Content-Id","<"+element.cid.replace(/[<>]/g,"")+">"),element.contentTransferEncoding?node.setHeader("Content-Transfer-Encoding",element.contentTransferEncoding):this.mail.encoding&&/^text\//i.test(element.contentType)&&node.setHeader("Content-Transfer-Encoding",this.mail.encoding),/^text\//i.test(element.contentType)&&!element.contentDisposition||node.setHeader("Content-Disposition",element.contentDisposition||(element.cid&&/^image\//i.test(element.contentType)?"inline":"attachment")),"string"!=typeof element.content||["utf8","usascii","ascii"].includes(encoding)||(element.content=Buffer.from(element.content,encoding)),element.raw?node.setRaw(element.raw):node.setContent(element.content),node}_processDataUrl(element){let parsedDataUri;return(element.path||element.href).match(/^data:/)&&(parsedDataUri=parseDataURI(element.path||element.href)),parsedDataUri?(element.content=parsedDataUri.data,element.contentType=element.contentType||parsedDataUri.contentType,"path"in element&&(element.path=!1),"href"in element&&(element.href=!1),element):element}},mailComposer}(),DKIM=requireDkim(),httpProxyClient=function requireHttpProxyClient(){if(hasRequiredHttpProxyClient)return httpProxyClient_1;hasRequiredHttpProxyClient=1;const net=require$$7__default.default,tls=require$$1__default$2.default,urllib=require$$0__default$4.default;return httpProxyClient_1=function httpProxyClient(proxyUrl,destinationPort,destinationHost,callback){let options,connect,socket,proxy=urllib.parse(proxyUrl);options={host:proxy.hostname,port:Number(proxy.port)?Number(proxy.port):"https:"===proxy.protocol?443:80},"https:"===proxy.protocol?(options.rejectUnauthorized=!1,connect=tls.connect.bind(tls)):connect=net.connect.bind(net);let finished=!1,tempSocketErr=err=>{if(!finished){finished=!0;try{socket.destroy()}catch(E){}callback(err)}},timeoutErr=()=>{let err=new Error("Proxy socket timed out");err.code="ETIMEDOUT",tempSocketErr(err)};socket=connect(options,(()=>{if(finished)return;let reqHeaders={Host:destinationHost+":"+destinationPort,Connection:"close"};proxy.auth&&(reqHeaders["Proxy-Authorization"]="Basic "+Buffer.from(proxy.auth).toString("base64")),socket.write("CONNECT "+destinationHost+":"+destinationPort+" HTTP/1.1\r\n"+Object.keys(reqHeaders).map((key=>key+": "+reqHeaders[key])).join("\r\n")+"\r\n\r\n");let headers="",onSocketData=chunk=>{let match,remainder;if(!finished&&(headers+=chunk.toString("binary"),match=headers.match(/\r\n\r\n/))){if(socket.removeListener("data",onSocketData),remainder=headers.substr(match.index+match[0].length),headers=headers.substr(0,match.index),remainder&&socket.unshift(Buffer.from(remainder,"binary")),finished=!0,match=headers.match(/^HTTP\/\d+\.\d+ (\d+)/i),!match||"2"!==(match[1]||"").charAt(0)){try{socket.destroy()}catch(E){}return callback(new Error("Invalid response from proxy"+(match&&": "+match[1]||"")))}return socket.removeListener("error",tempSocketErr),socket.removeListener("timeout",timeoutErr),socket.setTimeout(0),callback(null,socket)}};socket.on("data",onSocketData)})),socket.setTimeout(httpProxyClient.timeout||3e4),socket.on("timeout",timeoutErr),socket.once("error",tempSocketErr)},httpProxyClient_1}(),util=require$$0__default$3.default,urllib=require$$0__default$4.default,packageData=require$$9,MailMessage=function requireMailMessage(){if(hasRequiredMailMessage)return mailMessage;hasRequiredMailMessage=1;const shared=requireShared(),MimeNode=requireMimeNode(),mimeFuncs=requireMimeFuncs();return mailMessage=class MailMessage{constructor(mailer,data){this.mailer=mailer,this.data={},this.message=null,data=data||{};let options=mailer.options||{},defaults=mailer._defaults||{};Object.keys(data).forEach((key=>{this.data[key]=data[key]})),this.data.headers=this.data.headers||{},Object.keys(defaults).forEach((key=>{key in this.data?"headers"===key&&Object.keys(defaults.headers).forEach((key=>{key in this.data.headers||(this.data.headers[key]=defaults.headers[key])})):this.data[key]=defaults[key]})),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach((key=>{key in options&&(this.data[key]=options[key])}))}resolveContent(...args){return shared.resolveContent(...args)}resolveAll(callback){let keys=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];this.data.alternatives&&this.data.alternatives.length&&this.data.alternatives.forEach(((alternative,i)=>{keys.push([this.data.alternatives,i])})),this.data.attachments&&this.data.attachments.length&&this.data.attachments.forEach(((attachment,i)=>{attachment.filename||(attachment.filename=(attachment.path||attachment.href||"").split("/").pop().split("?").shift()||"attachment-"+(i+1),attachment.filename.indexOf(".")<0&&(attachment.filename+="."+mimeFuncs.detectExtension(attachment.contentType))),attachment.contentType||(attachment.contentType=mimeFuncs.detectMimeType(attachment.filename||attachment.path||attachment.href||"bin")),keys.push([this.data.attachments,i])}));let mimeNode=new MimeNode;["from","to","cc","bcc","sender","replyTo"].forEach((address=>{let value;this.message?value=[].concat(mimeNode._parseAddresses(this.message.getHeader("replyTo"===address?"reply-to":address))||[]):this.data[address]&&(value=[].concat(mimeNode._parseAddresses(this.data[address])||[])),value&&value.length?this.data[address]=value:address in this.data&&(this.data[address]=null)})),["from","sender"].forEach((address=>{this.data[address]&&(this.data[address]=this.data[address].shift())}));let pos=0,resolveNext=()=>{if(pos>=keys.length)return callback(null,this.data);let args=keys[pos++];if(!args[0]||!args[0][args[1]])return resolveNext();shared.resolveContent(...args,((err,value)=>{if(err)return callback(err);let node={content:value};args[0][args[1]]&&"object"==typeof args[0][args[1]]&&!Buffer.isBuffer(args[0][args[1]])&&Object.keys(args[0][args[1]]).forEach((key=>{key in node||["content","path","href","raw"].includes(key)||(node[key]=args[0][args[1]][key])})),args[0][args[1]]=node,resolveNext()}))};setImmediate((()=>resolveNext()))}normalize(callback){let envelope=this.data.envelope||this.message.getEnvelope(),messageId=this.message.messageId();this.resolveAll(((err,data)=>err?callback(err):(data.envelope=envelope,data.messageId=messageId,["html","text","watchHtml","amp"].forEach((key=>{data[key]&&data[key].content&&("string"==typeof data[key].content?data[key]=data[key].content:Buffer.isBuffer(data[key].content)&&(data[key]=data[key].content.toString()))})),data.icalEvent&&Buffer.isBuffer(data.icalEvent.content)&&(data.icalEvent.content=data.icalEvent.content.toString("base64"),data.icalEvent.encoding="base64"),data.alternatives&&data.alternatives.length&&data.alternatives.forEach((alternative=>{alternative&&alternative.content&&Buffer.isBuffer(alternative.content)&&(alternative.content=alternative.content.toString("base64"),alternative.encoding="base64")})),data.attachments&&data.attachments.length&&data.attachments.forEach((attachment=>{attachment&&attachment.content&&Buffer.isBuffer(attachment.content)&&(attachment.content=attachment.content.toString("base64"),attachment.encoding="base64")})),data.normalizedHeaders={},Object.keys(data.headers||{}).forEach((key=>{let value=[].concat(data.headers[key]||[]).shift();value=value&&value.value||value,value&&(["references","in-reply-to","message-id","content-id"].includes(key)&&(value=this.message._encodeHeaderValue(key,value)),data.normalizedHeaders[key]=value)})),data.list&&"object"==typeof data.list&&this._getListHeaders(data.list).forEach((entry=>{data.normalizedHeaders[entry.key]=entry.value.map((val=>val&&val.value||val)).join(", ")})),data.references&&(data.normalizedHeaders.references=this.message._encodeHeaderValue("references",data.references)),data.inReplyTo&&(data.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",data.inReplyTo)),callback(null,data))))}setMailerHeader(){this.message&&this.data.xMailer&&this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(this.message&&this.data.priority)switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low")}}setListHeaders(){this.message&&this.data.list&&"object"==typeof this.data.list&&this.data.list&&"object"==typeof this.data.list&&this._getListHeaders(this.data.list).forEach((listHeader=>{listHeader.value.forEach((value=>{this.message.addHeader(listHeader.key,value)}))}))}_getListHeaders(listData){return Object.keys(listData).map((key=>({key:"list-"+key.toLowerCase().trim(),value:[].concat(listData[key]||[]).map((value=>({prepared:!0,foldLines:!0,value:[].concat(value||[]).map((value=>{if("string"==typeof value&&(value={url:value}),value&&value.url){if("id"===key.toLowerCase().trim()){let comment=value.comment||"";return comment=mimeFuncs.isPlainText(comment)?'"'+comment+'"':mimeFuncs.encodeWord(comment),(value.comment?comment+" ":"")+this._formatListUrl(value.url).replace(/^<[^:]+\/{,2}/,"")}let comment=value.comment||"";return mimeFuncs.isPlainText(comment)||(comment=mimeFuncs.encodeWord(comment)),this._formatListUrl(value.url)+(value.comment?" ("+comment+")":"")}return""})).filter((value=>value)).join(", ")})))})))}_formatListUrl(url){return url=url.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(url)?"<"+url+">":/^[^@]+@[^@]+$/.test(url)?"<mailto:"+url+">":"<http://"+url+">"}},mailMessage}(),net=require$$7__default.default,dns=require$$4__default$2.default,crypto=require$$0__default$1.default;return mailer=class Mail extends EventEmitter{constructor(transporter,options,defaults){super(),this.options=options||{},this._defaults=defaults||{},this._defaultPlugins={compile:[(...args)=>this._convertDataImages(...args)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=!!this.options.dkim&&new DKIM(this.options.dkim),this.transporter=transporter,this.transporter.mailer=this,this.logger=shared.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),"function"==typeof this.transporter.on&&(this.transporter.on("log",(log=>{this.logger.debug({tnx:"transport"},"%s: %s",log.type,log.message)})),this.transporter.on("error",(err=>{this.logger.error({err:err,tnx:"transport"},"Transport Error: %s",err.message),this.emit("error",err)})),this.transporter.on("idle",((...args)=>{this.emit("idle",...args)}))),["close","isIdle","verify"].forEach((method=>{this[method]=(...args)=>"function"==typeof this.transporter[method]?("verify"===method&&"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1),this.transporter[method](...args)):(this.logger.warn({tnx:"transport",methodName:method},"Non existing method %s called for transport",method),!1)})),this.options.proxy&&"string"==typeof this.options.proxy&&this.setupProxy(this.options.proxy)}use(step,plugin){return step=(step||"").toString(),this._userPlugins.hasOwnProperty(step)?this._userPlugins[step].push(plugin):this._userPlugins[step]=[plugin],this}sendMail(data,callback=null){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1);let mail=new MailMessage(this,data);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",mail,(err=>{if(err)return this.logger.error({err:err,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",err.message),callback(err);mail.message=new MailComposer(mail.data).compile(),mail.setMailerHeader(),mail.setPriorityHeaders(),mail.setListHeaders(),this._processPlugins("stream",mail,(err=>{if(err)return this.logger.error({err:err,tnx:"plugin",action:"stream"},"PluginStream Error: %s",err.message),callback(err);(mail.data.dkim||this.dkim)&&mail.message.processFunc((input=>{let dkim=mail.data.dkim?new DKIM(mail.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:mail.message.messageId(),dkimDomains:dkim.keys.map((key=>key.keySelector+"."+key.domainName)).join(", ")},"Signing outgoing message with %s keys",dkim.keys.length),dkim.sign(input,mail.data._dkim)})),this.transporter.send(mail,((...args)=>{args[0]&&this.logger.error({err:args[0],tnx:"transport",action:"send"},"Send Error: %s",args[0].message),callback(...args)}))}))})),promise}getVersionString(){return util.format("%s (%s; +%s; %s/%s)",packageData.name,packageData.version,packageData.homepage,this.transporter.name,this.transporter.version)}_processPlugins(step,mail,callback){if(step=(step||"").toString(),!this._userPlugins.hasOwnProperty(step))return callback();let userPlugins=this._userPlugins[step]||[],defaultPlugins=this._defaultPlugins[step]||[];if(userPlugins.length&&this.logger.debug({tnx:"transaction",pluginCount:userPlugins.length,step:step},"Using %s plugins for %s",userPlugins.length,step),userPlugins.length+defaultPlugins.length===0)return callback();let pos=0,block="default",processPlugins=()=>{let curplugins="default"===block?defaultPlugins:userPlugins;if(pos>=curplugins.length){if("default"!==block||!userPlugins.length)return callback();block="user",pos=0,curplugins=userPlugins}(0,curplugins[pos++])(mail,(err=>{if(err)return callback(err);processPlugins()}))};processPlugins()}setupProxy(proxyUrl){let proxy=urllib.parse(proxyUrl);this.getSocket=(options,callback)=>{let protocol=proxy.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+protocol))return this.meta.get("proxy_handler_"+protocol)(proxy,options,callback);switch(protocol){case"http":case"https":return void httpProxyClient(proxy.href,options.port,options.host,((err,socket)=>err?callback(err):callback(null,{connection:socket})));case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module"))return callback(new Error("Socks module not loaded"));let connect=ipaddress=>{let proxyV2=!!this.meta.get("proxy_socks_module").SocksClient,socksClient=proxyV2?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),proxyType=Number(proxy.protocol.replace(/\D/g,""))||5,connectionOpts={proxy:{ipaddress:ipaddress,port:Number(proxy.port),type:proxyType},[proxyV2?"destination":"target"]:{host:options.host,port:options.port},command:"connect"};if(proxy.auth){let username=decodeURIComponent(proxy.auth.split(":").shift()),password=decodeURIComponent(proxy.auth.split(":").pop());proxyV2?(connectionOpts.proxy.userId=username,connectionOpts.proxy.password=password):4===proxyType?connectionOpts.userid=username:connectionOpts.authentication={username:username,password:password}}socksClient.createConnection(connectionOpts,((err,info)=>err?callback(err):callback(null,{connection:info.socket||info})))};return net.isIP(proxy.hostname)?connect(proxy.hostname):dns.resolve(proxy.hostname,((err,address)=>{if(err)return callback(err);connect(Array.isArray(address)?address[0]:address)}))}}callback(new Error("Unknown proxy configuration"))}}_convertDataImages(mail,callback){if(!this.options.attachDataUrls&&!mail.data.attachDataUrls||!mail.data.html)return callback();mail.resolveContent(mail.data,"html",((err,html)=>{if(err)return callback(err);let cidCounter=0;html=(html||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,((match,prefix,dataUri,mimeType)=>{let cid=crypto.randomBytes(10).toString("hex")+"@localhost";return mail.data.attachments||(mail.data.attachments=[]),Array.isArray(mail.data.attachments)||(mail.data.attachments=[].concat(mail.data.attachments||[])),mail.data.attachments.push({path:dataUri,cid:cid,filename:"image-"+ ++cidCounter+"."+mimeTypes.detectExtension(mimeType)}),prefix+"cid:"+cid})),mail.data.html=html,callback()}))}set(key,value){return this.meta.set(key,value)}get(key){return this.meta.get(key)}},mailer}function requireSmtpConnection(){if(hasRequiredSmtpConnection)return smtpConnection;hasRequiredSmtpConnection=1;const packageInfo=require$$9,EventEmitter=require$$0__default.default.EventEmitter,net=require$$7__default.default,tls=require$$1__default$2.default,os=require$$0__default$5.default,crypto=require$$0__default$1.default,DataStream=function requireDataStream(){if(hasRequiredDataStream)return dataStream;hasRequiredDataStream=1;const Transform=require$$0__default$2.default.Transform;return dataStream=class DataStream extends Transform{constructor(options){super(options),this.options=options||{},this._curLine="",this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(chunk,encoding,done){let i,len,buf,chunks=[],chunklen=0,lastPos=0;if(!chunk||!chunk.length)return done();for("string"==typeof chunk&&(chunk=Buffer.from(chunk)),this.inByteCount+=chunk.length,i=0,len=chunk.length;i<len;i++)46===chunk[i]?(i&&10===chunk[i-1]||!i&&(!this.lastByte||10===this.lastByte))&&(buf=chunk.slice(lastPos,i+1),chunks.push(buf),chunks.push(Buffer.from(".")),chunklen+=buf.length+1,lastPos=i+1):10===chunk[i]&&(i&&13!==chunk[i-1]||!i&&13!==this.lastByte)&&(i>lastPos?(buf=chunk.slice(lastPos,i),chunks.push(buf),chunklen+=buf.length+2):chunklen+=2,chunks.push(Buffer.from("\r\n")),lastPos=i+1);chunklen?(lastPos<chunk.length&&(buf=chunk.slice(lastPos),chunks.push(buf),chunklen+=buf.length),this.outByteCount+=chunklen,this.push(Buffer.concat(chunks,chunklen))):(this.outByteCount+=chunk.length,this.push(chunk)),this.lastByte=chunk[chunk.length-1],done()}_flush(done){let buf;buf=10===this.lastByte?Buffer.from(".\r\n"):13===this.lastByte?Buffer.from("\n.\r\n"):Buffer.from("\r\n.\r\n"),this.outByteCount+=buf.length,this.push(buf),done()}}}(),PassThrough=require$$0__default$2.default.PassThrough,shared=requireShared();return smtpConnection=class SMTPConnection extends EventEmitter{constructor(options){super(options),this.id=crypto.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=options||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!net.isIP(this.host)&&this.host,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,void 0===this.options.secure&&465===this.port&&(this.secureConnection=!0),this.name=this.options.name||this._getHostname(),this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map,Object.keys(this.options.customAuth||{}).forEach((key=>{let mapKey=(key||"").toString().trim().toUpperCase();mapKey&&this.customAuth.set(mapKey,this.options.customAuth[key])})),this.version=packageInfo.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=chunk=>this._onData(chunk),this._onSocketError=error=>this._onError(error,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout()}connect(connectCallback){if("function"==typeof connectCallback){this.once("connect",(()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),connectCallback()}));const isDestroyedMessage=this._isDestroyedMessage("connect");if(isDestroyedMessage)return connectCallback(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"CONN"))}let opts={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||3e4};this.options.localAddress&&(opts.localAddress=this.options.localAddress);let setupConnectionHandlers=()=>{this._connectionTimeout=setTimeout((()=>{this._onError("Connection timeout","ETIMEDOUT",!1,"CONN")}),this.options.connectionTimeout||12e4),this._socket.on("error",this._onSocketError)};return this.options.connection?(this._socket=this.options.connection,void(this.secureConnection&&!this.alreadySecured?setImmediate((()=>this._upgradeConnection((err=>{err?this._onError(new Error("Error initiating TLS - "+(err.message||err)),"ETLS",!1,"CONN"):this._onConnect()})))):setImmediate((()=>this._onConnect())))):this.options.socket?(this._socket=this.options.socket,shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket.connect(this.port,this.host,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))):this.secureConnection?(this.options.tls&&Object.keys(this.options.tls).forEach((key=>{opts[key]=this.options.tls[key]})),this.servername&&!opts.servername&&(opts.servername=this.servername),shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket=tls.connect(opts,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))):shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket=net.connect(opts,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let closeMethod="end";"init"===this.stage&&(closeMethod="destroy"),this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',closeMethod);let socket=this._socket&&this._socket.socket||this._socket;if(socket&&!socket.destroyed)try{this._socket[closeMethod]()}catch(E){}this._destroy()}login(authData,callback){const isDestroyedMessage=this._isDestroyedMessage("login");if(isDestroyedMessage)return callback(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"API"));if(this._auth=authData||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,this._authMethod||!this._auth.oauth2||this._auth.credentials?this._authMethod&&("XOAUTH2"!==this._authMethod||this._auth.oauth2)||(this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim()):this._authMethod="XOAUTH2",!("XOAUTH2"===this._authMethod||this._auth.credentials&&this._auth.credentials.user&&this._auth.credentials.pass)){if(!(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod)))return callback(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options}}if(!this.customAuth.has(this._authMethod)){switch(this._authMethod){case"XOAUTH2":return void this._handleXOauth2Token(!1,callback);case"LOGIN":return this._responseActions.push((str=>{this._actionAUTH_LOGIN_USER(str,callback)})),void this._sendCommand("AUTH LOGIN");case"PLAIN":return this._responseActions.push((str=>{this._actionAUTHComplete(str,callback)})),void this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0/* secret */","utf-8").toString("base64"));case"CRAM-MD5":return this._responseActions.push((str=>{this._actionAUTH_CRAM_MD5(str,callback)})),void this._sendCommand("AUTH CRAM-MD5")}return callback(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}{let lastResponse,handler=this.customAuth.get(this._authMethod),returned=!1,resolve=()=>{returned||(returned=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,callback(null,!0))},reject=err=>{returned||(returned=!0,callback(this._formatError(err,"EAUTH",lastResponse,"AUTH "+this._authMethod)))},handlerResponse=handler({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(cmd,done)=>{let promise;return done||(promise=new Promise(((resolve,reject)=>{done=shared.callbackPromise(resolve,reject)}))),this._responseActions.push((str=>{lastResponse=str;let codes=str.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),data={command:cmd,response:str};codes?(data.status=Number(codes[1])||0,codes[2]&&(data.code=codes[2]),data.text=str.substr(codes[0].length)):(data.text=str,data.status=0),done(null,data)})),setImmediate((()=>this._sendCommand(cmd))),promise},resolve:resolve,reject:reject});handlerResponse&&"function"==typeof handlerResponse.catch&&handlerResponse.then(resolve).catch(reject)}}send(envelope,message,done){if(!message)return done(this._formatError("Empty message","EMESSAGE",!1,"API"));const isDestroyedMessage=this._isDestroyedMessage("send message");if(isDestroyedMessage)return done(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&envelope.size>this._maxAllowedSize)return setImmediate((()=>{done(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))}));let returned=!1,callback=function(){returned||(returned=!0,done(...arguments))};"function"==typeof message.on&&message.on("error",(err=>callback(this._formatError(err,"ESTREAM",!1,"API"))));let startTime=Date.now();this._setEnvelope(envelope,((err,info)=>{if(err)return callback(err);let envelopeTime=Date.now(),stream=this._createSendStream(((err,str)=>err?callback(err):(info.envelopeTime=envelopeTime-startTime,info.messageTime=Date.now()-envelopeTime,info.messageSize=stream.outByteCount,info.response=str,callback(null,info))));"function"==typeof message.pipe?message.pipe(stream):(stream.write(message),stream.end())}))}reset(callback){this._sendCommand("RSET"),this._responseActions.push((str=>"2"!==str.charAt(0)?callback(this._formatError("Could not reset session state. response="+str,"EPROTOCOL",str,"RSET")):(this._envelope=!1,callback(null,!0))))}_onConnect(){clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed?this.close():(this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||6e5),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout((()=>{this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting&&this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")}),this.options.greetingTimeout||3e4),this._responseActions.push(this._actionGreeting),this._socket.resume())}_onData(chunk){if(this._destroyed||!chunk||!chunk.length)return;let lastline,data=(chunk||"").toString("binary"),lines=(this._remainder+data).split(/\r?\n/);this._remainder=lines.pop();for(let i=0,len=lines.length;i<len;i++)this._responseQueue.length&&(lastline=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(lastline.split("\n").pop()))?this._responseQueue[this._responseQueue.length-1]+="\n"+lines[i]:this._responseQueue.push(lines[i]);this._responseQueue.length&&(lastline=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(lastline.split("\n").pop()))||this._processResponse()}_onError(err,type,data,command){clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed||(err=this._formatError(err,type,data,command),this.logger.error(data,err.message),this.emit("error",err),this.close())}_formatError(message,type,response,command){let err;err=/Error\]$/i.test(Object.prototype.toString.call(message))?message:new Error(message),type&&"Error"!==type&&(err.code=type),response&&(err.response=response,err.message+=": "+response);let responseCode="string"==typeof response&&Number((response.match(/^\d+/)||[])[0])||!1;return responseCode&&(err.responseCode=responseCode),command&&(err.command=command),err}_onClose(){let serverResponse=!1;return this._remainder&&this._remainder.trim()&&((this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},this._remainder.replace(/\r?\n$/,"")),this.lastServerResponse=serverResponse=this._remainder.trim()),this.logger.info({tnx:"network"},"Connection closed"),this.upgrading&&!this._destroyed?this._onError(new Error("Connection closed unexpectedly"),"ETLS",serverResponse,"CONN"):[this._actionGreeting,this.close].includes(this._responseActions[0])||this._destroyed?/^[45]\d{2}\b/.test(serverResponse)?this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",serverResponse,"CONN"):void this._destroy():this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",serverResponse,"CONN")}_onEnd(){this._socket&&!this._socket.destroyed&&this._socket.destroy()}_onTimeout(){return this._onError(new Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){this._destroyed||(this._destroyed=!0,this.emit("end"))}_upgradeConnection(callback){this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout);let socketPlain=this._socket,opts={socket:this._socket,host:this.host};Object.keys(this.options.tls||{}).forEach((key=>{opts[key]=this.options.tls[key]})),this.servername&&!opts.servername&&(opts.servername=this.servername),this.upgrading=!0;try{this._socket=tls.connect(opts,(()=>(this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),socketPlain.removeListener("close",this._onSocketClose),socketPlain.removeListener("end",this._onSocketEnd),callback(null,!0))))}catch(err){return callback(err)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||6e5),this._socket.on("timeout",this._onSocketTimeout),socketPlain.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let str=this.lastServerResponse=(this._responseQueue.shift()||"").toString();if(/^\d+-/.test(str.split("\n").pop()))return;(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},str.replace(/\r?\n$/,"")),str.trim()||setImmediate((()=>this._processResponse()));let action=this._responseActions.shift();if("function"!=typeof action)return this._onError(new Error("Unexpected Response"),"EPROTOCOL",str,"CONN");action.call(this,str),setImmediate((()=>this._processResponse()))}_sendCommand(str,logStr){if(!this._destroyed){if(this._socket.destroyed)return this.close();(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"client"},(logStr||str||"").toString().replace(/\r?\n$/,"")),this._socket.write(Buffer.from(str+"\r\n","utf-8"))}}_setEnvelope(envelope,callback){let args=[],useSmtpUtf8=!1;if(this._envelope=envelope||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map((to=>(to&&to.address||to||"").toString().trim())),!this._envelope.to.length)return callback(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return callback(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.from)&&(useSmtpUtf8=!0);for(let i=0,len=this._envelope.to.length;i<len;i++){if(!this._envelope.to[i]||/[\r\n<>]/.test(this._envelope.to[i]))return callback(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[i]),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.to[i])&&(useSmtpUtf8=!0)}if(this._envelope.rcptQueue=JSON.parse(JSON.stringify(this._envelope.to||[])),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(err){return callback(this._formatError("Invalid DSN "+err.message,"EENVELOPE",!1,"API"))}this._responseActions.push((str=>{this._actionMAIL(str,callback)})),useSmtpUtf8&&this._supportedExtensions.includes("SMTPUTF8")&&(args.push("SMTPUTF8"),this._usingSmtpUtf8=!0),this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME")&&(args.push("BODY=8BITMIME"),this._using8BitMime=!0),this._envelope.size&&this._supportedExtensions.includes("SIZE")&&args.push("SIZE="+this._envelope.size),this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.ret&&args.push("RET="+shared.encodeXText(this._envelope.dsn.ret)),this._envelope.dsn.envid&&args.push("ENVID="+shared.encodeXText(this._envelope.dsn.envid))),this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(args.length?" "+args.join(" "):""))}_setDsnEnvelope(params){let ret=(params.ret||params.return||"").toString().toUpperCase()||null;if(ret)switch(ret){case"HDRS":case"HEADERS":ret="HDRS";break;case"FULL":case"BODY":ret="FULL"}if(ret&&!["FULL","HDRS"].includes(ret))throw new Error("ret: "+JSON.stringify(ret));let envid=(params.envid||params.id||"").toString()||null,notify=params.notify||null;if(notify){"string"==typeof notify&&(notify=notify.split(",")),notify=notify.map((n=>n.trim().toUpperCase()));let validNotify=["NEVER","SUCCESS","FAILURE","DELAY"];if(notify.filter((n=>!validNotify.includes(n))).length||notify.length>1&&notify.includes("NEVER"))throw new Error("notify: "+JSON.stringify(notify.join(",")));notify=notify.join(",")}let orcpt=(params.recipient||params.orcpt||"").toString()||null;return orcpt&&orcpt.indexOf(";")<0&&(orcpt="rfc822;"+orcpt),{ret:ret,envid:envid,notify:notify,orcpt:orcpt}}_getDsnRcptToArgs(){let args=[];return this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.notify&&args.push("NOTIFY="+shared.encodeXText(this._envelope.dsn.notify)),this._envelope.dsn.orcpt&&args.push("ORCPT="+shared.encodeXText(this._envelope.dsn.orcpt))),args.length?" "+args.join(" "):""}_createSendStream(callback){let logStream,dataStream=new DataStream;return this.options.lmtp?this._envelope.accepted.forEach(((recipient,i)=>{let final=i===this._envelope.accepted.length-1;this._responseActions.push((str=>{this._actionLMTPStream(recipient,final,str,callback)}))})):this._responseActions.push((str=>{this._actionSMTPStream(str,callback)})),dataStream.pipe(this._socket,{end:!1}),this.options.debug&&(logStream=new PassThrough,logStream.on("readable",(()=>{let chunk;for(;chunk=logStream.read();)this.logger.debug({tnx:"message"},chunk.toString("binary").replace(/\r?\n$/,""))})),dataStream.pipe(logStream)),dataStream.once("end",(()=>{this.logger.info({tnx:"message",inByteCount:dataStream.inByteCount,outByteCount:dataStream.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",dataStream.outByteCount,dataStream.inByteCount)})),dataStream}_actionGreeting(str){clearTimeout(this._greetingTimeout),"220"===str.substr(0,3)?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this._onError(new Error("Invalid greeting. response="+str),"EPROTOCOL",str,"CONN")}_actionLHLO(str){"2"===str.charAt(0)?this._actionEHLO(str):this._onError(new Error("Invalid LHLO. response="+str),"EPROTOCOL",str,"LHLO")}_actionEHLO(str){let match;if("421"!==str.substr(0,3)){if("2"!==str.charAt(0))return this.options.requireTLS?void this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response="+str),"ECONNECTION",str,"EHLO"):(this._responseActions.push(this._actionHELO),void this._sendCommand("HELO "+this.name));if(this._ehloLines=str.split(/\r?\n/).map((line=>line.replace(/^\d+[ -]/,"").trim())).filter((line=>line)).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(str)||this.options.requireTLS))return this._sendCommand("STARTTLS"),void this._responseActions.push(this._actionSTARTTLS);/[ -]SMTPUTF8\b/im.test(str)&&this._supportedExtensions.push("SMTPUTF8"),/[ -]DSN\b/im.test(str)&&this._supportedExtensions.push("DSN"),/[ -]8BITMIME\b/im.test(str)&&this._supportedExtensions.push("8BITMIME"),/[ -]PIPELINING\b/im.test(str)&&this._supportedExtensions.push("PIPELINING"),/[ -]AUTH\b/i.test(str)&&(this.allowsAuth=!0),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(str)&&this._supportedAuth.push("PLAIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(str)&&this._supportedAuth.push("LOGIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(str)&&this._supportedAuth.push("CRAM-MD5"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(str)&&this._supportedAuth.push("XOAUTH2"),(match=str.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))&&(this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(match[1])||0),this.emit("connect")}else this._onError(new Error("Server terminates connection. response="+str),"ECONNECTION",str,"EHLO")}_actionHELO(str){"2"===str.charAt(0)?(this.allowsAuth=!0,this.emit("connect")):this._onError(new Error("Invalid HELO. response="+str),"EPROTOCOL",str,"HELO")}_actionSTARTTLS(str){if("2"!==str.charAt(0))return this.options.opportunisticTLS?(this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect")):void this._onError(new Error("Error upgrading connection with STARTTLS"),"ETLS",str,"STARTTLS");this._upgradeConnection(((err,secured)=>{err?this._onError(new Error("Error initiating TLS - "+(err.message||err)),"ETLS",!1,"STARTTLS"):(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),secured?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this.emit("connect"))}))}_actionAUTH_LOGIN_USER(str,callback){/^334[ -]/.test(str)?(this._responseActions.push((str=>{this._actionAUTH_LOGIN_PASS(str,callback)})),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))):callback(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",str,"AUTH LOGIN"))}_actionAUTH_CRAM_MD5(str,callback){let challengeMatch=str.match(/^334\s+(.+)$/),challengeString="";if(!challengeMatch)return callback(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",str,"AUTH CRAM-MD5"));challengeString=challengeMatch[1];let base64decoded=Buffer.from(challengeString,"base64").toString("ascii"),hmacMD5=crypto.createHmac("md5",this._auth.credentials.pass);hmacMD5.update(base64decoded);let prepended=this._auth.credentials.user+" "+hmacMD5.digest("hex");this._responseActions.push((str=>{this._actionAUTH_CRAM_MD5_PASS(str,callback)})),this._sendCommand(Buffer.from(prepended).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(str,callback){if(!str.match(/^235\s+/))return callback(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",str,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,callback(null,!0)}_actionAUTH_LOGIN_PASS(str,callback){if(!/^334[ -]/.test(str))return callback(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",str,"AUTH LOGIN"));this._responseActions.push((str=>{this._actionAUTHComplete(str,callback)})),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(str,isRetry,callback){return callback||"function"!=typeof isRetry||(callback=isRetry,isRetry=!1),"334"===str.substr(0,3)?(this._responseActions.push((str=>{isRetry||"XOAUTH2"!==this._authMethod?this._actionAUTHComplete(str,!0,callback):setImmediate((()=>this._handleXOauth2Token(!0,callback)))})),void this._sendCommand("")):"2"!==str.charAt(0)?(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),callback(this._formatError("Invalid login","EAUTH",str,"AUTH "+this._authMethod))):(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,void callback(null,!0))}_actionMAIL(str,callback){let message,curRecipient;if(2!==Number(str.charAt(0)))return message=this._usingSmtpUtf8&&/^550 /.test(str)&&/[\x80-\uFFFF]/.test(this._envelope.from)?"Internationalized mailbox name not allowed":"Mail command failed",callback(this._formatError(message,"EENVELOPE",str,"MAIL FROM"));if(!this._envelope.rcptQueue.length)return callback(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));if(this._recipientQueue=[],this._supportedExtensions.includes("PIPELINING"))for(;this._envelope.rcptQueue.length;)curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs());else curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs())}_actionRCPT(str,callback){let message,err,curRecipient=this._recipientQueue.shift();if(2!==Number(str.charAt(0))?(message=this._usingSmtpUtf8&&/^553 /.test(str)&&/[\x80-\uFFFF]/.test(curRecipient)?"Internationalized mailbox name not allowed":"Recipient command failed",this._envelope.rejected.push(curRecipient),err=this._formatError(message,"EENVELOPE",str,"RCPT TO"),err.recipient=curRecipient,this._envelope.rejectedErrors.push(err)):this._envelope.accepted.push(curRecipient),this._envelope.rcptQueue.length||this._recipientQueue.length)this._envelope.rcptQueue.length&&(curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs()));else{if(!(this._envelope.rejected.length<this._envelope.to.length))return err=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",str,"RCPT TO"),err.rejected=this._envelope.rejected,err.rejectedErrors=this._envelope.rejectedErrors,callback(err);this._responseActions.push((str=>{this._actionDATA(str,callback)})),this._sendCommand("DATA")}}_actionDATA(str,callback){if(!/^[23]/.test(str))return callback(this._formatError("Data command failed","EENVELOPE",str,"DATA"));let response={accepted:this._envelope.accepted,rejected:this._envelope.rejected};this._ehloLines&&this._ehloLines.length&&(response.ehlo=this._ehloLines),this._envelope.rejectedErrors.length&&(response.rejectedErrors=this._envelope.rejectedErrors),callback(null,response)}_actionSMTPStream(str,callback){return 2!==Number(str.charAt(0))?callback(this._formatError("Message failed","EMESSAGE",str,"DATA")):callback(null,str)}_actionLMTPStream(recipient,final,str,callback){let err;if(2!==Number(str.charAt(0))){err=this._formatError("Message failed for recipient "+recipient,"EMESSAGE",str,"DATA"),err.recipient=recipient,this._envelope.rejected.push(recipient),this._envelope.rejectedErrors.push(err);for(let i=0,len=this._envelope.accepted.length;i<len;i++)this._envelope.accepted[i]===recipient&&this._envelope.accepted.splice(i,1)}if(final)return callback(null,str)}_handleXOauth2Token(isRetry,callback){this._auth.oauth2.getToken(isRetry,((err,accessToken)=>{if(err)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),callback(this._formatError(err,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push((str=>{this._actionAUTHComplete(str,isRetry,callback)})),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(accessToken),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))}))}_isDestroyedMessage(command){if(this._destroyed)return"Cannot "+command+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+command+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+command+" - smtp connection socket is already half-closed."}}_getHostname(){let defaultHostname;try{defaultHostname=os.hostname()||""}catch(err){defaultHostname="localhost"}return(!defaultHostname||defaultHostname.indexOf(".")<0)&&(defaultHostname="[127.0.0.1]"),defaultHostname.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)&&(defaultHostname="["+defaultHostname+"]"),defaultHostname}},smtpConnection}function requireXoauth2(){if(hasRequiredXoauth2)return xoauth2;hasRequiredXoauth2=1;const Stream=require$$0__default$2.default.Stream,nmfetch=requireFetch(),crypto=require$$0__default$1.default,shared=requireShared();return xoauth2=class XOAuth2 extends Stream{constructor(options,logger){if(super(),this.options=options||{},options&&options.serviceClient){if(!options.privateKey||!options.user)return void setImmediate((()=>this.emit("error",new Error('Options "privateKey" and "user" are required for service account!'))));let serviceRequestTimeout=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=serviceRequestTimeout||300}if(this.logger=shared.getLogger({logger:logger},{component:this.options.component||"OAuth2"}),this.provisionCallback="function"==typeof this.options.provisionCallback&&this.options.provisionCallback,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let timeout=Math.max(Number(this.options.timeout)||0,0);this.expires=timeout&&Date.now()+1e3*timeout||0}}getToken(renew,callback){if(!renew&&this.accessToken&&(!this.expires||this.expires>Date.now()))return callback(null,this.accessToken);let generateCallback=(...args)=>{args[0]?this.logger.error({err:args[0],tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user):this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user),callback(...args)};this.provisionCallback?this.provisionCallback(this.options.user,!!renew,((err,accessToken,expires)=>{!err&&accessToken&&(this.accessToken=accessToken,this.expires=expires||0),generateCallback(err,accessToken)})):this.generateToken(generateCallback)}updateToken(accessToken,timeout){this.accessToken=accessToken,timeout=Math.max(Number(timeout)||0,0),this.expires=timeout&&Date.now()+1e3*timeout||0,this.emit("token",{user:this.options.user,accessToken:accessToken||"",expires:this.expires})}generateToken(callback){let urlOptions,loggedUrlOptions;if(this.options.serviceClient){let token,iat=Math.floor(Date.now()/1e3),tokenData={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:iat,exp:iat+this.options.serviceRequestTimeout};try{token=this.jwtSignRS256(tokenData)}catch(err){return callback(new Error("Can't generate token. Check your auth options"))}urlOptions={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:token},loggedUrlOptions={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:tokenData}}else{if(!this.options.refreshToken)return callback(new Error("Can't create new access token for user"));urlOptions={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},loggedUrlOptions={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.keys(this.options.customParams).forEach((key=>{urlOptions[key]=this.options.customParams[key],loggedUrlOptions[key]=this.options.customParams[key]})),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(loggedUrlOptions)),this.postRequest(this.options.accessUrl,urlOptions,this.options,((error,body)=>{let data;if(error)return callback(error);try{data=JSON.parse(body.toString())}catch(E){return callback(E)}if(!data||"object"!=typeof data)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(body||"").toString()),callback(new Error("Invalid authentication response"));let logData={};if(Object.keys(data).forEach((key=>{logData[key]="access_token"!==key?data[key]:(data[key]||"").toString().substr(0,6)+"..."})),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(logData)),data.error){let errorMessage=data.error;return data.error_description&&(errorMessage+=": "+data.error_description),data.error_uri&&(errorMessage+=" ("+data.error_uri+")"),callback(new Error(errorMessage))}return data.access_token?(this.updateToken(data.access_token,data.expires_in),callback(null,this.accessToken)):callback(new Error("No access token"))}))}buildXOAuth2Token(accessToken){let authData=["user="+(this.options.user||""),"auth=Bearer "+(accessToken||this.accessToken),"",""];return Buffer.from(authData.join(""),"utf-8").toString("base64")}postRequest(url,payload,params,callback){let returned=!1,chunks=[],chunklen=0,req=nmfetch(url,{method:"post",headers:params.customHeaders,body:payload,allowErrorResponse:!0});req.on("readable",(()=>{let chunk;for(;null!==(chunk=req.read());)chunks.push(chunk),chunklen+=chunk.length})),req.once("error",(err=>{if(!returned)return returned=!0,callback(err)})),req.once("end",(()=>{if(!returned)return returned=!0,callback(null,Buffer.concat(chunks,chunklen))}))}toBase64URL(data){return"string"==typeof data&&(data=Buffer.from(data)),data.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(payload){payload=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(payload)].map((val=>this.toBase64URL(val))).join(".");let signature=crypto.createSign("RSA-SHA256").update(payload).sign(this.options.privateKey);return payload+"."+this.toBase64URL(signature)}},xoauth2}var wellKnown,hasRequiredWellKnown,smtpPool,hasRequiredSmtpPool,smtpTransport,hasRequiredSmtpTransport,sendmailTransport,hasRequiredSendmailTransport,streamTransport,hasRequiredStreamTransport,jsonTransport,hasRequiredJsonTransport,sesTransport,hasRequiredSesTransport,hasRequiredNodemailer,require$$0={126:{host:"smtp.126.com",port:465,secure:!0},163:{host:"smtp.163.com",port:465,secure:!0},"1und1":{host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:{domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AOL:{domains:["aol.com"],host:"smtp.aol.com",port:587},Bluewin:{host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},DebugMail:{host:"debugmail.io",port:25},DynectEmail:{aliases:["Dynect"],host:"smtp.dynect.net",port:25},Ethereal:{aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Forward Email":{aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},"Feishu Mail":{aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},GandiMail:{aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},Godaddy:{host:"smtpout.secureserver.net",port:25},GodaddyAsia:{host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{host:"smtp.europe.secureserver.net",port:25},"hot.ee":{host:"mail.hot.ee"},Hotmail:{aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},Loopia:{host:"mailcluster.loopia.se",port:465},"mail.ee":{host:"smtp.mail.ee"},"Mail.ru":{host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{port:1025,ignoreTLS:!0},Mailgun:{host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{host:"in.mailjet.com",port:587},Mailosaur:{host:"mailosaur.io",port:25},Mailtrap:{host:"live.smtp.mailtrap.io",port:587},Mandrill:{host:"smtp.mandrillapp.com",port:587},Naver:{host:"smtp.naver.com",port:587},One:{host:"send.one.com",port:465,secure:!0},OpenMailBox:{aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{host:"smtp.office365.com",port:587,secure:!1},OhMySMTP:{host:"smtp.ohmysmtp.com",port:587,secure:!1},Postmark:{aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},"qiye.aliyun":{host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},SendCloud:{host:"smtp.sendcloud.net",port:2525},SendGrid:{host:"smtp.sendgrid.net",port:587},SendinBlue:{aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{host:"smtp-pulse.com",port:465,secure:!0},SES:{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},Sparkpost:{aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{host:"smtp.tipimail.com",port:587},Yahoo:{domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zoho:{host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}};function requireWellKnown(){if(hasRequiredWellKnown)return wellKnown;hasRequiredWellKnown=1;const services=require$$0,normalized={};function normalizeKey(key){return key.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function normalizeService(service){let filter=["domains","aliases"],response={};return Object.keys(service).forEach((key=>{filter.indexOf(key)<0&&(response[key]=service[key])})),response}return Object.keys(services).forEach((key=>{let service=services[key];normalized[normalizeKey(key)]=normalizeService(service),[].concat(service.aliases||[]).forEach((alias=>{normalized[normalizeKey(alias)]=normalizeService(service)})),[].concat(service.domains||[]).forEach((domain=>{normalized[normalizeKey(domain)]=normalizeService(service)}))})),wellKnown=function(key){return key=normalizeKey(key.split("@").pop()),normalized[key]||!1}}function requireSmtpPool(){if(hasRequiredSmtpPool)return smtpPool;hasRequiredSmtpPool=1;const EventEmitter=require$$0__default.default,PoolResource=function requirePoolResource(){if(hasRequiredPoolResource)return poolResource;hasRequiredPoolResource=1;const SMTPConnection=requireSmtpConnection(),assign=requireShared().assign,XOAuth2=requireXoauth2(),EventEmitter=require$$0__default.default;return poolResource=class PoolResource extends EventEmitter{constructor(pool){if(super(),this.pool=pool,this.options=pool.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let oauth2=new XOAuth2(this.options.auth,this.logger);oauth2.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||oauth2.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:oauth2,method:"XOAUTH2"},oauth2.on("token",(token=>this.pool.mailer.emit("token",token))),oauth2.on("error",(err=>this.emit("error",err)));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(callback){this.pool.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let returned=!1,options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]}))),this.connection=new SMTPConnection(options),this.connection.once("error",(err=>{if(this.emit("error",err),!returned)return returned=!0,callback(err)})),this.connection.once("end",(()=>{if(this.close(),returned)return;returned=!0;let timer=setTimeout((()=>{if(returned)return;let err=new Error("Unexpected socket close");this.connection&&this.connection._socket&&this.connection._socket.upgrading&&(err.code="ETLS"),callback(err)}),1e3);try{timer.unref()}catch(E){}})),this.connection.connect((()=>{if(!returned)return this.auth&&(this.connection.allowsAuth||options.forceAuth)?void this.connection.login(this.auth,(err=>{if(!returned){if(returned=!0,err)return this.connection.close(),this.emit("error",err),callback(err);this._connected=!0,callback(null,!0)}})):(returned=!0,this._connected=!0,callback(null,!0))}))}))}send(mail,callback){if(!this._connected)return this.connect((err=>err?callback(err):this.send(mail,callback)));let envelope=mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId,cid:this.id},"Sending message %s using #%s to <%s>",messageId,this.id,recipients.join(", ")),mail.data.dsn&&(envelope.dsn=mail.data.dsn),this.connection.send(envelope,mail.message.createReadStream(),((err,info)=>{if(this.messages++,err)return this.connection.close(),this.emit("error",err),callback(err);info.envelope={from:envelope.from,to:envelope.to},info.messageId=messageId,setImmediate((()=>{let err;this.messages>=this.options.maxMessages?(err=new Error("Resource exhausted"),err.code="EMAXLIMIT",this.connection.close(),this.emit("error",err)):this.pool._checkRateLimit((()=>{this.available=!0,this.emit("available")}))})),callback(null,info)}))}close(){this._connected=!1,this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.connection&&this.connection.close(),this.emit("close")}},poolResource}(),SMTPConnection=requireSmtpConnection(),wellKnown=requireWellKnown(),shared=requireShared(),packageData=require$$9;return smtpPool=class SMTPPool extends EventEmitter{constructor(options){let urlData;super(),"string"==typeof(options=options||{})&&(options={url:options});let service=options.service;"function"==typeof options.getSocket&&(this.getSocket=options.getSocket),options.url&&(urlData=shared.parseConnectionUrl(options.url),service=service||urlData.service),this.options=shared.assign(!1,options,urlData,service&&wellKnown(service)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-pool"});let connection=new SMTPConnection(this.options);this.name="SMTP (pool)",this.version=packageData.version+"[client:"+connection.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1e3,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate((()=>{this.idling&&this.emit("idle")}))}getSocket(options,callback){return setImmediate((()=>callback(null,!1)))}send(mail,callback){return!this._closed&&(this._queue.push({mail:mail,requeueAttempts:0,callback:callback}),this.idling&&this._queue.length>=this.options.maxConnections&&(this.idling=!1),setImmediate((()=>this._processMessages())),!0)}close(){let connection,len=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!len&&!this._queue.length)return;for(let i=len-1;i>=0;i--)this._connections[i]&&this._connections[i].available&&(connection=this._connections[i],connection.close(),this.logger.info({tnx:"connection",cid:connection.id,action:"removed"},"Connection #%s removed",connection.id));if(len&&!this._connections.length&&this.logger.debug({tnx:"connection"},"All connections removed"),!this._queue.length)return;let invokeCallbacks=()=>{if(!this._queue.length)return void this.logger.debug({tnx:"connection"},"Pending queue entries cleared");let entry=this._queue.shift();if(entry&&"function"==typeof entry.callback)try{entry.callback(new Error("Connection pool was closed"))}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}setImmediate(invokeCallbacks)};setImmediate(invokeCallbacks)}_processMessages(){let connection,i,len;if(this._closed)return;if(!this._queue.length)return void(this.idling||(this.idling=!0,this.emit("idle")));for(i=0,len=this._connections.length;i<len;i++)if(this._connections[i].available){connection=this._connections[i];break}if(!connection&&this._connections.length<this.options.maxConnections&&(connection=this._createConnection()),!connection)return void(this.idling=!1);!this.idling&&this._queue.length<this.options.maxConnections&&(this.idling=!0,this.emit("idle"));let entry=connection.queueEntry=this._queue.shift();entry.messageId=(connection.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),connection.available=!1,this.logger.debug({tnx:"pool",cid:connection.id,messageId:entry.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",entry.messageId,connection.id,connection.messages+1),this._rateLimit.limit&&(this._rateLimit.counter++,this._rateLimit.checkpoint||(this._rateLimit.checkpoint=Date.now())),connection.send(entry.mail,((err,info)=>{if(entry===connection.queueEntry){try{entry.callback(err,info)}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}}))}_createConnection(){let connection=new PoolResource(this);return connection.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:connection.id,action:"conection"},"Created new pool resource #%s",connection.id),connection.on("available",(()=>{this.logger.debug({tnx:"connection",cid:connection.id,action:"available"},"Connection #%s became available",connection.id),this._closed?this.close():this._processMessages()})),connection.once("error",(err=>{if("EMAXLIMIT"!==err.code?this.logger.error({err:err,tnx:"pool",cid:connection.id},"Pool Error for #%s: %s",connection.id,err.message):this.logger.debug({tnx:"pool",cid:connection.id,action:"maxlimit"},"Max messages limit exchausted for #%s",connection.id),connection.queueEntry){try{connection.queueEntry.callback(err)}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}this._removeConnection(connection),this._continueProcessing()})),connection.once("close",(()=>{this.logger.info({tnx:"connection",cid:connection.id,action:"closed"},"Connection #%s was closed",connection.id),this._removeConnection(connection),connection.queueEntry?setTimeout((()=>{connection.queueEntry&&(this._shouldRequeuOnConnectionClose(connection.queueEntry)?this._requeueEntryOnConnectionClose(connection):this._failDeliveryOnConnectionClose(connection)),this._continueProcessing()}),50):this._continueProcessing()})),this._connections.push(connection),connection}_shouldRequeuOnConnectionClose(queueEntry){return void 0===this.options.maxRequeues||this.options.maxRequeues<0||queueEntry.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(connection){if(connection.queueEntry&&connection.queueEntry.callback){try{connection.queueEntry.callback(new Error("Reached maximum number of retries after connection was closed"))}catch(E){this.logger.error({err:E,tnx:"callback",messageId:connection.queueEntry.messageId,cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}}_requeueEntryOnConnectionClose(connection){connection.queueEntry.requeueAttempts=connection.queueEntry.requeueAttempts+1,this.logger.debug({tnx:"pool",cid:connection.id,messageId:connection.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",connection.queueEntry.messageId,connection.id,connection.queueEntry.requeueAttempts),this._queue.unshift(connection.queueEntry),connection.queueEntry=!1}_continueProcessing(){this._closed?this.close():setTimeout((()=>this._processMessages()),100)}_removeConnection(connection){let index=this._connections.indexOf(connection);-1!==index&&this._connections.splice(index,1)}_checkRateLimit(callback){if(!this._rateLimit.limit)return callback();let now=Date.now();return this._rateLimit.counter<this._rateLimit.limit?callback():(this._rateLimit.waiting.push(callback),this._rateLimit.checkpoint<=now-this._rateLimit.delta?this._clearRateLimit():void(this._rateLimit.timeout||(this._rateLimit.timeout=setTimeout((()=>this._clearRateLimit()),this._rateLimit.delta-(now-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=now)))}_clearRateLimit(){for(clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;this._rateLimit.waiting.length;){let cb=this._rateLimit.waiting.shift();setImmediate(cb)}}isIdle(){return this.idling}verify(callback){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));let auth=new PoolResource(this).auth;return this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options),returned=!1;connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(!returned)return returned=!0,callback(new Error("Connection closed"))}));let finalize=()=>{if(!returned)return returned=!0,connection.quit(),callback(null,!0)};connection.connect((()=>{if(!returned)if(auth&&(connection.allowsAuth||options.forceAuth))connection.login(auth,(err=>{if(!returned)return err?(returned=!0,connection.close(),callback(err)):void finalize()}));else{if(!auth&&connection.allowsAuth&&options.forceAuth){let err=new Error("Authentication info was not provided");return err.code="NoAuth",returned=!0,connection.close(),callback(err)}finalize()}}))})),promise}},smtpPool}function requireSesTransport(){if(hasRequiredSesTransport)return sesTransport;hasRequiredSesTransport=1;const EventEmitter=require$$0__default.default,packageData=require$$9,shared=requireShared(),LeWindows=requireLeWindows();return sesTransport=class SESTransport extends EventEmitter{constructor(options){super(),options=options||{},this.options=options||{},this.ses=this.options.SES,this.name="SESTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"ses-transport"}),this.maxConnections=Number(this.options.maxConnections)||1/0,this.connections=0,this.sendingRate=Number(this.options.sendingRate)||1/0,this.sendingRateTTL=null,this.rateInterval=1e3,this.rateMessages=[],this.pending=[],this.idling=!0,setImmediate((()=>{this.idling&&this.emit("idle")}))}send(mail,callback){return this.connections>=this.maxConnections?(this.idling=!1,this.pending.push({mail:mail,callback:callback})):this._checkSendingRate()?void this._send(mail,((...args)=>{setImmediate((()=>callback(...args))),this._sent()})):(this.idling=!1,this.pending.push({mail:mail,callback:callback}))}_checkRatedQueue(){if(this.connections>=this.maxConnections||!this._checkSendingRate())return;if(!this.pending.length)return void(this.idling||(this.idling=!0,this.emit("idle")));let next=this.pending.shift();this._send(next.mail,((...args)=>{setImmediate((()=>next.callback(...args))),this._sent()}))}_checkSendingRate(){clearTimeout(this.sendingRateTTL);let now=Date.now(),oldest=!1;for(let i=this.rateMessages.length-1;i>=0;i--)this.rateMessages[i].ts>=now-this.rateInterval&&(!oldest||this.rateMessages[i].ts<oldest)&&(oldest=this.rateMessages[i].ts),this.rateMessages[i].ts<now-this.rateInterval&&!this.rateMessages[i].pending&&this.rateMessages.splice(i,1);if(this.rateMessages.length<this.sendingRate)return!0;let delay=Math.max(oldest+1001,now+20);this.sendingRateTTL=setTimeout((()=>this._checkRatedQueue()),now-delay);try{this.sendingRateTTL.unref()}catch(E){}return!1}_sent(){this.connections--,this._checkRatedQueue()}isIdle(){return this.idling}_send(mail,callback){let statObject={ts:Date.now(),pending:!0};this.connections++,this.rateMessages.push(statObject);let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", "));setImmediate((()=>(next=>{mail.data._dkim||(mail.data._dkim={}),mail.data._dkim.skipFields&&"string"==typeof mail.data._dkim.skipFields?mail.data._dkim.skipFields+=":date:message-id":mail.data._dkim.skipFields="date:message-id";let sourceStream=mail.message.createReadStream(),stream=sourceStream.pipe(new LeWindows),chunks=[],chunklen=0;stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),sourceStream.once("error",(err=>stream.emit("error",err))),stream.once("error",(err=>{next(err)})),stream.once("end",(()=>next(null,Buffer.concat(chunks,chunklen))))})(((err,raw)=>{if(err)return this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message),statObject.pending=!1,callback(err);let sesMessage={RawMessage:{Data:raw},Source:envelope.from,Destinations:envelope.to};Object.keys(mail.data.ses||{}).forEach((key=>{sesMessage[key]=mail.data.ses[key]}));let ses=(this.ses.aws?this.ses.ses:this.ses)||{},aws=this.ses.aws||{};var cb;cb=(err,region)=>{let sendPromise;!err&&region||(region="us-east-1"),sendPromise="function"==typeof ses.send&&aws.SendRawEmailCommand?ses.send(new aws.SendRawEmailCommand(sesMessage)):ses.sendRawEmail(sesMessage).promise(),sendPromise.then((data=>{"us-east-1"===region&&(region="email"),statObject.pending=!1,callback(null,{envelope:{from:envelope.from,to:envelope.to},messageId:"<"+data.MessageId+(/@/.test(data.MessageId)?"":"@"+region+".amazonses.com")+">",response:data.MessageId,raw:raw})})).catch((err=>{this.logger.error({err:err,tnx:"send"},"Send error for %s: %s",messageId,err.message),statObject.pending=!1,callback(err)}))},ses.config&&"function"==typeof ses.config.region?ses.config.region().then((region=>cb(null,region))).catch((err=>cb(err))):cb(null,ses.config&&ses.config.region||"us-east-1")}))))}verify(callback){let promise,ses=(this.ses.aws?this.ses.ses:this.ses)||{},aws=this.ses.aws||{};const sesMessage={RawMessage:{Data:"From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid"},Source:"invalid@invalid",Destinations:["invalid@invalid"]};callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));const cb=err=>err&&"InvalidParameterValue"!==(err.code||err.Code)?callback(err):callback(null,!0);return"function"==typeof ses.send&&aws.SendRawEmailCommand?(sesMessage.RawMessage.Data=Buffer.from(sesMessage.RawMessage.Data),ses.send(new aws.SendRawEmailCommand(sesMessage),cb)):ses.sendRawEmail(sesMessage,cb),promise}},sesTransport}var nodemailerExports=function requireNodemailer(){if(hasRequiredNodemailer)return nodemailer$1;hasRequiredNodemailer=1;const Mailer=requireMailer(),shared=requireShared(),SMTPPool=requireSmtpPool(),SMTPTransport=function requireSmtpTransport(){if(hasRequiredSmtpTransport)return smtpTransport;hasRequiredSmtpTransport=1;const EventEmitter=require$$0__default.default,SMTPConnection=requireSmtpConnection(),wellKnown=requireWellKnown(),shared=requireShared(),XOAuth2=requireXoauth2(),packageData=require$$9;return smtpTransport=class SMTPTransport extends EventEmitter{constructor(options){let urlData;super(),"string"==typeof(options=options||{})&&(options={url:options});let service=options.service;"function"==typeof options.getSocket&&(this.getSocket=options.getSocket),options.url&&(urlData=shared.parseConnectionUrl(options.url),service=service||urlData.service),this.options=shared.assign(!1,options,urlData,service&&wellKnown(service)),this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-transport"});let connection=new SMTPConnection(this.options);this.name="SMTP",this.version=packageData.version+"[client:"+connection.version+"]",this.options.auth&&(this.auth=this.getAuth({}))}getSocket(options,callback){return setImmediate((()=>callback(null,!1)))}getAuth(authOpts){if(!authOpts)return this.auth;let hasAuth=!1,authData={};if(this.options.auth&&"object"==typeof this.options.auth&&Object.keys(this.options.auth).forEach((key=>{hasAuth=!0,authData[key]=this.options.auth[key]})),authOpts&&"object"==typeof authOpts&&Object.keys(authOpts).forEach((key=>{hasAuth=!0,authData[key]=authOpts[key]})),!hasAuth)return!1;if("OAUTH2"===(authData.type||"").toString().toUpperCase()){if(!authData.service&&!authData.user)return!1;let oauth2=new XOAuth2(authData,this.logger);return oauth2.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||oauth2.provisionCallback,oauth2.on("token",(token=>this.mailer.emit("token",token))),oauth2.on("error",(err=>this.emit("error",err))),{type:"OAUTH2",user:authData.user,oauth2:oauth2,method:"XOAUTH2"}}return{type:(authData.type||"").toString().toUpperCase()||"LOGIN",user:authData.user,credentials:{user:authData.user||"",pass:authData.pass,options:authData.options},method:(authData.method||"").trim().toUpperCase()||this.options.authMethod||!1}}send(mail,callback){this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let returned=!1,options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options);connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(returned)return;let timer=setTimeout((()=>{if(returned)return;returned=!0;let err=new Error("Unexpected socket close");connection&&connection._socket&&connection._socket.upgrading&&(err.code="ETLS"),callback(err)}),1e3);try{timer.unref()}catch(E){}}));let sendMessage=()=>{let envelope=mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),mail.data.dsn&&(envelope.dsn=mail.data.dsn),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", ")),connection.send(envelope,mail.message.createReadStream(),((err,info)=>{if(returned=!0,connection.close(),err)return this.logger.error({err:err,tnx:"send"},"Send error for %s: %s",messageId,err.message),callback(err);info.envelope={from:envelope.from,to:envelope.to},info.messageId=messageId;try{return callback(null,info)}catch(E){this.logger.error({err:E,tnx:"callback"},"Callback error for %s: %s",messageId,E.message)}}))};connection.connect((()=>{if(returned)return;let auth=this.getAuth(mail.data.auth);auth&&(connection.allowsAuth||options.forceAuth)?connection.login(auth,(err=>{if(auth&&auth!==this.auth&&auth.oauth2&&auth.oauth2.removeAllListeners(),!returned)return err?(returned=!0,connection.close(),callback(err)):void sendMessage()})):sendMessage()}))}))}verify(callback){let promise;return callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options),returned=!1;connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(!returned)return returned=!0,callback(new Error("Connection closed"))}));let finalize=()=>{if(!returned)return returned=!0,connection.quit(),callback(null,!0)};connection.connect((()=>{if(returned)return;let authData=this.getAuth({});if(authData&&(connection.allowsAuth||options.forceAuth))connection.login(authData,(err=>{if(!returned)return err?(returned=!0,connection.close(),callback(err)):void finalize()}));else{if(!authData&&connection.allowsAuth&&options.forceAuth){let err=new Error("Authentication info was not provided");return err.code="NoAuth",returned=!0,connection.close(),callback(err)}finalize()}}))})),promise}close(){this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.emit("close")}},smtpTransport}(),SendmailTransport=function requireSendmailTransport(){if(hasRequiredSendmailTransport)return sendmailTransport;hasRequiredSendmailTransport=1;const spawn=require$$0__default$6.default.spawn,packageData=require$$9,shared=requireShared();return sendmailTransport=class SendmailTransport{constructor(options){options=options||{},this._spawn=spawn,this.options=options||{},this.name="Sendmail",this.version=packageData.version,this.path="sendmail",this.args=!1,this.winbreak=!1,this.logger=shared.getLogger(this.options,{component:this.options.component||"sendmail"}),options&&("string"==typeof options?this.path=options:"object"==typeof options&&(options.path&&(this.path=options.path),Array.isArray(options.args)&&(this.args=options.args),this.winbreak=["win","windows","dos","\r\n"].includes((options.newline||"").toString().toLowerCase())))}send(mail,done){mail.message.keepBcc=!0;let args,sendmail,returned,envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId();if([].concat(envelope.from||[]).concat(envelope.to||[]).some((addr=>/^-/.test(addr))))return done(new Error("Can not send mail. Invalid envelope addresses."));args=this.args?["-i"].concat(this.args).concat(envelope.to):["-i"].concat(envelope.from?["-f",envelope.from]:[]).concat(envelope.to);let callback=err=>{if(!returned)return returned=!0,"function"==typeof done?err?done(err):done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,response:"Messages queued for delivery"}):void 0};try{sendmail=this._spawn(this.path,args)}catch(E){return this.logger.error({err:E,tnx:"spawn",messageId:messageId},"Error occurred while spawning sendmail. %s",E.message),callback(E)}if(!sendmail)return callback(new Error("sendmail was not found"));{sendmail.on("error",(err=>{this.logger.error({err:err,tnx:"spawn",messageId:messageId},"Error occurred when sending message %s. %s",messageId,err.message),callback(err)})),sendmail.once("exit",(code=>{if(!code)return callback();let err;err=127===code?new Error("Sendmail command not found, process exited with code "+code):new Error("Sendmail exited with code "+code),this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error sending message %s to sendmail. %s",messageId,err.message),callback(err)})),sendmail.once("close",callback),sendmail.stdin.on("error",(err=>{this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error occurred when piping message %s to sendmail. %s",messageId,err.message),callback(err)}));let recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", "));let sourceStream=mail.message.createReadStream();sourceStream.once("error",(err=>{this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error occurred when generating message %s. %s",messageId,err.message),sendmail.kill("SIGINT"),callback(err)})),sourceStream.pipe(sendmail.stdin)}}},sendmailTransport}(),StreamTransport=function requireStreamTransport(){if(hasRequiredStreamTransport)return streamTransport;hasRequiredStreamTransport=1;const packageData=require$$9,shared=requireShared();return streamTransport=class StreamTransport{constructor(options){options=options||{},this.options=options||{},this.name="StreamTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos","\r\n"].includes((options.newline||"").toString().toLowerCase())}send(mail,done){mail.message.keepBcc=!0;let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s> using %s line breaks",messageId,recipients.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate((()=>{let stream;try{stream=mail.message.createReadStream()}catch(E){return this.logger.error({err:E,tnx:"send",messageId:messageId},"Creating send stream failed for %s. %s",messageId,E.message),done(E)}if(!this.options.buffer)return stream.once("error",(err=>{this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message)})),done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,message:stream});let chunks=[],chunklen=0;stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),stream.once("error",(err=>(this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message),done(err)))),stream.on("end",(()=>done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,message:Buffer.concat(chunks,chunklen)})))}))}},streamTransport}(),JSONTransport=function requireJsonTransport(){if(hasRequiredJsonTransport)return jsonTransport;hasRequiredJsonTransport=1;const packageData=require$$9,shared=requireShared();return jsonTransport=class JSONTransport{constructor(options){options=options||{},this.options=options||{},this.name="JSONTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"json-transport"})}send(mail,done){mail.message.keepBcc=!0;let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Composing JSON structure of %s to <%s>",messageId,recipients.join(", ")),setImmediate((()=>{mail.normalize(((err,data)=>err?(this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed building JSON structure for %s. %s",messageId,err.message),done(err)):(delete data.envelope,delete data.normalizedHeaders,done(null,{envelope:envelope,messageId:messageId,message:this.options.skipEncoding?data:JSON.stringify(data)}))))}))}},jsonTransport}(),SESTransport=requireSesTransport(),nmfetch=requireFetch(),packageData=require$$9,ETHEREAL_API=(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),ETHEREAL_WEB=(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),ETHEREAL_API_KEY=(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,"")||null,ETHEREAL_CACHE=["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase());let testAccount=!1;return nodemailer$1.createTransport=function(transporter,defaults){let urlConfig,options,mailer;return("object"==typeof transporter&&"function"!=typeof transporter.send||"string"==typeof transporter&&/^(smtps?|direct):/i.test(transporter))&&(options=(urlConfig="string"==typeof transporter?transporter:transporter.url)?shared.parseConnectionUrl(urlConfig):transporter,transporter=options.pool?new SMTPPool(options):options.sendmail?new SendmailTransport(options):options.streamTransport?new StreamTransport(options):options.jsonTransport?new JSONTransport(options):options.SES?new SESTransport(options):new SMTPTransport(options)),mailer=new Mailer(transporter,options,defaults),mailer},nodemailer$1.createTestAccount=function(apiUrl,callback){let promise;if(callback||"function"!=typeof apiUrl||(callback=apiUrl,apiUrl=!1),callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),ETHEREAL_CACHE&&testAccount)return setImmediate((()=>callback(null,testAccount))),promise;apiUrl=apiUrl||ETHEREAL_API;let chunks=[],chunklen=0,requestHeaders={},requestBody={requestor:packageData.name,version:packageData.version};ETHEREAL_API_KEY&&(requestHeaders.Authorization="Bearer "+ETHEREAL_API_KEY);let req=nmfetch(apiUrl+"/user",{contentType:"application/json",method:"POST",headers:requestHeaders,body:Buffer.from(JSON.stringify(requestBody))});return req.on("readable",(()=>{let chunk;for(;null!==(chunk=req.read());)chunks.push(chunk),chunklen+=chunk.length})),req.once("error",(err=>callback(err))),req.once("end",(()=>{let data,err,res=Buffer.concat(chunks,chunklen);try{data=JSON.parse(res.toString())}catch(E){err=E}return err?callback(err):"success"!==data.status||data.error?callback(new Error(data.error||"Request failed")):(delete data.status,testAccount=data,void callback(null,testAccount))})),promise},nodemailer$1.getTestMessageUrl=function(info){if(!info||!info.response)return!1;let infoProps=new Map;return info.response.replace(/\[([^\]]+)\]$/,((m,props)=>{props.replace(/\b([A-Z0-9]+)=([^\s]+)/g,((m,key,value)=>{infoProps.set(key,value)}))})),!(!infoProps.has("STATUS")||!infoProps.has("MSGID"))&&(testAccount.web||ETHEREAL_WEB)+"/message/"+infoProps.get("MSGID")},nodemailer$1}(),nodemailer=getDefaultExportFromCjs(nodemailerExports);class MailController{constructor(environment){this.environment=environment}createTransporter(email){const{host:host,port:port,secure:secure,auth:{user:user,pass:pass}}=email;return nodemailer.createTransport({host:host,port:port,secure:secure,auth:{user:user,pass:pass}})}mountMail(email,mailParams){const{emailParams:{from:from,to:to}}=email,{message:message,subject:subject,attachments:attachments}=mailParams,attachmentsWithVerifiedFileName=attachments?.map((attachment=>(attachment.filename||(attachment.filename=!1),attachment)));return{from:from,to:to,subject:subject,html:message,attachments:attachmentsWithVerifiedFileName}}sendEmail(mailParams){try{const{email:email}=this.environment.getConfig();if(!email)throw new Error('Email não configurado. Para utilizar o envio de e-mail certifique-se de passar as configurações corretas para o método "NFE_LoadEnvironment".');const transporter=this.createTransporter(email),mailOptions=this.mountMail(email,mailParams);transporter.sendMail(mailOptions,((error,info)=>{if(error)throw console.log(error),new Error(error)}))}catch(error){throw new Error(`Erro ao enviar e-mail: ${error.message}`)}}}class NFERetornoAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFERetornoAutorizacao",axios)}gerarXml(data){try{const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe",versao:"4.00"},tpAmb:ambiente,nRec:data};return this.xmlBuilder.gerarXml(xmlObject,"consReciNFe")}catch(error){throw new Error(error.message)}}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async getRetornoRecibo(nRec,xmlNFe){try{const xmlConsulta=this.gerarXml(nRec),{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const{protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno.data);if(!protNFe)throw new Error("Não foi possível encontrar a tag 'protNFe'. Talvez a NFe ainda não tenha sido processada.");return this.getXmlRetornoAutorizacao(protNFe,xmlNFe)}catch(error){throw new Error(error.message)}}getXmlRetornoAutorizacao(protNFe,xmlNFe){try{const XMLs=[];for(let i=0;i<protNFe.length;i++){const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},_:"[XML]"};let xml=this.xmlBuilder.gerarXml(baseXML,"nfeProc");const formatedProtNFe=protNFe,xmlCompleto=xmlNFe.find((item=>-1!==item.indexOf(formatedProtNFe[i].infProt[0].chNFe[0])));if(xmlCompleto){const protTag=this.xmlBuilder.gerarXml(protNFe[i],"protNFe"),xmlFinal=[xmlCompleto];xmlFinal.push(protTag),xml=xml.replace("[XML]",xmlFinal.join("")),xml=`<?xml version="1.0" encoding="UTF-8"?>${xml}`,XMLs.push(xml)}}return{success:!0,message:"xMotivo",data:XMLs}}catch(error){throw new Error(error.message)}}async getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:xmlNFe}){try{if(1===tipoEmissao&&protNFe)return this.getXmlRetornoAutorizacao(protNFe,xmlNFe);if(0===tipoEmissao&&nRec)return this.getRetornoRecibo(nRec,xmlNFe);throw new Error("Não foi possível buscar o retorno da autorização.")}catch(error){throw new Error(error.message)}}}class NFEAutorizacaoHandler{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}}var hasRequiredCrypt,charenc_1,hasRequiredCharenc,hasRequiredSha1,sha1$1={exports:{}},crypt={exports:{}};function requireCrypt(){return hasRequiredCrypt||(hasRequiredCrypt=1,base64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",crypt$1={rotl:function(n,b){return n<<b|n>>>32-b},rotr:function(n,b){return n<<32-b|n>>>b},endian:function(n){if(n.constructor==Number)return 16711935&crypt$1.rotl(n,8)|4278255360&crypt$1.rotl(n,24);for(var i=0;i<n.length;i++)n[i]=crypt$1.endian(n[i]);return n},randomBytes:function(n){for(var bytes=[];n>0;n--)bytes.push(Math.floor(256*Math.random()));return bytes},bytesToWords:function(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes:function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},bytesToHex:function(bytes){for(var hex=[],i=0;i<bytes.length;i++)hex.push((bytes[i]>>>4).toString(16)),hex.push((15&bytes[i]).toString(16));return hex.join("")},hexToBytes:function(hex){for(var bytes=[],c=0;c<hex.length;c+=2)bytes.push(parseInt(hex.substr(c,2),16));return bytes},bytesToBase64:function(bytes){for(var base64=[],i=0;i<bytes.length;i+=3)for(var triplet=bytes[i]<<16|bytes[i+1]<<8|bytes[i+2],j=0;j<4;j++)8*i+6*j<=8*bytes.length?base64.push(base64map.charAt(triplet>>>6*(3-j)&63)):base64.push("=");return base64.join("")},base64ToBytes:function(base64){base64=base64.replace(/[^A-Z0-9+\/]/gi,"");for(var bytes=[],i=0,imod4=0;i<base64.length;imod4=++i%4)0!=imod4&&bytes.push((base64map.indexOf(base64.charAt(i-1))&Math.pow(2,-2*imod4+8)-1)<<2*imod4|base64map.indexOf(base64.charAt(i))>>>6-2*imod4);return bytes}},crypt.exports=crypt$1),crypt.exports;var base64map,crypt$1}function requireCharenc(){if(hasRequiredCharenc)return charenc_1;hasRequiredCharenc=1;var charenc={utf8:{stringToBytes:function(str){return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)))},bytesToString:function(bytes){return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)))}},bin:{stringToBytes:function(str){for(var bytes=[],i=0;i<str.length;i++)bytes.push(255&str.charCodeAt(i));return bytes},bytesToString:function(bytes){for(var str=[],i=0;i<bytes.length;i++)str.push(String.fromCharCode(bytes[i]));return str.join("")}}};return charenc_1=charenc}var sha1Exports=function requireSha1(){return hasRequiredSha1||(hasRequiredSha1=1,function(){var crypt=requireCrypt(),utf8=requireCharenc().utf8,bin=requireCharenc().bin,api=function(message,options){var digestbytes=crypt.wordsToBytes(function(message){message.constructor==String?message=utf8.stringToBytes(message):"undefined"!=typeof Buffer&&"function"==typeof Buffer.isBuffer&&Buffer.isBuffer(message)?message=Array.prototype.slice.call(message,0):Array.isArray(message)||(message=message.toString());var m=crypt.bytesToWords(message),l=8*message.length,w=[],H0=1732584193,H1=-271733879,H2=-1732584194,H3=271733878,H4=-1009589776;m[l>>5]|=128<<24-l%32,m[15+(l+64>>>9<<4)]=l;for(var i=0;i<m.length;i+=16){for(var a=H0,b=H1,c=H2,d=H3,e=H4,j=0;j<80;j++){if(j<16)w[j]=m[i+j];else{var n=w[j-3]^w[j-8]^w[j-14]^w[j-16];w[j]=n<<1|n>>>31}var t=(H0<<5|H0>>>27)+H4+(w[j]>>>0)+(j<20?1518500249+(H1&H2|~H1&H3):j<40?1859775393+(H1^H2^H3):j<60?(H1&H2|H1&H3|H2&H3)-1894007588:(H1^H2^H3)-899497514);H4=H3,H3=H2,H2=H1<<30|H1>>>2,H1=H0,H0=t}H0+=a,H1+=b,H2+=c,H3+=d,H4+=e}return[H0,H1,H2,H3,H4]}(message));return options&&options.asBytes?digestbytes:options&&options.asString?bin.bytesToString(digestbytes):crypt.bytesToHex(digestbytes)};api._blocksize=16,api._digestsize=20,sha1$1.exports=api}()),sha1$1.exports}(),sha1=getDefaultExportFromCjs(sha1Exports);function generateQRCodeURLOnline(chaveAcesso,versaoQRCode,tipoAmbiente,identificadorCSC,csc,utility){const urlQRCodeNFCe=utility.getUrlNFCe("URL-QRCode",!1,""),baseString=`${chaveAcesso=chaveAcesso.replace("NFe","")}|${versaoQRCode}|${tipoAmbiente}|${identificadorCSC}`;return`${urlQRCodeNFCe}?p=${baseString}|${function generateSHA1Hash(input){return require$$0$4.createHash("sha1").update(input).digest("hex")}(`${baseString}${csc}`)}`}function generateQRCodeURLOffline(chaveAcesso,versaoQRCode,tipoAmbiente,diaDataEmissao,valorTotalNfce,digVal,identificadorCSC,csc,utility){const urlQRCodeNFCe=utility.getUrlNFCe("URL-QRCode",!1,"");chaveAcesso=chaveAcesso.replace("NFe","");const digestValueHex=function calcularDigestValueHex(digVal){return Buffer.from(digVal).toString("hex")}(digVal),baseString=`${chaveAcesso}|${versaoQRCode}|${tipoAmbiente}|${diaDataEmissao}|${valorTotalNfce}|${digestValueHex}|${identificadorCSC}`;return`${urlQRCodeNFCe}?p=${baseString}|${sha1(`${baseString}${csc}`).toUpperCase()}`}class NFCEAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEAutorizacao",axios),this.xmlNFe=[]}gerarXml(data){return this.gerarXmlNFCEAutorizacao(data)}salvaArquivos(xmlConsulta,responseInJson,xmlRetorno,options){const config=this.environment.getConfig();let dateAndTimeInFileName=config.dfe.incluirTimestampNoNomeDosArquivos;const createFileName=(prefix,includeMethodName)=>{const dtaTime=dateAndTimeInFileName?`-${format(new Date,"dd-MM-yyyy-HHmm")}`:"";return`${includeMethodName?`${this.metodo}`:""}${prefix?includeMethodName?`-${prefix}`:`${prefix}`:""}${responseInJson.chNFe?`-${responseInJson.chNFe}`:""}${dtaTime}`},salvarArquivo=(data,prefix,path,fileType,includeMethodName)=>{const fileName=createFileName(prefix,includeMethodName),method="xml"===fileType?"salvaXML":"salvaJSON";this.utility[method]({data:data,fileName:fileName,metodo:this.metodo,path:path})};let xmlAutorizacaoInJson={},xMotivoPorXml=[],xmlsInJson=[];if(options){const{xmlAutorizacao:xmlAutorizacao}=options,json=new Json;for(let i=0;i<xmlAutorizacao.length;i++){xmlAutorizacaoInJson=json.convertXmlToJson(xmlAutorizacao[i],"NFCEAutorizacaoFinal"),xmlsInJson.push(xmlAutorizacaoInJson);const chNFe=xmlAutorizacaoInJson.protNFe.infProt.chNFe,xMotivo=xmlAutorizacaoInJson.protNFe.infProt.xMotivo,cStat=xmlAutorizacaoInJson.protNFe.infProt.cStat;xMotivoPorXml.push({chNFe:chNFe,xMotivo:xMotivo,cStat:cStat}),config.dfe.armazenarXMLAutorizacao&&(salvarArquivo(xmlAutorizacao[i],chNFe,config.dfe.pathXMLAutorizacao,"xml",!1),salvarArquivo(xmlAutorizacaoInJson,chNFe,config.dfe.pathXMLAutorizacao,"json",!1))}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}async trataRetorno(xmlRetorno,indSinc,responseInJson){try{const{nRec:nRec,protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno);let tipoEmissao=0;1===indSinc&&protNFe&&(tipoEmissao=1);const nfeRetornoAut=new NFERetornoAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios);return await nfeRetornoAut.getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:this.xmlNFe})}catch(error){throw new Error(error.message)}}anoMesEmissao(dhEmi){const dataAtual=new Date(dhEmi);return dataAtual.getFullYear().toString().slice(-2)+(dataAtual.getMonth()+1).toString().padStart(2,"0")}diaEmissao(dhEmi){return new Date(dhEmi).getDate().toString().padStart(2,"0")}calcularModulo11(sequencia){const pesos=[4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2];let somatoria=0;for(let i=0;i<sequencia.length;i++)somatoria+=parseInt(sequencia.charAt(i))*pesos[i];const restoDivisao=somatoria%11;return 0===restoDivisao||1===restoDivisao?0:11-restoDivisao}calcularDigitoVerificador(data){const{infNFe:{ide:{cUF:cUF,mod:mod,serie:serie,nNF:nNF,tpEmis:tpEmis,cNF:cNF,dhEmi:dhEmi},emit:{CNPJCPF:CNPJCPF}}}=data,sequencia=`${cUF}${this.anoMesEmissao(dhEmi)}${CNPJCPF}${mod}${String(serie).padStart(3,"0")}${String(nNF).padStart(9,"0")}${tpEmis}${cNF}`,dv=this.calcularModulo11(sequencia),chaveAcesso=`NFe${sequencia}`+dv;return this.chaveNfe=`${sequencia}${dv}`,{chaveAcesso:chaveAcesso,dv:dv}}validaDocumento(doc,campo){const nfeAutorizacaoHandler=new NFEAutorizacaoHandler,{documentoValido:documentoValido,tipoDoDocumento:tipoDoDocumento}=nfeAutorizacaoHandler.validarCpfCnpj(doc);if(!documentoValido||"Desconhecido"===tipoDoDocumento){throw new Error("Desconhecido"===tipoDoDocumento?`Documento do ${campo} ausente ou inválido`:`${tipoDoDocumento} do ${campo} é inválido`)}return tipoDoDocumento}extrairDigestValue(xmlAssinado){const match=xmlAssinado.match(/<DigestValue>([^<]+)<\/DigestValue>/);if(match&&match[1])return match[1];throw new Error("DigestValue não encontrado no XML assinado.")}gerarXmlNFCEAutorizacao(data){const createXML=NFe=>{if(NFe?.infNFe?.det instanceof Array){const formatedItens=NFe.infNFe.det.map(((det,index)=>{if(det.imposto.ICMS.dadosICMS){const icms=mountICMS(det.imposto.ICMS.dadosICMS);det.imposto.ICMS=icms}if(det.imposto.PIS.dadosPIS){const pis=mountPIS(det.imposto.PIS.dadosPIS);det.imposto.PIS=pis}if(det.imposto.COFINS.dadosCOFINS){const cofins=mountCOFINS(det.imposto.COFINS.dadosCOFINS);det.imposto.COFINS=cofins}return{$:{nItem:index+1},...det}}));NFe.infNFe.det=formatedItens}const{chaveAcesso:chaveAcesso,dv:dv}=this.calcularDigitoVerificador(NFe);if(NFe.infNFe.ide.cDV=dv,NFe.infNFe.ide.verProc=NFe.infNFe.ide.verProc||"1.0.0.0",NFe.infNFe.emit=Object.assign({[this.validaDocumento(String(NFe.infNFe.emit.CNPJCPF),"emitente")]:NFe.infNFe.emit.CNPJCPF},NFe.infNFe.emit),delete NFe.infNFe.emit.CNPJCPF,NFe.infNFe.dest&&(NFe.infNFe.dest=Object.assign({[this.validaDocumento(String(NFe.infNFe.dest?.CNPJCPF||""),"destinatário")]:NFe.infNFe.dest?.CNPJCPF||""},NFe.infNFe.dest),delete NFe.infNFe.dest.CNPJCPF),NFe.infNFe.transp.transporta&&(NFe.infNFe.transp.transporta=Object.assign({[this.validaDocumento(String(NFe.infNFe.transp.transporta?.CNPJCPF),"transportador")]:NFe.infNFe.transp.transporta?.CNPJCPF},NFe.infNFe.transp.transporta),delete NFe.infNFe.transp.transporta?.CNPJCPF),NFe.infNFe?.NFref instanceof Array){const NFrefArray=NFe.infNFe.NFref;NFrefArray&&NFrefArray.length>0&&(NFe.infNFe.NFref=NFrefArray.map((NFref=>(NFref.refNFP&&(NFref.refNFP=Object.assign({[this.validaDocumento(String(NFref.refNFP.CNPJCPF),"produtor rural")]:NFref.refNFP.CNPJCPF},NFref.refNFP),delete NFref.refNFP.CNPJCPF),NFref))))}else NFe.infNFe.NFref&&NFe.infNFe.NFref.refNFP&&(NFe.infNFe.NFref.refNFP=Object.assign({[this.validaDocumento(String(NFe.infNFe.NFref.refNFP.CNPJCPF),"produtor rural")]:NFe.infNFe.NFref.refNFP.CNPJCPF},NFe.infNFe.NFref.refNFP));NFe.infNFe.dest&&2===NFe.infNFe.ide.tpAmb&&(NFe.infNFe.dest.xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");const{nfe:{idCSC:idCSC,tokenCSC:tokenCSC}}=this.environment.getConfig();let qrCode="";[4,9].includes(NFe.infNFe.ide.tpEmis)||(qrCode=generateQRCodeURLOnline(chaveAcesso,"2",NFe.infNFe.ide.tpAmb,Number(idCSC),String(tokenCSC),this.utility));const urlConsultaNFCe=this.utility.getUrlNFCe("URL-ConsultaNFCe",!1,""),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe"},infNFe:{$:{versao:"4.00",Id:chaveAcesso},...(NFe={...NFe,infNFeSupl:{qrCode:qrCode,urlChave:urlConsultaNFCe}}).infNFe},infNFeSupl:{...NFe.infNFeSupl}},eventoXML=this.xmlBuilder.gerarXml(xmlObject,"NFe");let xmlAssinado=this.xmlBuilder.assinarXML(eventoXML,"infNFe");if([4,9].includes(NFe.infNFe.ide.tpEmis)){const digestValue=this.extrairDigestValue(xmlAssinado),tpAmb=NFe.infNFe.ide.tpAmb,valNF=NFe.infNFe.total.ICMSTot.vNF,diaEmissao=this.diaEmissao(NFe.infNFe.ide.dhEmi);qrCode=generateQRCodeURLOffline(chaveAcesso,"2",tpAmb,diaEmissao,valNF,digestValue,Number(idCSC),String(tokenCSC),this.utility),xml2js.parseString(xmlAssinado,((err,result)=>{if(err)throw new Error("Erro ao parsear o XML para atualização do qrCode:");if(!result.NFe?.infNFeSupl[0]?.qrCode)throw new Error("Tag qrCode não encontrada no XML.");{result.NFe.infNFeSupl[0].qrCode[0]=qrCode;const builder=new xml2jsExports.Builder({headless:!0,renderOpts:{pretty:!1}});xmlAssinado=builder.buildObject(result)}}))}this.xmlNFe.push(xmlAssinado)};if(data.NFe instanceof Array)for(let i=0;i<data.NFe.length;i++){createXML(data.NFe[i])}else createXML(data.NFe);const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},idLote:data.idLote,indSinc:data.indSinc,_:"[XML]"};return this.xmlBuilder.gerarXml(baseXML,"enviNFe").replace("[XML]",this.xmlNFe.join(""))}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo,!1,"","NFCe"),action:action}}catch(error){throw new Error(error.message)}}async Exec(data){let xmlConsulta="",soapXML="";try{xmlConsulta=this.gerarXmlNFCEAutorizacao(data);const{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);soapXML=xmlFormated,this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action,CSC:"9cf44de0-502d-4351-bf18-0843e6528e22"},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const retorno=await this.trataRetorno(xmlRetorno.data,data.indSinc,responseInJson),xmlFinal=this.salvaArquivos(xmlConsulta,responseInJson,xmlRetorno.data,{xmlAutorizacao:retorno.data,xMotivo:retorno.message});return{success:!0,xMotivo:xmlFinal.xMotivo,xmls:xmlFinal.response}}catch(error){throw this.utility.salvaConsulta(xmlConsulta,soapXML,this.metodo),new Error(error.message)}}}var canPromise,hasRequiredCanPromise,server={};function requireCanPromise(){return hasRequiredCanPromise?canPromise:(hasRequiredCanPromise=1,canPromise=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then})}var hasRequiredUtils$1,qrcode={},utils$1={};function requireUtils$1(){if(hasRequiredUtils$1)return utils$1;let toSJISFunction;hasRequiredUtils$1=1;const CODEWORDS_COUNT=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return utils$1.getSymbolSize=function getSymbolSize(version){if(!version)throw new Error('"version" cannot be null or undefined');if(version<1||version>40)throw new Error('"version" should be in range from 1 to 40');return 4*version+17},utils$1.getSymbolTotalCodewords=function getSymbolTotalCodewords(version){return CODEWORDS_COUNT[version]},utils$1.getBCHDigit=function(data){let digit=0;for(;0!==data;)digit++,data>>>=1;return digit},utils$1.setToSJISFunction=function setToSJISFunction(f){if("function"!=typeof f)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction=f},utils$1.isKanjiModeEnabled=function(){return void 0!==toSJISFunction},utils$1.toSJIS=function toSJIS(kanji){return toSJISFunction(kanji)},utils$1}var hasRequiredErrorCorrectionLevel,bitBuffer,hasRequiredBitBuffer,bitMatrix,hasRequiredBitMatrix,errorCorrectionLevel={};function requireErrorCorrectionLevel(){return hasRequiredErrorCorrectionLevel||(hasRequiredErrorCorrectionLevel=1,function(exports){exports.L={bit:1},exports.M={bit:0},exports.Q={bit:3},exports.H={bit:2},exports.isValid=function isValid(level){return level&&void 0!==level.bit&&level.bit>=0&&level.bit<4},exports.from=function from(value,defaultValue){if(exports.isValid(value))return value;try{return function fromString(string){if("string"!=typeof string)throw new Error("Param is not a string");switch(string.toLowerCase()){case"l":case"low":return exports.L;case"m":case"medium":return exports.M;case"q":case"quartile":return exports.Q;case"h":case"high":return exports.H;default:throw new Error("Unknown EC Level: "+string)}}(value)}catch(e){return defaultValue}}}(errorCorrectionLevel)),errorCorrectionLevel}var hasRequiredAlignmentPattern,alignmentPattern={};var hasRequiredFinderPattern,finderPattern={};var hasRequiredMaskPattern,maskPattern={};var hasRequiredErrorCorrectionCode,errorCorrectionCode={};function requireErrorCorrectionCode(){if(hasRequiredErrorCorrectionCode)return errorCorrectionCode;hasRequiredErrorCorrectionCode=1;const ECLevel=requireErrorCorrectionLevel(),EC_BLOCKS_TABLE=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],EC_CODEWORDS_TABLE=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return errorCorrectionCode.getBlocksCount=function getBlocksCount(version,errorCorrectionLevel){switch(errorCorrectionLevel){case ECLevel.L:return EC_BLOCKS_TABLE[4*(version-1)+0];case ECLevel.M:return EC_BLOCKS_TABLE[4*(version-1)+1];case ECLevel.Q:return EC_BLOCKS_TABLE[4*(version-1)+2];case ECLevel.H:return EC_BLOCKS_TABLE[4*(version-1)+3];default:return}},errorCorrectionCode.getTotalCodewordsCount=function getTotalCodewordsCount(version,errorCorrectionLevel){switch(errorCorrectionLevel){case ECLevel.L:return EC_CODEWORDS_TABLE[4*(version-1)+0];case ECLevel.M:return EC_CODEWORDS_TABLE[4*(version-1)+1];case ECLevel.Q:return EC_CODEWORDS_TABLE[4*(version-1)+2];case ECLevel.H:return EC_CODEWORDS_TABLE[4*(version-1)+3];default:return}},errorCorrectionCode}var hasRequiredGaloisField,hasRequiredPolynomial,reedSolomonEncoder,hasRequiredReedSolomonEncoder,polynomial={},galoisField={};function requirePolynomial(){return hasRequiredPolynomial||(hasRequiredPolynomial=1,function(exports){const GF=function requireGaloisField(){if(hasRequiredGaloisField)return galoisField;hasRequiredGaloisField=1;const EXP_TABLE=new Uint8Array(512),LOG_TABLE=new Uint8Array(256);return function initTables(){let x=1;for(let i=0;i<255;i++)EXP_TABLE[i]=x,LOG_TABLE[x]=i,x<<=1,256&x&&(x^=285);for(let i=255;i<512;i++)EXP_TABLE[i]=EXP_TABLE[i-255]}(),galoisField.log=function log(n){if(n<1)throw new Error("log("+n+")");return LOG_TABLE[n]},galoisField.exp=function exp(n){return EXP_TABLE[n]},galoisField.mul=function mul(x,y){return 0===x||0===y?0:EXP_TABLE[LOG_TABLE[x]+LOG_TABLE[y]]},galoisField}();exports.mul=function mul(p1,p2){const coeff=new Uint8Array(p1.length+p2.length-1);for(let i=0;i<p1.length;i++)for(let j=0;j<p2.length;j++)coeff[i+j]^=GF.mul(p1[i],p2[j]);return coeff},exports.mod=function mod(divident,divisor){let result=new Uint8Array(divident);for(;result.length-divisor.length>=0;){const coeff=result[0];for(let i=0;i<divisor.length;i++)result[i]^=GF.mul(divisor[i],coeff);let offset=0;for(;offset<result.length&&0===result[offset];)offset++;result=result.slice(offset)}return result},exports.generateECPolynomial=function generateECPolynomial(degree){let poly=new Uint8Array([1]);for(let i=0;i<degree;i++)poly=exports.mul(poly,new Uint8Array([1,GF.exp(i)]));return poly}}(polynomial)),polynomial}var hasRequiredVersionCheck,version={},mode={},versionCheck={};function requireVersionCheck(){return hasRequiredVersionCheck||(hasRequiredVersionCheck=1,versionCheck.isValid=function isValid(version){return!isNaN(version)&&version>=1&&version<=40}),versionCheck}var hasRequiredRegex,hasRequiredMode,hasRequiredVersion,regex={};function requireRegex(){if(hasRequiredRegex)return regex;hasRequiredRegex=1;let kanji="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji=kanji.replace(/u/g,"\\u");const byte="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji+")(?:.|[\r\n]))+";regex.KANJI=new RegExp(kanji,"g"),regex.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex.BYTE=new RegExp(byte,"g"),regex.NUMERIC=new RegExp("[0-9]+","g"),regex.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const TEST_KANJI=new RegExp("^"+kanji+"$"),TEST_NUMERIC=new RegExp("^[0-9]+$"),TEST_ALPHANUMERIC=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return regex.testKanji=function testKanji(str){return TEST_KANJI.test(str)},regex.testNumeric=function testNumeric(str){return TEST_NUMERIC.test(str)},regex.testAlphanumeric=function testAlphanumeric(str){return TEST_ALPHANUMERIC.test(str)},regex}function requireMode(){return hasRequiredMode||(hasRequiredMode=1,function(exports){const VersionCheck=requireVersionCheck(),Regex=requireRegex();exports.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},exports.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},exports.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},exports.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},exports.MIXED={bit:-1},exports.getCharCountIndicator=function getCharCountIndicator(mode,version){if(!mode.ccBits)throw new Error("Invalid mode: "+mode);if(!VersionCheck.isValid(version))throw new Error("Invalid version: "+version);return version>=1&&version<10?mode.ccBits[0]:version<27?mode.ccBits[1]:mode.ccBits[2]},exports.getBestModeForData=function getBestModeForData(dataStr){return Regex.testNumeric(dataStr)?exports.NUMERIC:Regex.testAlphanumeric(dataStr)?exports.ALPHANUMERIC:Regex.testKanji(dataStr)?exports.KANJI:exports.BYTE},exports.toString=function toString(mode){if(mode&&mode.id)return mode.id;throw new Error("Invalid mode")},exports.isValid=function isValid(mode){return mode&&mode.bit&&mode.ccBits},exports.from=function from(value,defaultValue){if(exports.isValid(value))return value;try{return function fromString(string){if("string"!=typeof string)throw new Error("Param is not a string");switch(string.toLowerCase()){case"numeric":return exports.NUMERIC;case"alphanumeric":return exports.ALPHANUMERIC;case"kanji":return exports.KANJI;case"byte":return exports.BYTE;default:throw new Error("Unknown mode: "+string)}}(value)}catch(e){return defaultValue}}}(mode)),mode}function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,function(exports){const Utils=requireUtils$1(),ECCode=requireErrorCorrectionCode(),ECLevel=requireErrorCorrectionLevel(),Mode=requireMode(),VersionCheck=requireVersionCheck(),G18_BCH=Utils.getBCHDigit(7973);function getReservedBitsCount(mode,version){return Mode.getCharCountIndicator(mode,version)+4}function getTotalBitsFromDataArray(segments,version){let totalBits=0;return segments.forEach((function(data){const reservedBits=getReservedBitsCount(data.mode,version);totalBits+=reservedBits+data.getBitsLength()})),totalBits}exports.from=function from(value,defaultValue){return VersionCheck.isValid(value)?parseInt(value,10):defaultValue},exports.getCapacity=function getCapacity(version,errorCorrectionLevel,mode){if(!VersionCheck.isValid(version))throw new Error("Invalid QR Code version");void 0===mode&&(mode=Mode.BYTE);const dataTotalCodewordsBits=8*(Utils.getSymbolTotalCodewords(version)-ECCode.getTotalCodewordsCount(version,errorCorrectionLevel));if(mode===Mode.MIXED)return dataTotalCodewordsBits;const usableBits=dataTotalCodewordsBits-getReservedBitsCount(mode,version);switch(mode){case Mode.NUMERIC:return Math.floor(usableBits/10*3);case Mode.ALPHANUMERIC:return Math.floor(usableBits/11*2);case Mode.KANJI:return Math.floor(usableBits/13);case Mode.BYTE:default:return Math.floor(usableBits/8)}},exports.getBestVersionForData=function getBestVersionForData(data,errorCorrectionLevel){let seg;const ecl=ECLevel.from(errorCorrectionLevel,ECLevel.M);if(Array.isArray(data)){if(data.length>1)return function getBestVersionForMixedData(segments,errorCorrectionLevel){for(let currentVersion=1;currentVersion<=40;currentVersion++)if(getTotalBitsFromDataArray(segments,currentVersion)<=exports.getCapacity(currentVersion,errorCorrectionLevel,Mode.MIXED))return currentVersion}(data,ecl);if(0===data.length)return 1;seg=data[0]}else seg=data;return function getBestVersionForDataLength(mode,length,errorCorrectionLevel){for(let currentVersion=1;currentVersion<=40;currentVersion++)if(length<=exports.getCapacity(currentVersion,errorCorrectionLevel,mode))return currentVersion}(seg.mode,seg.getLength(),ecl)},exports.getEncodedBits=function getEncodedBits(version){if(!VersionCheck.isValid(version)||version<7)throw new Error("Invalid QR Code version");let d=version<<12;for(;Utils.getBCHDigit(d)-G18_BCH>=0;)d^=7973<<Utils.getBCHDigit(d)-G18_BCH;return version<<12|d}}(version)),version}var hasRequiredFormatInfo,formatInfo={};var numericData,hasRequiredNumericData,alphanumericData,hasRequiredAlphanumericData,byteData,hasRequiredByteData,kanjiData,hasRequiredKanjiData,segments={};var hasRequiredDijkstra,hasRequiredSegments,hasRequiredQrcode,dijkstra={exports:{}};function requireDijkstra(){return hasRequiredDijkstra||(hasRequiredDijkstra=1,function(module){var dijkstra={single_source_shortest_paths:function(graph,s,d){var predecessors={},costs={};costs[s]=0;var closest,u,v,cost_of_s_to_u,adjacent_nodes,cost_of_s_to_u_plus_cost_of_e,cost_of_s_to_v,open=dijkstra.PriorityQueue.make();for(open.push(s,0);!open.empty();)for(v in u=(closest=open.pop()).value,cost_of_s_to_u=closest.cost,adjacent_nodes=graph[u]||{})adjacent_nodes.hasOwnProperty(v)&&(cost_of_s_to_u_plus_cost_of_e=cost_of_s_to_u+adjacent_nodes[v],cost_of_s_to_v=costs[v],(void 0===costs[v]||cost_of_s_to_v>cost_of_s_to_u_plus_cost_of_e)&&(costs[v]=cost_of_s_to_u_plus_cost_of_e,open.push(v,cost_of_s_to_u_plus_cost_of_e),predecessors[v]=u));if(void 0!==d&&void 0===costs[d]){var msg=["Could not find a path from ",s," to ",d,"."].join("");throw new Error(msg)}return predecessors},extract_shortest_path_from_predecessor_list:function(predecessors,d){for(var nodes=[],u=d;u;)nodes.push(u),predecessors[u],u=predecessors[u];return nodes.reverse(),nodes},find_path:function(graph,s,d){var predecessors=dijkstra.single_source_shortest_paths(graph,s,d);return dijkstra.extract_shortest_path_from_predecessor_list(predecessors,d)},PriorityQueue:{make:function(opts){var key,T=dijkstra.PriorityQueue,t={};for(key in opts=opts||{},T)T.hasOwnProperty(key)&&(t[key]=T[key]);return t.queue=[],t.sorter=opts.sorter||T.default_sorter,t},default_sorter:function(a,b){return a.cost-b.cost},push:function(value,cost){var item={value:value,cost:cost};this.queue.push(item),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};module.exports=dijkstra}(dijkstra)),dijkstra.exports}function requireSegments(){return hasRequiredSegments||(hasRequiredSegments=1,function(exports){const Mode=requireMode(),NumericData=function requireNumericData(){if(hasRequiredNumericData)return numericData;hasRequiredNumericData=1;const Mode=requireMode();function NumericData(data){this.mode=Mode.NUMERIC,this.data=data.toString()}return NumericData.getBitsLength=function getBitsLength(length){return 10*Math.floor(length/3)+(length%3?length%3*3+1:0)},NumericData.prototype.getLength=function getLength(){return this.data.length},NumericData.prototype.getBitsLength=function getBitsLength(){return NumericData.getBitsLength(this.data.length)},NumericData.prototype.write=function write(bitBuffer){let i,group,value;for(i=0;i+3<=this.data.length;i+=3)group=this.data.substr(i,3),value=parseInt(group,10),bitBuffer.put(value,10);const remainingNum=this.data.length-i;remainingNum>0&&(group=this.data.substr(i),value=parseInt(group,10),bitBuffer.put(value,3*remainingNum+1))},numericData=NumericData}(),AlphanumericData=function requireAlphanumericData(){if(hasRequiredAlphanumericData)return alphanumericData;hasRequiredAlphanumericData=1;const Mode=requireMode(),ALPHA_NUM_CHARS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData(data){this.mode=Mode.ALPHANUMERIC,this.data=data}return AlphanumericData.getBitsLength=function getBitsLength(length){return 11*Math.floor(length/2)+length%2*6},AlphanumericData.prototype.getLength=function getLength(){return this.data.length},AlphanumericData.prototype.getBitsLength=function getBitsLength(){return AlphanumericData.getBitsLength(this.data.length)},AlphanumericData.prototype.write=function write(bitBuffer){let i;for(i=0;i+2<=this.data.length;i+=2){let value=45*ALPHA_NUM_CHARS.indexOf(this.data[i]);value+=ALPHA_NUM_CHARS.indexOf(this.data[i+1]),bitBuffer.put(value,11)}this.data.length%2&&bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]),6)},alphanumericData=AlphanumericData}(),ByteData=function requireByteData(){if(hasRequiredByteData)return byteData;hasRequiredByteData=1;const Mode=requireMode();function ByteData(data){this.mode=Mode.BYTE,this.data="string"==typeof data?(new TextEncoder).encode(data):new Uint8Array(data)}return ByteData.getBitsLength=function getBitsLength(length){return 8*length},ByteData.prototype.getLength=function getLength(){return this.data.length},ByteData.prototype.getBitsLength=function getBitsLength(){return ByteData.getBitsLength(this.data.length)},ByteData.prototype.write=function(bitBuffer){for(let i=0,l=this.data.length;i<l;i++)bitBuffer.put(this.data[i],8)},byteData=ByteData}(),KanjiData=function requireKanjiData(){if(hasRequiredKanjiData)return kanjiData;hasRequiredKanjiData=1;const Mode=requireMode(),Utils=requireUtils$1();function KanjiData(data){this.mode=Mode.KANJI,this.data=data}return KanjiData.getBitsLength=function getBitsLength(length){return 13*length},KanjiData.prototype.getLength=function getLength(){return this.data.length},KanjiData.prototype.getBitsLength=function getBitsLength(){return KanjiData.getBitsLength(this.data.length)},KanjiData.prototype.write=function(bitBuffer){let i;for(i=0;i<this.data.length;i++){let value=Utils.toSJIS(this.data[i]);if(value>=33088&&value<=40956)value-=33088;else{if(!(value>=57408&&value<=60351))throw new Error("Invalid SJIS character: "+this.data[i]+"\nMake sure your charset is UTF-8");value-=49472}value=192*(value>>>8&255)+(255&value),bitBuffer.put(value,13)}},kanjiData=KanjiData}(),Regex=requireRegex(),Utils=requireUtils$1(),dijkstra=requireDijkstra();function getStringByteLength(str){return unescape(encodeURIComponent(str)).length}function getSegments(regex,mode,str){const segments=[];let result;for(;null!==(result=regex.exec(str));)segments.push({data:result[0],index:result.index,mode:mode,length:result[0].length});return segments}function getSegmentsFromString(dataStr){const numSegs=getSegments(Regex.NUMERIC,Mode.NUMERIC,dataStr),alphaNumSegs=getSegments(Regex.ALPHANUMERIC,Mode.ALPHANUMERIC,dataStr);let byteSegs,kanjiSegs;Utils.isKanjiModeEnabled()?(byteSegs=getSegments(Regex.BYTE,Mode.BYTE,dataStr),kanjiSegs=getSegments(Regex.KANJI,Mode.KANJI,dataStr)):(byteSegs=getSegments(Regex.BYTE_KANJI,Mode.BYTE,dataStr),kanjiSegs=[]);return numSegs.concat(alphaNumSegs,byteSegs,kanjiSegs).sort((function(s1,s2){return s1.index-s2.index})).map((function(obj){return{data:obj.data,mode:obj.mode,length:obj.length}}))}function getSegmentBitsLength(length,mode){switch(mode){case Mode.NUMERIC:return NumericData.getBitsLength(length);case Mode.ALPHANUMERIC:return AlphanumericData.getBitsLength(length);case Mode.KANJI:return KanjiData.getBitsLength(length);case Mode.BYTE:return ByteData.getBitsLength(length)}}function buildSingleSegment(data,modesHint){let mode;const bestMode=Mode.getBestModeForData(data);if(mode=Mode.from(modesHint,bestMode),mode!==Mode.BYTE&&mode.bit<bestMode.bit)throw new Error('"'+data+'" cannot be encoded with mode '+Mode.toString(mode)+".\n Suggested mode is: "+Mode.toString(bestMode));switch(mode!==Mode.KANJI||Utils.isKanjiModeEnabled()||(mode=Mode.BYTE),mode){case Mode.NUMERIC:return new NumericData(data);case Mode.ALPHANUMERIC:return new AlphanumericData(data);case Mode.KANJI:return new KanjiData(data);case Mode.BYTE:return new ByteData(data)}}exports.fromArray=function fromArray(array){return array.reduce((function(acc,seg){return"string"==typeof seg?acc.push(buildSingleSegment(seg,null)):seg.data&&acc.push(buildSingleSegment(seg.data,seg.mode)),acc}),[])},exports.fromString=function fromString(data,version){const nodes=function buildNodes(segs){const nodes=[];for(let i=0;i<segs.length;i++){const seg=segs[i];switch(seg.mode){case Mode.NUMERIC:nodes.push([seg,{data:seg.data,mode:Mode.ALPHANUMERIC,length:seg.length},{data:seg.data,mode:Mode.BYTE,length:seg.length}]);break;case Mode.ALPHANUMERIC:nodes.push([seg,{data:seg.data,mode:Mode.BYTE,length:seg.length}]);break;case Mode.KANJI:nodes.push([seg,{data:seg.data,mode:Mode.BYTE,length:getStringByteLength(seg.data)}]);break;case Mode.BYTE:nodes.push([{data:seg.data,mode:Mode.BYTE,length:getStringByteLength(seg.data)}])}}return nodes}(getSegmentsFromString(data,Utils.isKanjiModeEnabled())),graph=function buildGraph(nodes,version){const table={},graph={start:{}};let prevNodeIds=["start"];for(let i=0;i<nodes.length;i++){const nodeGroup=nodes[i],currentNodeIds=[];for(let j=0;j<nodeGroup.length;j++){const node=nodeGroup[j],key=""+i+j;currentNodeIds.push(key),table[key]={node:node,lastCount:0},graph[key]={};for(let n=0;n<prevNodeIds.length;n++){const prevNodeId=prevNodeIds[n];table[prevNodeId]&&table[prevNodeId].node.mode===node.mode?(graph[prevNodeId][key]=getSegmentBitsLength(table[prevNodeId].lastCount+node.length,node.mode)-getSegmentBitsLength(table[prevNodeId].lastCount,node.mode),table[prevNodeId].lastCount+=node.length):(table[prevNodeId]&&(table[prevNodeId].lastCount=node.length),graph[prevNodeId][key]=getSegmentBitsLength(node.length,node.mode)+4+Mode.getCharCountIndicator(node.mode,version))}}prevNodeIds=currentNodeIds}for(let n=0;n<prevNodeIds.length;n++)graph[prevNodeIds[n]].end=0;return{map:graph,table:table}}(nodes,version),path=dijkstra.find_path(graph.map,"start","end"),optimizedSegs=[];for(let i=1;i<path.length-1;i++)optimizedSegs.push(graph.table[path[i]].node);return exports.fromArray(function mergeSegments(segs){return segs.reduce((function(acc,curr){const prevSeg=acc.length-1>=0?acc[acc.length-1]:null;return prevSeg&&prevSeg.mode===curr.mode?(acc[acc.length-1].data+=curr.data,acc):(acc.push(curr),acc)}),[])}(optimizedSegs))},exports.rawSplit=function rawSplit(data){return exports.fromArray(getSegmentsFromString(data,Utils.isKanjiModeEnabled()))}}(segments)),segments}function requireQrcode(){if(hasRequiredQrcode)return qrcode;hasRequiredQrcode=1;const Utils=requireUtils$1(),ECLevel=requireErrorCorrectionLevel(),BitBuffer=function requireBitBuffer(){if(hasRequiredBitBuffer)return bitBuffer;function BitBuffer(){this.buffer=[],this.length=0}return hasRequiredBitBuffer=1,BitBuffer.prototype={get:function(index){const bufIndex=Math.floor(index/8);return 1==(this.buffer[bufIndex]>>>7-index%8&1)},put:function(num,length){for(let i=0;i<length;i++)this.putBit(1==(num>>>length-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(bit){const bufIndex=Math.floor(this.length/8);this.buffer.length<=bufIndex&&this.buffer.push(0),bit&&(this.buffer[bufIndex]|=128>>>this.length%8),this.length++}},bitBuffer=BitBuffer}(),BitMatrix=function requireBitMatrix(){if(hasRequiredBitMatrix)return bitMatrix;function BitMatrix(size){if(!size||size<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=size,this.data=new Uint8Array(size*size),this.reservedBit=new Uint8Array(size*size)}return hasRequiredBitMatrix=1,BitMatrix.prototype.set=function(row,col,value,reserved){const index=row*this.size+col;this.data[index]=value,reserved&&(this.reservedBit[index]=!0)},BitMatrix.prototype.get=function(row,col){return this.data[row*this.size+col]},BitMatrix.prototype.xor=function(row,col,value){this.data[row*this.size+col]^=value},BitMatrix.prototype.isReserved=function(row,col){return this.reservedBit[row*this.size+col]},bitMatrix=BitMatrix}(),AlignmentPattern=function requireAlignmentPattern(){return hasRequiredAlignmentPattern||(hasRequiredAlignmentPattern=1,function(exports){const getSymbolSize=requireUtils$1().getSymbolSize;exports.getRowColCoords=function getRowColCoords(version){if(1===version)return[];const posCount=Math.floor(version/7)+2,size=getSymbolSize(version),intervals=145===size?26:2*Math.ceil((size-13)/(2*posCount-2)),positions=[size-7];for(let i=1;i<posCount-1;i++)positions[i]=positions[i-1]-intervals;return positions.push(6),positions.reverse()},exports.getPositions=function getPositions(version){const coords=[],pos=exports.getRowColCoords(version),posLength=pos.length;for(let i=0;i<posLength;i++)for(let j=0;j<posLength;j++)0===i&&0===j||0===i&&j===posLength-1||i===posLength-1&&0===j||coords.push([pos[i],pos[j]]);return coords}}(alignmentPattern)),alignmentPattern}(),FinderPattern=function requireFinderPattern(){if(hasRequiredFinderPattern)return finderPattern;hasRequiredFinderPattern=1;const getSymbolSize=requireUtils$1().getSymbolSize;return finderPattern.getPositions=function getPositions(version){const size=getSymbolSize(version);return[[0,0],[size-7,0],[0,size-7]]},finderPattern}(),MaskPattern=function requireMaskPattern(){return hasRequiredMaskPattern||(hasRequiredMaskPattern=1,function(exports){exports.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const PenaltyScores_N1=3,PenaltyScores_N2=3,PenaltyScores_N3=40,PenaltyScores_N4=10;function getMaskAt(maskPattern,i,j){switch(maskPattern){case exports.Patterns.PATTERN000:return(i+j)%2==0;case exports.Patterns.PATTERN001:return i%2==0;case exports.Patterns.PATTERN010:return j%3==0;case exports.Patterns.PATTERN011:return(i+j)%3==0;case exports.Patterns.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case exports.Patterns.PATTERN101:return i*j%2+i*j%3==0;case exports.Patterns.PATTERN110:return(i*j%2+i*j%3)%2==0;case exports.Patterns.PATTERN111:return(i*j%3+(i+j)%2)%2==0;default:throw new Error("bad maskPattern:"+maskPattern)}}exports.isValid=function isValid(mask){return null!=mask&&""!==mask&&!isNaN(mask)&&mask>=0&&mask<=7},exports.from=function from(value){return exports.isValid(value)?parseInt(value,10):void 0},exports.getPenaltyN1=function getPenaltyN1(data){const size=data.size;let points=0,sameCountCol=0,sameCountRow=0,lastCol=null,lastRow=null;for(let row=0;row<size;row++){sameCountCol=sameCountRow=0,lastCol=lastRow=null;for(let col=0;col<size;col++){let module=data.get(row,col);module===lastCol?sameCountCol++:(sameCountCol>=5&&(points+=PenaltyScores_N1+(sameCountCol-5)),lastCol=module,sameCountCol=1),module=data.get(col,row),module===lastRow?sameCountRow++:(sameCountRow>=5&&(points+=PenaltyScores_N1+(sameCountRow-5)),lastRow=module,sameCountRow=1)}sameCountCol>=5&&(points+=PenaltyScores_N1+(sameCountCol-5)),sameCountRow>=5&&(points+=PenaltyScores_N1+(sameCountRow-5))}return points},exports.getPenaltyN2=function getPenaltyN2(data){const size=data.size;let points=0;for(let row=0;row<size-1;row++)for(let col=0;col<size-1;col++){const last=data.get(row,col)+data.get(row,col+1)+data.get(row+1,col)+data.get(row+1,col+1);4!==last&&0!==last||points++}return points*PenaltyScores_N2},exports.getPenaltyN3=function getPenaltyN3(data){const size=data.size;let points=0,bitsCol=0,bitsRow=0;for(let row=0;row<size;row++){bitsCol=bitsRow=0;for(let col=0;col<size;col++)bitsCol=bitsCol<<1&2047|data.get(row,col),col>=10&&(1488===bitsCol||93===bitsCol)&&points++,bitsRow=bitsRow<<1&2047|data.get(col,row),col>=10&&(1488===bitsRow||93===bitsRow)&&points++}return points*PenaltyScores_N3},exports.getPenaltyN4=function getPenaltyN4(data){let darkCount=0;const modulesCount=data.data.length;for(let i=0;i<modulesCount;i++)darkCount+=data.data[i];return Math.abs(Math.ceil(100*darkCount/modulesCount/5)-10)*PenaltyScores_N4},exports.applyMask=function applyMask(pattern,data){const size=data.size;for(let col=0;col<size;col++)for(let row=0;row<size;row++)data.isReserved(row,col)||data.xor(row,col,getMaskAt(pattern,row,col))},exports.getBestMask=function getBestMask(data,setupFormatFunc){const numPatterns=Object.keys(exports.Patterns).length;let bestPattern=0,lowerPenalty=1/0;for(let p=0;p<numPatterns;p++){setupFormatFunc(p),exports.applyMask(p,data);const penalty=exports.getPenaltyN1(data)+exports.getPenaltyN2(data)+exports.getPenaltyN3(data)+exports.getPenaltyN4(data);exports.applyMask(p,data),penalty<lowerPenalty&&(lowerPenalty=penalty,bestPattern=p)}return bestPattern}}(maskPattern)),maskPattern}(),ECCode=requireErrorCorrectionCode(),ReedSolomonEncoder=function requireReedSolomonEncoder(){if(hasRequiredReedSolomonEncoder)return reedSolomonEncoder;hasRequiredReedSolomonEncoder=1;const Polynomial=requirePolynomial();function ReedSolomonEncoder(degree){this.genPoly=void 0,this.degree=degree,this.degree&&this.initialize(this.degree)}return ReedSolomonEncoder.prototype.initialize=function initialize(degree){this.degree=degree,this.genPoly=Polynomial.generateECPolynomial(this.degree)},ReedSolomonEncoder.prototype.encode=function encode(data){if(!this.genPoly)throw new Error("Encoder not initialized");const paddedData=new Uint8Array(data.length+this.degree);paddedData.set(data);const remainder=Polynomial.mod(paddedData,this.genPoly),start=this.degree-remainder.length;if(start>0){const buff=new Uint8Array(this.degree);return buff.set(remainder,start),buff}return remainder},reedSolomonEncoder=ReedSolomonEncoder}(),Version=requireVersion(),FormatInfo=function requireFormatInfo(){if(hasRequiredFormatInfo)return formatInfo;hasRequiredFormatInfo=1;const Utils=requireUtils$1(),G15_BCH=Utils.getBCHDigit(1335);return formatInfo.getEncodedBits=function getEncodedBits(errorCorrectionLevel,mask){const data=errorCorrectionLevel.bit<<3|mask;let d=data<<10;for(;Utils.getBCHDigit(d)-G15_BCH>=0;)d^=1335<<Utils.getBCHDigit(d)-G15_BCH;return 21522^(data<<10|d)},formatInfo}(),Mode=requireMode(),Segments=requireSegments();function setupFormatInfo(matrix,errorCorrectionLevel,maskPattern){const size=matrix.size,bits=FormatInfo.getEncodedBits(errorCorrectionLevel,maskPattern);let i,mod;for(i=0;i<15;i++)mod=1==(bits>>i&1),i<6?matrix.set(i,8,mod,!0):i<8?matrix.set(i+1,8,mod,!0):matrix.set(size-15+i,8,mod,!0),i<8?matrix.set(8,size-i-1,mod,!0):i<9?matrix.set(8,15-i-1+1,mod,!0):matrix.set(8,15-i-1,mod,!0);matrix.set(size-8,8,1,!0)}function createData(version,errorCorrectionLevel,segments){const buffer=new BitBuffer;segments.forEach((function(data){buffer.put(data.mode.bit,4),buffer.put(data.getLength(),Mode.getCharCountIndicator(data.mode,version)),data.write(buffer)}));const dataTotalCodewordsBits=8*(Utils.getSymbolTotalCodewords(version)-ECCode.getTotalCodewordsCount(version,errorCorrectionLevel));for(buffer.getLengthInBits()+4<=dataTotalCodewordsBits&&buffer.put(0,4);buffer.getLengthInBits()%8!=0;)buffer.putBit(0);const remainingByte=(dataTotalCodewordsBits-buffer.getLengthInBits())/8;for(let i=0;i<remainingByte;i++)buffer.put(i%2?17:236,8);return function createCodewords(bitBuffer,version,errorCorrectionLevel){const totalCodewords=Utils.getSymbolTotalCodewords(version),ecTotalCodewords=ECCode.getTotalCodewordsCount(version,errorCorrectionLevel),dataTotalCodewords=totalCodewords-ecTotalCodewords,ecTotalBlocks=ECCode.getBlocksCount(version,errorCorrectionLevel),blocksInGroup2=totalCodewords%ecTotalBlocks,blocksInGroup1=ecTotalBlocks-blocksInGroup2,totalCodewordsInGroup1=Math.floor(totalCodewords/ecTotalBlocks),dataCodewordsInGroup1=Math.floor(dataTotalCodewords/ecTotalBlocks),dataCodewordsInGroup2=dataCodewordsInGroup1+1,ecCount=totalCodewordsInGroup1-dataCodewordsInGroup1,rs=new ReedSolomonEncoder(ecCount);let offset=0;const dcData=new Array(ecTotalBlocks),ecData=new Array(ecTotalBlocks);let maxDataSize=0;const buffer=new Uint8Array(bitBuffer.buffer);for(let b=0;b<ecTotalBlocks;b++){const dataSize=b<blocksInGroup1?dataCodewordsInGroup1:dataCodewordsInGroup2;dcData[b]=buffer.slice(offset,offset+dataSize),ecData[b]=rs.encode(dcData[b]),offset+=dataSize,maxDataSize=Math.max(maxDataSize,dataSize)}const data=new Uint8Array(totalCodewords);let i,r,index=0;for(i=0;i<maxDataSize;i++)for(r=0;r<ecTotalBlocks;r++)i<dcData[r].length&&(data[index++]=dcData[r][i]);for(i=0;i<ecCount;i++)for(r=0;r<ecTotalBlocks;r++)data[index++]=ecData[r][i];return data}(buffer,version,errorCorrectionLevel)}function createSymbol(data,version,errorCorrectionLevel,maskPattern){let segments;if(Array.isArray(data))segments=Segments.fromArray(data);else{if("string"!=typeof data)throw new Error("Invalid data");{let estimatedVersion=version;if(!estimatedVersion){const rawSegments=Segments.rawSplit(data);estimatedVersion=Version.getBestVersionForData(rawSegments,errorCorrectionLevel)}segments=Segments.fromString(data,estimatedVersion||40)}}const bestVersion=Version.getBestVersionForData(segments,errorCorrectionLevel);if(!bestVersion)throw new Error("The amount of data is too big to be stored in a QR Code");if(version){if(version<bestVersion)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+bestVersion+".\n")}else version=bestVersion;const dataBits=createData(version,errorCorrectionLevel,segments),moduleCount=Utils.getSymbolSize(version),modules=new BitMatrix(moduleCount);return function setupFinderPattern(matrix,version){const size=matrix.size,pos=FinderPattern.getPositions(version);for(let i=0;i<pos.length;i++){const row=pos[i][0],col=pos[i][1];for(let r=-1;r<=7;r++)if(!(row+r<=-1||size<=row+r))for(let c=-1;c<=7;c++)col+c<=-1||size<=col+c||(r>=0&&r<=6&&(0===c||6===c)||c>=0&&c<=6&&(0===r||6===r)||r>=2&&r<=4&&c>=2&&c<=4?matrix.set(row+r,col+c,!0,!0):matrix.set(row+r,col+c,!1,!0))}}(modules,version),function setupTimingPattern(matrix){const size=matrix.size;for(let r=8;r<size-8;r++){const value=r%2==0;matrix.set(r,6,value,!0),matrix.set(6,r,value,!0)}}(modules),function setupAlignmentPattern(matrix,version){const pos=AlignmentPattern.getPositions(version);for(let i=0;i<pos.length;i++){const row=pos[i][0],col=pos[i][1];for(let r=-2;r<=2;r++)for(let c=-2;c<=2;c++)-2===r||2===r||-2===c||2===c||0===r&&0===c?matrix.set(row+r,col+c,!0,!0):matrix.set(row+r,col+c,!1,!0)}}(modules,version),setupFormatInfo(modules,errorCorrectionLevel,0),version>=7&&function setupVersionInfo(matrix,version){const size=matrix.size,bits=Version.getEncodedBits(version);let row,col,mod;for(let i=0;i<18;i++)row=Math.floor(i/3),col=i%3+size-8-3,mod=1==(bits>>i&1),matrix.set(row,col,mod,!0),matrix.set(col,row,mod,!0)}(modules,version),function setupData(matrix,data){const size=matrix.size;let inc=-1,row=size-1,bitIndex=7,byteIndex=0;for(let col=size-1;col>0;col-=2)for(6===col&&col--;;){for(let c=0;c<2;c++)if(!matrix.isReserved(row,col-c)){let dark=!1;byteIndex<data.length&&(dark=1==(data[byteIndex]>>>bitIndex&1)),matrix.set(row,col-c,dark),bitIndex--,-1===bitIndex&&(byteIndex++,bitIndex=7)}if(row+=inc,row<0||size<=row){row-=inc,inc=-inc;break}}}(modules,dataBits),isNaN(maskPattern)&&(maskPattern=MaskPattern.getBestMask(modules,setupFormatInfo.bind(null,modules,errorCorrectionLevel))),MaskPattern.applyMask(maskPattern,modules),setupFormatInfo(modules,errorCorrectionLevel,maskPattern),{modules:modules,version:version,errorCorrectionLevel:errorCorrectionLevel,maskPattern:maskPattern,segments:segments}}return qrcode.create=function create(data,options){if(void 0===data||""===data)throw new Error("No input text");let version,mask,errorCorrectionLevel=ECLevel.M;return void 0!==options&&(errorCorrectionLevel=ECLevel.from(options.errorCorrectionLevel,ECLevel.M),version=Version.from(options.version),mask=MaskPattern.from(options.maskPattern),options.toSJISFunc&&Utils.setToSJISFunction(options.toSJISFunc)),createSymbol(data,version,errorCorrectionLevel,mask)},qrcode}var hasRequiredChunkstream,png$1={},png={},parserAsync={exports:{}},chunkstream={exports:{}};function requireChunkstream(){if(hasRequiredChunkstream)return chunkstream.exports;hasRequiredChunkstream=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,ChunkStream=chunkstream.exports=function(){Stream.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};return util.inherits(ChunkStream,Stream),ChunkStream.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}.bind(this))},ChunkStream.prototype.write=function(data,encoding){if(!this.writable)return this.emit("error",new Error("Stream not writable")),!1;let dataBuffer;return dataBuffer=Buffer.isBuffer(data)?data:Buffer.from(data,encoding||this._encoding),this._buffers.push(dataBuffer),this._buffered+=dataBuffer.length,this._process(),this._reads&&0===this._reads.length&&(this._paused=!0),this.writable&&!this._paused},ChunkStream.prototype.end=function(data,encoding){data&&this.write(data,encoding),this.writable=!1,this._buffers&&(0===this._buffers.length?this._end():(this._buffers.push(null),this._process()))},ChunkStream.prototype.destroySoon=ChunkStream.prototype.end,ChunkStream.prototype._end=function(){this._reads.length>0&&this.emit("error",new Error("Unexpected end of input")),this.destroy()},ChunkStream.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))},ChunkStream.prototype._processReadAllowingLess=function(read){this._reads.shift();let smallerBuf=this._buffers[0];smallerBuf.length>read.length?(this._buffered-=read.length,this._buffers[0]=smallerBuf.slice(read.length),read.func.call(this,smallerBuf.slice(0,read.length))):(this._buffered-=smallerBuf.length,this._buffers.shift(),read.func.call(this,smallerBuf))},ChunkStream.prototype._processRead=function(read){this._reads.shift();let pos=0,count=0,data=Buffer.alloc(read.length);for(;pos<read.length;){let buf=this._buffers[count++],len=Math.min(buf.length,read.length-pos);buf.copy(data,pos,0,len),pos+=len,len!==buf.length&&(this._buffers[--count]=buf.slice(len))}count>0&&this._buffers.splice(0,count),this._buffered-=read.length,read.func.call(this,data)},ChunkStream.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let read=this._reads[0];if(read.allowLess)this._processReadAllowingLess(read);else{if(!(this._buffered>=read.length))break;this._processRead(read)}}this._buffers&&!this.writable&&this._end()}catch(ex){this.emit("error",ex)}},chunkstream.exports}var hasRequiredInterlace,paethPredictor,hasRequiredPaethPredictor,hasRequiredFilterParse,hasRequiredFilterParseAsync,filterParseAsync={exports:{}},filterParse={exports:{}},interlace={};function requireInterlace(){if(hasRequiredInterlace)return interlace;hasRequiredInterlace=1;let imagePasses=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];return interlace.getImagePasses=function(width,height){let images=[],xLeftOver=width%8,yLeftOver=height%8,xRepeats=(width-xLeftOver)/8,yRepeats=(height-yLeftOver)/8;for(let i=0;i<imagePasses.length;i++){let pass=imagePasses[i],passWidth=xRepeats*pass.x.length,passHeight=yRepeats*pass.y.length;for(let j=0;j<pass.x.length&&pass.x[j]<xLeftOver;j++)passWidth++;for(let j=0;j<pass.y.length&&pass.y[j]<yLeftOver;j++)passHeight++;passWidth>0&&passHeight>0&&images.push({width:passWidth,height:passHeight,index:i})}return images},interlace.getInterlaceIterator=function(width){return function(x,y,pass){let outerXLeftOver=x%imagePasses[pass].x.length,outerX=(x-outerXLeftOver)/imagePasses[pass].x.length*8+imagePasses[pass].x[outerXLeftOver],outerYLeftOver=y%imagePasses[pass].y.length;return 4*outerX+((y-outerYLeftOver)/imagePasses[pass].y.length*8+imagePasses[pass].y[outerYLeftOver])*width*4}},interlace}function requirePaethPredictor(){return hasRequiredPaethPredictor?paethPredictor:(hasRequiredPaethPredictor=1,paethPredictor=function paethPredictor(left,above,upLeft){let paeth=left+above-upLeft,pLeft=Math.abs(paeth-left),pAbove=Math.abs(paeth-above),pUpLeft=Math.abs(paeth-upLeft);return pLeft<=pAbove&&pLeft<=pUpLeft?left:pAbove<=pUpLeft?above:upLeft})}function requireFilterParse(){if(hasRequiredFilterParse)return filterParse.exports;hasRequiredFilterParse=1;let interlaceUtils=requireInterlace(),paethPredictor=requirePaethPredictor();function getByteWidth(width,bpp,depth){let byteWidth=width*bpp;return 8!==depth&&(byteWidth=Math.ceil(byteWidth/(8/depth))),byteWidth}let Filter=filterParse.exports=function(bitmapInfo,dependencies){let width=bitmapInfo.width,height=bitmapInfo.height,interlace=bitmapInfo.interlace,bpp=bitmapInfo.bpp,depth=bitmapInfo.depth;if(this.read=dependencies.read,this.write=dependencies.write,this.complete=dependencies.complete,this._imageIndex=0,this._images=[],interlace){let passes=interlaceUtils.getImagePasses(width,height);for(let i=0;i<passes.length;i++)this._images.push({byteWidth:getByteWidth(passes[i].width,bpp,depth),height:passes[i].height,lineIndex:0})}else this._images.push({byteWidth:getByteWidth(width,bpp,depth),height:height,lineIndex:0});this._xComparison=8===depth?bpp:16===depth?2*bpp:1};return Filter.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},Filter.prototype._unFilterType1=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f1Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0;unfilteredLine[x]=rawByte+f1Left}},Filter.prototype._unFilterType2=function(rawData,unfilteredLine,byteWidth){let lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f2Up=lastLine?lastLine[x]:0;unfilteredLine[x]=rawByte+f2Up}},Filter.prototype._unFilterType3=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f3Up=lastLine?lastLine[x]:0,f3Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f3Add=Math.floor((f3Left+f3Up)/2);unfilteredLine[x]=rawByte+f3Add}},Filter.prototype._unFilterType4=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f4Up=lastLine?lastLine[x]:0,f4Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f4UpLeft=x>xBiggerThan&&lastLine?lastLine[x-xComparison]:0,f4Add=paethPredictor(f4Left,f4Up,f4UpLeft);unfilteredLine[x]=rawByte+f4Add}},Filter.prototype._reverseFilterLine=function(rawData){let unfilteredLine,filter=rawData[0],currentImage=this._images[this._imageIndex],byteWidth=currentImage.byteWidth;if(0===filter)unfilteredLine=rawData.slice(1,byteWidth+1);else switch(unfilteredLine=Buffer.alloc(byteWidth),filter){case 1:this._unFilterType1(rawData,unfilteredLine,byteWidth);break;case 2:this._unFilterType2(rawData,unfilteredLine,byteWidth);break;case 3:this._unFilterType3(rawData,unfilteredLine,byteWidth);break;case 4:this._unFilterType4(rawData,unfilteredLine,byteWidth);break;default:throw new Error("Unrecognised filter type - "+filter)}this.write(unfilteredLine),currentImage.lineIndex++,currentImage.lineIndex>=currentImage.height?(this._lastLine=null,this._imageIndex++,currentImage=this._images[this._imageIndex]):this._lastLine=unfilteredLine,currentImage?this.read(currentImage.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())},filterParse.exports}var constants,hasRequiredConstants,parser={exports:{}};function requireConstants(){return hasRequiredConstants?constants:(hasRequiredConstants=1,constants={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5})}var hasRequiredCrc,hasRequiredParser,crc={exports:{}};function requireCrc(){if(hasRequiredCrc)return crc.exports;hasRequiredCrc=1;let crcTable=[];!function(){for(let i=0;i<256;i++){let currentCrc=i;for(let j=0;j<8;j++)1&currentCrc?currentCrc=3988292384^currentCrc>>>1:currentCrc>>>=1;crcTable[i]=currentCrc}}();let CrcCalculator=crc.exports=function(){this._crc=-1};return CrcCalculator.prototype.write=function(data){for(let i=0;i<data.length;i++)this._crc=crcTable[255&(this._crc^data[i])]^this._crc>>>8;return!0},CrcCalculator.prototype.crc32=function(){return~this._crc},CrcCalculator.crc32=function(buf){let crc=-1;for(let i=0;i<buf.length;i++)crc=crcTable[255&(crc^buf[i])]^crc>>>8;return~crc},crc.exports}function requireParser(){if(hasRequiredParser)return parser.exports;hasRequiredParser=1;let constants=requireConstants(),CrcCalculator=requireCrc(),Parser=parser.exports=function(options,dependencies){this._options=options,options.checkCRC=!1!==options.checkCRC,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[constants.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[constants.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[constants.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[constants.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[constants.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[constants.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=dependencies.read,this.error=dependencies.error,this.metadata=dependencies.metadata,this.gamma=dependencies.gamma,this.transColor=dependencies.transColor,this.palette=dependencies.palette,this.parsed=dependencies.parsed,this.inflateData=dependencies.inflateData,this.finished=dependencies.finished,this.simpleTransparency=dependencies.simpleTransparency,this.headersFinished=dependencies.headersFinished||function(){}};return Parser.prototype.start=function(){this.read(constants.PNG_SIGNATURE.length,this._parseSignature.bind(this))},Parser.prototype._parseSignature=function(data){let signature=constants.PNG_SIGNATURE;for(let i=0;i<signature.length;i++)if(data[i]!==signature[i])return void this.error(new Error("Invalid file signature"));this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._parseChunkBegin=function(data){let length=data.readUInt32BE(0),type=data.readUInt32BE(4),name="";for(let i=4;i<8;i++)name+=String.fromCharCode(data[i]);let ancillary=Boolean(32&data[4]);if(this._hasIHDR||type===constants.TYPE_IHDR){if(this._crc=new CrcCalculator,this._crc.write(Buffer.from(name)),this._chunks[type])return this._chunks[type](length);ancillary?this.read(length+4,this._skipChunk.bind(this)):this.error(new Error("Unsupported critical chunk type "+name))}else this.error(new Error("Expected IHDR on beggining"))},Parser.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},Parser.prototype._parseChunkEnd=function(data){let fileCrc=data.readInt32BE(0),calcCrc=this._crc.crc32();this._options.checkCRC&&calcCrc!==fileCrc?this.error(new Error("Crc error - "+fileCrc+" - "+calcCrc)):this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._handleIHDR=function(length){this.read(length,this._parseIHDR.bind(this))},Parser.prototype._parseIHDR=function(data){this._crc.write(data);let width=data.readUInt32BE(0),height=data.readUInt32BE(4),depth=data[8],colorType=data[9],compr=data[10],filter=data[11],interlace=data[12];if(8!==depth&&4!==depth&&2!==depth&&1!==depth&&16!==depth)return void this.error(new Error("Unsupported bit depth "+depth));if(!(colorType in constants.COLORTYPE_TO_BPP_MAP))return void this.error(new Error("Unsupported color type"));if(0!==compr)return void this.error(new Error("Unsupported compression method"));if(0!==filter)return void this.error(new Error("Unsupported filter method"));if(0!==interlace&&1!==interlace)return void this.error(new Error("Unsupported interlace method"));this._colorType=colorType;let bpp=constants.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:width,height:height,depth:depth,interlace:Boolean(interlace),palette:Boolean(colorType&constants.COLORTYPE_PALETTE),color:Boolean(colorType&constants.COLORTYPE_COLOR),alpha:Boolean(colorType&constants.COLORTYPE_ALPHA),bpp:bpp,colorType:colorType}),this._handleChunkEnd()},Parser.prototype._handlePLTE=function(length){this.read(length,this._parsePLTE.bind(this))},Parser.prototype._parsePLTE=function(data){this._crc.write(data);let entries=Math.floor(data.length/3);for(let i=0;i<entries;i++)this._palette.push([data[3*i],data[3*i+1],data[3*i+2],255]);this.palette(this._palette),this._handleChunkEnd()},Parser.prototype._handleTRNS=function(length){this.simpleTransparency(),this.read(length,this._parseTRNS.bind(this))},Parser.prototype._parseTRNS=function(data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR){if(0===this._palette.length)return void this.error(new Error("Transparency chunk must be after palette"));if(data.length>this._palette.length)return void this.error(new Error("More transparent colors than palette size"));for(let i=0;i<data.length;i++)this._palette[i][3]=data[i];this.palette(this._palette)}this._colorType===constants.COLORTYPE_GRAYSCALE&&this.transColor([data.readUInt16BE(0)]),this._colorType===constants.COLORTYPE_COLOR&&this.transColor([data.readUInt16BE(0),data.readUInt16BE(2),data.readUInt16BE(4)]),this._handleChunkEnd()},Parser.prototype._handleGAMA=function(length){this.read(length,this._parseGAMA.bind(this))},Parser.prototype._parseGAMA=function(data){this._crc.write(data),this.gamma(data.readUInt32BE(0)/constants.GAMMA_DIVISION),this._handleChunkEnd()},Parser.prototype._handleIDAT=function(length){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-length,this._parseIDAT.bind(this,length))},Parser.prototype._parseIDAT=function(length,data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR&&0===this._palette.length)throw new Error("Expected palette not found");this.inflateData(data);let leftOverLength=length-data.length;leftOverLength>0?this._handleIDAT(leftOverLength):this._handleChunkEnd()},Parser.prototype._handleIEND=function(length){this.read(length,this._parseIEND.bind(this))},Parser.prototype._parseIEND=function(data){this._crc.write(data),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()},parser.exports}var hasRequiredBitmapper,formatNormaliser,hasRequiredFormatNormaliser,hasRequiredParserAsync,bitmapper={};function requireBitmapper(){if(hasRequiredBitmapper)return bitmapper;hasRequiredBitmapper=1;let interlaceUtils=requireInterlace(),pixelBppMapper=[function(){},function(pxData,data,pxPos,rawPos){if(rawPos===data.length)throw new Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+1>=data.length)throw new Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=data[rawPos+1]},function(pxData,data,pxPos,rawPos){if(rawPos+2>=data.length)throw new Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+3>=data.length)throw new Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=data[rawPos+3]}],pixelBppCustomMapper=[function(){},function(pxData,pixelData,pxPos,maxBit){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=pixelData[1]},function(pxData,pixelData,pxPos,maxBit){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=pixelData[3]}];function mapImage8Bit(image,pxData,getPxPos,bpp,data,rawPos){let imageWidth=image.width,imageHeight=image.height,imagePass=image.index;for(let y=0;y<imageHeight;y++)for(let x=0;x<imageWidth;x++){let pxPos=getPxPos(x,y,imagePass);pixelBppMapper[bpp](pxData,data,pxPos,rawPos),rawPos+=bpp}return rawPos}function mapImageCustomBit(image,pxData,getPxPos,bpp,bits,maxBit){let imageWidth=image.width,imageHeight=image.height,imagePass=image.index;for(let y=0;y<imageHeight;y++){for(let x=0;x<imageWidth;x++){let pixelData=bits.get(bpp),pxPos=getPxPos(x,y,imagePass);pixelBppCustomMapper[bpp](pxData,pixelData,pxPos,maxBit)}bits.resetAfterLine()}}return bitmapper.dataToBitMap=function(data,bitmapInfo){let bits,pxData,width=bitmapInfo.width,height=bitmapInfo.height,depth=bitmapInfo.depth,bpp=bitmapInfo.bpp,interlace=bitmapInfo.interlace;8!==depth&&(bits=function bitRetriever(data,depth){let leftOver=[],i=0;function split(){if(i===data.length)throw new Error("Ran out of data");let byte8,byte7,byte6,byte5,byte4,byte3,byte2,byte1,byte=data[i];switch(i++,depth){default:throw new Error("unrecognised depth");case 16:byte2=data[i],i++,leftOver.push((byte<<8)+byte2);break;case 4:byte2=15&byte,byte1=byte>>4,leftOver.push(byte1,byte2);break;case 2:byte4=3&byte,byte3=byte>>2&3,byte2=byte>>4&3,byte1=byte>>6&3,leftOver.push(byte1,byte2,byte3,byte4);break;case 1:byte8=1&byte,byte7=byte>>1&1,byte6=byte>>2&1,byte5=byte>>3&1,byte4=byte>>4&1,byte3=byte>>5&1,byte2=byte>>6&1,byte1=byte>>7&1,leftOver.push(byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8)}}return{get:function(count){for(;leftOver.length<count;)split();let returner=leftOver.slice(0,count);return leftOver=leftOver.slice(count),returner},resetAfterLine:function(){leftOver.length=0},end:function(){if(i!==data.length)throw new Error("extra data found")}}}(data,depth)),pxData=depth<=8?Buffer.alloc(width*height*4):new Uint16Array(width*height*4);let images,getPxPos,maxBit=Math.pow(2,depth)-1,rawPos=0;if(interlace)images=interlaceUtils.getImagePasses(width,height),getPxPos=interlaceUtils.getInterlaceIterator(width,height);else{let nonInterlacedPxPos=0;getPxPos=function(){let returner=nonInterlacedPxPos;return nonInterlacedPxPos+=4,returner},images=[{width:width,height:height}]}for(let imageIndex=0;imageIndex<images.length;imageIndex++)8===depth?rawPos=mapImage8Bit(images[imageIndex],pxData,getPxPos,bpp,data,rawPos):mapImageCustomBit(images[imageIndex],pxData,getPxPos,bpp,bits,maxBit);if(8===depth){if(rawPos!==data.length)throw new Error("extra data found")}else bits.end();return pxData},bitmapper}function requireFormatNormaliser(){if(hasRequiredFormatNormaliser)return formatNormaliser;return hasRequiredFormatNormaliser=1,formatNormaliser=function(indata,imageData){let depth=imageData.depth,width=imageData.width,height=imageData.height,colorType=imageData.colorType,transColor=imageData.transColor,palette=imageData.palette,outdata=indata;return 3===colorType?function dePalette(indata,outdata,width,height,palette){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let color=palette[indata[pxPos]];if(!color)throw new Error("index "+indata[pxPos]+" not in palette");for(let i=0;i<4;i++)outdata[pxPos+i]=color[i];pxPos+=4}}(indata,outdata,width,height,palette):(transColor&&function replaceTransparentColor(indata,outdata,width,height,transColor){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let makeTrans=!1;if(1===transColor.length?transColor[0]===indata[pxPos]&&(makeTrans=!0):transColor[0]===indata[pxPos]&&transColor[1]===indata[pxPos+1]&&transColor[2]===indata[pxPos+2]&&(makeTrans=!0),makeTrans)for(let i=0;i<4;i++)outdata[pxPos+i]=0;pxPos+=4}}(indata,outdata,width,height,transColor),8!==depth&&(16===depth&&(outdata=Buffer.alloc(width*height*4)),function scaleDepth(indata,outdata,width,height,depth){let maxInSample=Math.pow(2,depth)-1,pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){for(let i=0;i<4;i++)outdata[pxPos+i]=Math.floor(255*indata[pxPos+i]/maxInSample+.5);pxPos+=4}}(indata,outdata,width,height,depth))),outdata}}function requireParserAsync(){if(hasRequiredParserAsync)return parserAsync.exports;hasRequiredParserAsync=1;let util=require$$0__default$3.default,zlib=zlib__default.default,ChunkStream=requireChunkstream(),FilterAsync=function requireFilterParseAsync(){if(hasRequiredFilterParseAsync)return filterParseAsync.exports;hasRequiredFilterParseAsync=1;let util=require$$0__default$3.default,ChunkStream=requireChunkstream(),Filter=requireFilterParse(),FilterAsync=filterParseAsync.exports=function(bitmapInfo){ChunkStream.call(this);let buffers=[],that=this;this._filter=new Filter(bitmapInfo,{read:this.read.bind(this),write:function(buffer){buffers.push(buffer)},complete:function(){that.emit("complete",Buffer.concat(buffers))}}),this._filter.start()};return util.inherits(FilterAsync,ChunkStream),filterParseAsync.exports}(),Parser=requireParser(),bitmapper=requireBitmapper(),formatNormaliser=requireFormatNormaliser(),ParserAsync=parserAsync.exports=function(options){ChunkStream.call(this),this._parser=new Parser(options,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=options,this.writable=!0,this._parser.start()};return util.inherits(ParserAsync,ChunkStream),ParserAsync.prototype._handleError=function(err){this.emit("error",err),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",(function(){}))),this.errord=!0},ParserAsync.prototype._inflateData=function(data){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=zlib.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let imageSize=(1+(this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3))*this._bitmapInfo.height,chunkSize=Math.max(imageSize,zlib.Z_MIN_CHUNK);this._inflate=zlib.createInflate({chunkSize:chunkSize});let leftToInflate=imageSize,emitError=this.emit.bind(this,"error");this._inflate.on("error",(function(err){leftToInflate&&emitError(err)})),this._filter.on("complete",this._complete.bind(this));let filterWrite=this._filter.write.bind(this._filter);this._inflate.on("data",(function(chunk){leftToInflate&&(chunk.length>leftToInflate&&(chunk=chunk.slice(0,leftToInflate)),leftToInflate-=chunk.length,filterWrite(chunk))})),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(data)},ParserAsync.prototype._handleMetaData=function(metaData){this._metaData=metaData,this._bitmapInfo=Object.create(metaData),this._filter=new FilterAsync(this._bitmapInfo)},ParserAsync.prototype._handleTransColor=function(transColor){this._bitmapInfo.transColor=transColor},ParserAsync.prototype._handlePalette=function(palette){this._bitmapInfo.palette=palette},ParserAsync.prototype._simpleTransparency=function(){this._metaData.alpha=!0},ParserAsync.prototype._headersFinished=function(){this.emit("metadata",this._metaData)},ParserAsync.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))},ParserAsync.prototype._complete=function(filteredData){if(this.errord)return;let normalisedBitmapData;try{let bitmapData=bitmapper.dataToBitMap(filteredData,this._bitmapInfo);normalisedBitmapData=formatNormaliser(bitmapData,this._bitmapInfo),bitmapData=null}catch(ex){return void this._handleError(ex)}this.emit("parsed",normalisedBitmapData)},parserAsync.exports}var bitpacker,hasRequiredBitpacker,filterPack,hasRequiredFilterPack,hasRequiredPacker,hasRequiredPackerAsync,packerAsync={exports:{}},packer={exports:{}};function requirePacker(){if(hasRequiredPacker)return packer.exports;hasRequiredPacker=1;let constants=requireConstants(),CrcStream=requireCrc(),bitPacker=function requireBitpacker(){if(hasRequiredBitpacker)return bitpacker;hasRequiredBitpacker=1;let constants=requireConstants();return bitpacker=function(dataIn,width,height,options){let outHasAlpha=-1!==[constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType);if(options.colorType===options.inputColorType){let bigEndian=function(){let buffer=new ArrayBuffer(2);return new DataView(buffer).setInt16(0,256,!0),256!==new Int16Array(buffer)[0]}();if(8===options.bitDepth||16===options.bitDepth&&bigEndian)return dataIn}let data=16!==options.bitDepth?dataIn:new Uint16Array(dataIn.buffer),maxValue=255,inBpp=constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];4!==inBpp||options.inputHasAlpha||(inBpp=3);let outBpp=constants.COLORTYPE_TO_BPP_MAP[options.colorType];16===options.bitDepth&&(maxValue=65535,outBpp*=2);let outData=Buffer.alloc(width*height*outBpp),inIndex=0,outIndex=0,bgColor=options.bgColor||{};function getRGBA(){let red,green,blue,alpha=maxValue;switch(options.inputColorType){case constants.COLORTYPE_COLOR_ALPHA:alpha=data[inIndex+3],red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_COLOR:red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_ALPHA:alpha=data[inIndex+1],red=data[inIndex],green=red,blue=red;break;case constants.COLORTYPE_GRAYSCALE:red=data[inIndex],green=red,blue=red;break;default:throw new Error("input color type:"+options.inputColorType+" is not supported at present")}return options.inputHasAlpha&&(outHasAlpha||(alpha/=maxValue,red=Math.min(Math.max(Math.round((1-alpha)*bgColor.red+alpha*red),0),maxValue),green=Math.min(Math.max(Math.round((1-alpha)*bgColor.green+alpha*green),0),maxValue),blue=Math.min(Math.max(Math.round((1-alpha)*bgColor.blue+alpha*blue),0),maxValue))),{red:red,green:green,blue:blue,alpha:alpha}}void 0===bgColor.red&&(bgColor.red=maxValue),void 0===bgColor.green&&(bgColor.green=maxValue),void 0===bgColor.blue&&(bgColor.blue=maxValue);for(let y=0;y<height;y++)for(let x=0;x<width;x++){let rgba=getRGBA();switch(options.colorType){case constants.COLORTYPE_COLOR_ALPHA:case constants.COLORTYPE_COLOR:8===options.bitDepth?(outData[outIndex]=rgba.red,outData[outIndex+1]=rgba.green,outData[outIndex+2]=rgba.blue,outHasAlpha&&(outData[outIndex+3]=rgba.alpha)):(outData.writeUInt16BE(rgba.red,outIndex),outData.writeUInt16BE(rgba.green,outIndex+2),outData.writeUInt16BE(rgba.blue,outIndex+4),outHasAlpha&&outData.writeUInt16BE(rgba.alpha,outIndex+6));break;case constants.COLORTYPE_ALPHA:case constants.COLORTYPE_GRAYSCALE:{let grayscale=(rgba.red+rgba.green+rgba.blue)/3;8===options.bitDepth?(outData[outIndex]=grayscale,outHasAlpha&&(outData[outIndex+1]=rgba.alpha)):(outData.writeUInt16BE(grayscale,outIndex),outHasAlpha&&outData.writeUInt16BE(rgba.alpha,outIndex+2));break}default:throw new Error("unrecognised color Type "+options.colorType)}inIndex+=inBpp,outIndex+=outBpp}return outData}}(),filter=function requireFilterPack(){if(hasRequiredFilterPack)return filterPack;hasRequiredFilterPack=1;let paethPredictor=requirePaethPredictor(),filters={0:function filterNone(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++)rawData[rawPos+x]=pxData[pxPos+x]},1:function filterSub(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;rawData[rawPos+x]=val}},2:function filterUp(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++){let up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-up;rawData[rawPos+x]=val}},3:function filterAvg(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);rawData[rawPos+x]=val}},4:function filterPaeth(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);rawData[rawPos+x]=val}}},filterSums={0:function filterSumNone(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let i=pxPos;i<length;i++)sum+=Math.abs(pxData[i]);return sum},1:function filterSumSub(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;sum+=Math.abs(val)}return sum},2:function filterSumUp(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let x=pxPos;x<length;x++){let up=pxPos>0?pxData[x-byteWidth]:0,val=pxData[x]-up;sum+=Math.abs(val)}return sum},3:function filterSumAvg(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);sum+=Math.abs(val)}return sum},4:function filterSumPaeth(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);sum+=Math.abs(val)}return sum}};return filterPack=function(pxData,width,height,options,bpp){let filterTypes;if("filterType"in options&&-1!==options.filterType){if("number"!=typeof options.filterType)throw new Error("unrecognised filter types");filterTypes=[options.filterType]}else filterTypes=[0,1,2,3,4];16===options.bitDepth&&(bpp*=2);let byteWidth=width*bpp,rawPos=0,pxPos=0,rawData=Buffer.alloc((byteWidth+1)*height),sel=filterTypes[0];for(let y=0;y<height;y++){if(filterTypes.length>1){let min=1/0;for(let i=0;i<filterTypes.length;i++){let sum=filterSums[filterTypes[i]](pxData,pxPos,byteWidth,bpp);sum<min&&(sel=filterTypes[i],min=sum)}}rawData[rawPos]=sel,rawPos++,filters[sel](pxData,pxPos,byteWidth,rawData,rawPos,bpp),rawPos+=byteWidth,pxPos+=byteWidth}return rawData}}(),zlib=zlib__default.default,Packer=packer.exports=function(options){if(this._options=options,options.deflateChunkSize=options.deflateChunkSize||32768,options.deflateLevel=null!=options.deflateLevel?options.deflateLevel:9,options.deflateStrategy=null!=options.deflateStrategy?options.deflateStrategy:3,options.inputHasAlpha=null==options.inputHasAlpha||options.inputHasAlpha,options.deflateFactory=options.deflateFactory||zlib.createDeflate,options.bitDepth=options.bitDepth||8,options.colorType="number"==typeof options.colorType?options.colorType:constants.COLORTYPE_COLOR_ALPHA,options.inputColorType="number"==typeof options.inputColorType?options.inputColorType:constants.COLORTYPE_COLOR_ALPHA,-1===[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType))throw new Error("option color type:"+options.colorType+" is not supported at present");if(-1===[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.inputColorType))throw new Error("option input color type:"+options.inputColorType+" is not supported at present");if(8!==options.bitDepth&&16!==options.bitDepth)throw new Error("option bit depth:"+options.bitDepth+" is not supported at present")};return Packer.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},Packer.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},Packer.prototype.filterData=function(data,width,height){let packedData=bitPacker(data,width,height,this._options),bpp=constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];return filter(packedData,width,height,this._options,bpp)},Packer.prototype._packChunk=function(type,data){let len=data?data.length:0,buf=Buffer.alloc(len+12);return buf.writeUInt32BE(len,0),buf.writeUInt32BE(type,4),data&&data.copy(buf,8),buf.writeInt32BE(CrcStream.crc32(buf.slice(4,buf.length-4)),buf.length-4),buf},Packer.prototype.packGAMA=function(gamma){let buf=Buffer.alloc(4);return buf.writeUInt32BE(Math.floor(gamma*constants.GAMMA_DIVISION),0),this._packChunk(constants.TYPE_gAMA,buf)},Packer.prototype.packIHDR=function(width,height){let buf=Buffer.alloc(13);return buf.writeUInt32BE(width,0),buf.writeUInt32BE(height,4),buf[8]=this._options.bitDepth,buf[9]=this._options.colorType,buf[10]=0,buf[11]=0,buf[12]=0,this._packChunk(constants.TYPE_IHDR,buf)},Packer.prototype.packIDAT=function(data){return this._packChunk(constants.TYPE_IDAT,data)},Packer.prototype.packIEND=function(){return this._packChunk(constants.TYPE_IEND,null)},packer.exports}var hasRequiredSyncInflate,pngSync={},syncInflate={exports:{}};function requireSyncInflate(){return hasRequiredSyncInflate||(hasRequiredSyncInflate=1,function(module,exports){let assert=require$$4__default$1.default.ok,zlib=zlib__default.default,util=require$$0__default$3.default,kMaxLength=require$$3__default$1.default.kMaxLength;function Inflate(opts){if(!(this instanceof Inflate))return new Inflate(opts);opts&&opts.chunkSize<zlib.Z_MIN_CHUNK&&(opts.chunkSize=zlib.Z_MIN_CHUNK),zlib.Inflate.call(this,opts),this._offset=void 0===this._offset?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,opts&&null!=opts.maxLength&&(this._maxLength=opts.maxLength)}function _close(engine,callback){callback&&process.nextTick(callback),engine._handle&&(engine._handle.close(),engine._handle=null)}function inflateSync(buffer,opts){return function zlibBufferSync(engine,buffer){if("string"==typeof buffer&&(buffer=Buffer.from(buffer)),!(buffer instanceof Buffer))throw new TypeError("Not a string or buffer");let flushFlag=engine._finishFlushFlag;return null==flushFlag&&(flushFlag=zlib.Z_FINISH),engine._processChunk(buffer,flushFlag)}(new Inflate(opts),buffer)}Inflate.prototype._processChunk=function(chunk,flushFlag,asyncCb){if("function"==typeof asyncCb)return zlib.Inflate._processChunk.call(this,chunk,flushFlag,asyncCb);let error,res,self=this,availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,leftToInflate=this._maxLength,inOff=0,buffers=[],nread=0;function handleChunk(availInAfter,availOutAfter){if(self._hadError)return;let have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){let out=self._buffer.slice(self._offset,self._offset+have);if(self._offset+=have,out.length>leftToInflate&&(out=out.slice(0,leftToInflate)),buffers.push(out),nread+=out.length,leftToInflate-=out.length,0===leftToInflate)return!1}return(0===availOutAfter||self._offset>=self._chunkSize)&&(availOutBefore=self._chunkSize,self._offset=0,self._buffer=Buffer.allocUnsafe(self._chunkSize)),0===availOutAfter&&(inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!0)}this.on("error",(function(err){error=err})),assert(this._handle,"zlib binding closed");do{res=this._handle.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore),res=res||this._writeState}while(!this._hadError&&handleChunk(res[0],res[1]));if(this._hadError)throw error;if(nread>=kMaxLength)throw _close(this),new RangeError("Cannot create final Buffer. It would be larger than 0x"+kMaxLength.toString(16)+" bytes");let buf=Buffer.concat(buffers,nread);return _close(this),buf},util.inherits(Inflate,zlib.Inflate),module.exports=exports=inflateSync,exports.Inflate=Inflate,exports.createInflate=function createInflate(opts){return new Inflate(opts)},exports.inflateSync=inflateSync}(syncInflate,syncInflate.exports)),syncInflate.exports}var hasRequiredSyncReader,syncReader={exports:{}};function requireSyncReader(){if(hasRequiredSyncReader)return syncReader.exports;hasRequiredSyncReader=1;let SyncReader=syncReader.exports=function(buffer){this._buffer=buffer,this._reads=[]};return SyncReader.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback})},SyncReader.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let read=this._reads[0];if(!this._buffer.length||!(this._buffer.length>=read.length||read.allowLess))break;{this._reads.shift();let buf=this._buffer;this._buffer=buf.slice(read.length),read.func.call(this,buf.slice(0,read.length))}}return this._reads.length>0?new Error("There are some read requests waitng on finished stream"):this._buffer.length>0?new Error("unrecognised content at end of stream"):void 0},syncReader.exports}var hasRequiredFilterParseSync,parserSync,hasRequiredParserSync,packerSync,hasRequiredPackerSync,hasRequiredPngSync,hasRequiredPng$1,filterParseSync={};function requireParserSync(){if(hasRequiredParserSync)return parserSync;hasRequiredParserSync=1;let hasSyncZlib=!0,zlib=zlib__default.default,inflateSync=requireSyncInflate();zlib.deflateSync||(hasSyncZlib=!1);let SyncReader=requireSyncReader(),FilterSync=function requireFilterParseSync(){if(hasRequiredFilterParseSync)return filterParseSync;hasRequiredFilterParseSync=1;let SyncReader=requireSyncReader(),Filter=requireFilterParse();return filterParseSync.process=function(inBuffer,bitmapInfo){let outBuffers=[],reader=new SyncReader(inBuffer);return new Filter(bitmapInfo,{read:reader.read.bind(reader),write:function(bufferPart){outBuffers.push(bufferPart)},complete:function(){}}).start(),reader.process(),Buffer.concat(outBuffers)},filterParseSync}(),Parser=requireParser(),bitmapper=requireBitmapper(),formatNormaliser=requireFormatNormaliser();return parserSync=function(buffer,options){if(!hasSyncZlib)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let err,metaData,gamma;let inflateDataList=[];let reader=new SyncReader(buffer),parser=new Parser(options,{read:reader.read.bind(reader),error:function handleError(_err_){err=_err_},metadata:function handleMetaData(_metaData_){metaData=_metaData_},gamma:function handleGamma(_gamma_){gamma=_gamma_},palette:function handlePalette(palette){metaData.palette=palette},transColor:function handleTransColor(transColor){metaData.transColor=transColor},inflateData:function handleInflateData(inflatedData){inflateDataList.push(inflatedData)},simpleTransparency:function handleSimpleTransparency(){metaData.alpha=!0}});if(parser.start(),reader.process(),err)throw err;let inflatedData,inflateData=Buffer.concat(inflateDataList);if(inflateDataList.length=0,metaData.interlace)inflatedData=zlib.inflateSync(inflateData);else{let imageSize=(1+(metaData.width*metaData.bpp*metaData.depth+7>>3))*metaData.height;inflatedData=inflateSync(inflateData,{chunkSize:imageSize,maxLength:imageSize})}if(inflateData=null,!inflatedData||!inflatedData.length)throw new Error("bad png - invalid inflate data response");let unfilteredData=FilterSync.process(inflatedData,metaData);inflateData=null;let bitmapData=bitmapper.dataToBitMap(unfilteredData,metaData);unfilteredData=null;let normalisedBitmapData=formatNormaliser(bitmapData,metaData);return metaData.data=normalisedBitmapData,metaData.gamma=gamma||0,metaData},parserSync}function requirePngSync(){if(hasRequiredPngSync)return pngSync;hasRequiredPngSync=1;let parse=requireParserSync(),pack=function requirePackerSync(){if(hasRequiredPackerSync)return packerSync;hasRequiredPackerSync=1;let hasSyncZlib=!0,zlib=zlib__default.default;zlib.deflateSync||(hasSyncZlib=!1);let constants=requireConstants(),Packer=requirePacker();return packerSync=function(metaData,opt){if(!hasSyncZlib)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let packer=new Packer(opt||{}),chunks=[];chunks.push(Buffer.from(constants.PNG_SIGNATURE)),chunks.push(packer.packIHDR(metaData.width,metaData.height)),metaData.gamma&&chunks.push(packer.packGAMA(metaData.gamma));let filteredData=packer.filterData(metaData.data,metaData.width,metaData.height),compressedData=zlib.deflateSync(filteredData,packer.getDeflateOptions());if(filteredData=null,!compressedData||!compressedData.length)throw new Error("bad png - invalid compressed data response");return chunks.push(packer.packIDAT(compressedData)),chunks.push(packer.packIEND()),Buffer.concat(chunks)},packerSync}();return pngSync.read=function(buffer,options){return parse(buffer,options||{})},pngSync.write=function(png,options){return pack(png,options)},pngSync}function requirePng$1(){if(hasRequiredPng$1)return png;hasRequiredPng$1=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,Parser=requireParserAsync(),Packer=function requirePackerAsync(){if(hasRequiredPackerAsync)return packerAsync.exports;hasRequiredPackerAsync=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,constants=requireConstants(),Packer=requirePacker(),PackerAsync=packerAsync.exports=function(opt){Stream.call(this);let options=opt||{};this._packer=new Packer(options),this._deflate=this._packer.createDeflate(),this.readable=!0};return util.inherits(PackerAsync,Stream),PackerAsync.prototype.pack=function(data,width,height,gamma){this.emit("data",Buffer.from(constants.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(width,height)),gamma&&this.emit("data",this._packer.packGAMA(gamma));let filteredData=this._packer.filterData(data,width,height);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(compressedData){this.emit("data",this._packer.packIDAT(compressedData))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(filteredData)},packerAsync.exports}(),PNGSync=requirePngSync(),PNG=png.PNG=function(options){Stream.call(this),options=options||{},this.width=0|options.width,this.height=0|options.height,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,options.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new Parser(options),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",function(data){this.data=data,this.emit("parsed",data)}.bind(this)),this._packer=new Packer(options),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};return util.inherits(PNG,Stream),PNG.sync=PNGSync,PNG.prototype.pack=function(){return this.data&&this.data.length?(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this):(this.emit("error","No data provided"),this)},PNG.prototype.parse=function(data,callback){if(callback){let onParsed,onError;onParsed=function(parsedData){this.removeListener("error",onError),this.data=parsedData,callback(null,this)}.bind(this),onError=function(err){this.removeListener("parsed",onParsed),callback(err,null)}.bind(this),this.once("parsed",onParsed),this.once("error",onError)}return this.end(data),this},PNG.prototype.write=function(data){return this._parser.write(data),!0},PNG.prototype.end=function(data){this._parser.end(data)},PNG.prototype._metadata=function(metadata){this.width=metadata.width,this.height=metadata.height,this.emit("metadata",metadata)},PNG.prototype._gamma=function(gamma){this.gamma=gamma},PNG.prototype._handleClose=function(){this._parser.writable||this._packer.readable||this.emit("close")},PNG.bitblt=function(src,dst,srcX,srcY,width,height,deltaX,deltaY){if(srcY|=0,width|=0,height|=0,deltaX|=0,deltaY|=0,(srcX|=0)>src.width||srcY>src.height||srcX+width>src.width||srcY+height>src.height)throw new Error("bitblt reading outside image");if(deltaX>dst.width||deltaY>dst.height||deltaX+width>dst.width||deltaY+height>dst.height)throw new Error("bitblt writing outside image");for(let y=0;y<height;y++)src.data.copy(dst.data,(deltaY+y)*dst.width+deltaX<<2,(srcY+y)*src.width+srcX<<2,(srcY+y)*src.width+srcX+width<<2)},PNG.prototype.bitblt=function(dst,srcX,srcY,width,height,deltaX,deltaY){return PNG.bitblt(this,dst,srcX,srcY,width,height,deltaX,deltaY),this},PNG.adjustGamma=function(src){if(src.gamma){for(let y=0;y<src.height;y++)for(let x=0;x<src.width;x++){let idx=src.width*y+x<<2;for(let i=0;i<3;i++){let sample=src.data[idx+i]/255;sample=Math.pow(sample,1/2.2/src.gamma),src.data[idx+i]=Math.round(255*sample)}}src.gamma=0}},PNG.prototype.adjustGamma=function(){PNG.adjustGamma(this)},png}var hasRequiredUtils,hasRequiredPng,utils={};function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(exports){function hex2rgba(hex){if("number"==typeof hex&&(hex=hex.toString()),"string"!=typeof hex)throw new Error("Color should be defined as hex string");let hexCode=hex.slice().replace("#","").split("");if(hexCode.length<3||5===hexCode.length||hexCode.length>8)throw new Error("Invalid hex color: "+hex);3!==hexCode.length&&4!==hexCode.length||(hexCode=Array.prototype.concat.apply([],hexCode.map((function(c){return[c,c]})))),6===hexCode.length&&hexCode.push("F","F");const hexValue=parseInt(hexCode.join(""),16);return{r:hexValue>>24&255,g:hexValue>>16&255,b:hexValue>>8&255,a:255&hexValue,hex:"#"+hexCode.slice(0,6).join("")}}exports.getOptions=function getOptions(options){options||(options={}),options.color||(options.color={});const margin=void 0===options.margin||null===options.margin||options.margin<0?4:options.margin,width=options.width&&options.width>=21?options.width:void 0,scale=options.scale||4;return{width:width,scale:width?4:scale,margin:margin,color:{dark:hex2rgba(options.color.dark||"#000000ff"),light:hex2rgba(options.color.light||"#ffffffff")},type:options.type,rendererOpts:options.rendererOpts||{}}},exports.getScale=function getScale(qrSize,opts){return opts.width&&opts.width>=qrSize+2*opts.margin?opts.width/(qrSize+2*opts.margin):opts.scale},exports.getImageWidth=function getImageWidth(qrSize,opts){const scale=exports.getScale(qrSize,opts);return Math.floor((qrSize+2*opts.margin)*scale)},exports.qrToImageData=function qrToImageData(imgData,qr,opts){const size=qr.modules.size,data=qr.modules.data,scale=exports.getScale(size,opts),symbolSize=Math.floor((size+2*opts.margin)*scale),scaledMargin=opts.margin*scale,palette=[opts.color.light,opts.color.dark];for(let i=0;i<symbolSize;i++)for(let j=0;j<symbolSize;j++){let posDst=4*(i*symbolSize+j),pxColor=opts.color.light;if(i>=scaledMargin&&j>=scaledMargin&&i<symbolSize-scaledMargin&&j<symbolSize-scaledMargin){pxColor=palette[data[Math.floor((i-scaledMargin)/scale)*size+Math.floor((j-scaledMargin)/scale)]?1:0]}imgData[posDst++]=pxColor.r,imgData[posDst++]=pxColor.g,imgData[posDst++]=pxColor.b,imgData[posDst]=pxColor.a}}}(utils)),utils}var hasRequiredUtf8,utf8={};var hasRequiredTerminal$1,terminal$1={},terminal={};var hasRequiredTerminalSmall,hasRequiredTerminal,terminalSmall={};function requireTerminal(){if(hasRequiredTerminal)return terminal$1;hasRequiredTerminal=1;const big=function requireTerminal$1(){return hasRequiredTerminal$1||(hasRequiredTerminal$1=1,terminal.render=function(qrData,options,cb){const size=qrData.modules.size,data=qrData.modules.data,white=" ";let output="";const hMargin=Array(size+3).join(white),vMargin=Array(2).join(white);output+=hMargin+"\n";for(let i=0;i<size;++i){output+=white;for(let j=0;j<size;j++)output+=data[i*size+j]?" ":white;output+=vMargin+"\n"}return output+=hMargin+"\n","function"==typeof cb&&cb(null,output),output}),terminal}(),small=function requireTerminalSmall(){if(hasRequiredTerminalSmall)return terminalSmall;hasRequiredTerminalSmall=1;const mkCodePixel=function(modules,size,x,y){const sizePlus=size+1;return x>=sizePlus||y>=sizePlus||y<-1||x<-1?"0":x>=size||y>=size||y<0||x<0?"1":modules[y*size+x]?"2":"1"},mkCode=function(modules,size,x,y){return mkCodePixel(modules,size,x,y)+mkCodePixel(modules,size,x,y+1)};return terminalSmall.render=function(qrData,options,cb){const size=qrData.modules.size,data=qrData.modules.data,inverse=!(!options||!options.inverse),lineSetup=options&&options.inverse?"":"",palette=function(lineSetup,foregroundWhite,foregroundBlack){return{"00":" "+lineSetup,"01":""+foregroundWhite+"▄"+lineSetup,"02":""+foregroundBlack+"▄"+lineSetup,10:""+foregroundWhite+"▀"+lineSetup,11:" ",12:"▄",20:""+foregroundBlack+"▀"+lineSetup,21:"▀",22:"█"}}(lineSetup,inverse?"":"",inverse?"":""),newLine="\n"+lineSetup;let output=lineSetup;for(let y=-1;y<size+1;y+=2){for(let x=-1;x<size;x++)output+=palette[mkCode(data,size,x,y)];output+=palette[mkCode(data,size,size,y)]+newLine}return output+="","function"==typeof cb&&cb(null,output),output},terminalSmall}();return terminal$1.render=function(qrData,options,cb){return options&&options.small?small.render(qrData,options,cb):big.render(qrData,options,cb)},terminal$1}var hasRequiredSvgTag,hasRequiredSvg,svg={},svgTag={};function requireSvgTag(){if(hasRequiredSvgTag)return svgTag;hasRequiredSvgTag=1;const Utils=requireUtils();function getColorAttrib(color,attrib){const alpha=color.a/255,str=attrib+'="'+color.hex+'"';return alpha<1?str+" "+attrib+'-opacity="'+alpha.toFixed(2).slice(1)+'"':str}function svgCmd(cmd,x,y){let str=cmd+x;return void 0!==y&&(str+=" "+y),str}return svgTag.render=function render(qrData,options,cb){const opts=Utils.getOptions(options),size=qrData.modules.size,data=qrData.modules.data,qrcodesize=size+2*opts.margin,bg=opts.color.light.a?"<path "+getColorAttrib(opts.color.light,"fill")+' d="M0 0h'+qrcodesize+"v"+qrcodesize+'H0z"/>':"",path="<path "+getColorAttrib(opts.color.dark,"stroke")+' d="'+function qrToPath(data,size,margin){let path="",moveBy=0,newRow=!1,lineLength=0;for(let i=0;i<data.length;i++){const col=Math.floor(i%size),row=Math.floor(i/size);col||newRow||(newRow=!0),data[i]?(lineLength++,i>0&&col>0&&data[i-1]||(path+=newRow?svgCmd("M",col+margin,.5+row+margin):svgCmd("m",moveBy,0),moveBy=0,newRow=!1),col+1<size&&data[i+1]||(path+=svgCmd("h",lineLength),lineLength=0)):moveBy++}return path}(data,size,opts.margin)+'"/>',viewBox='viewBox="0 0 '+qrcodesize+" "+qrcodesize+'"',svgTag='<svg xmlns="http://www.w3.org/2000/svg" '+(opts.width?'width="'+opts.width+'" height="'+opts.width+'" ':"")+viewBox+' shape-rendering="crispEdges">'+bg+path+"</svg>\n";return"function"==typeof cb&&cb(null,svgTag),svgTag},svgTag}var hasRequiredCanvas,hasRequiredBrowser,hasRequiredServer,lib,hasRequiredLib,browser={},canvas={};function requireCanvas(){return hasRequiredCanvas||(hasRequiredCanvas=1,function(exports){const Utils=requireUtils();exports.render=function render(qrData,canvas,options){let opts=options,canvasEl=canvas;void 0!==opts||canvas&&canvas.getContext||(opts=canvas,canvas=void 0),canvas||(canvasEl=function getCanvasElement(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),opts=Utils.getOptions(opts);const size=Utils.getImageWidth(qrData.modules.size,opts),ctx=canvasEl.getContext("2d"),image=ctx.createImageData(size,size);return Utils.qrToImageData(image.data,qrData,opts),function clearCanvas(ctx,canvas,size){ctx.clearRect(0,0,canvas.width,canvas.height),canvas.style||(canvas.style={}),canvas.height=size,canvas.width=size,canvas.style.height=size+"px",canvas.style.width=size+"px"}(ctx,canvasEl,size),ctx.putImageData(image,0,0),canvasEl},exports.renderToDataURL=function renderToDataURL(qrData,canvas,options){let opts=options;void 0!==opts||canvas&&canvas.getContext||(opts=canvas,canvas=void 0),opts||(opts={});const canvasEl=exports.render(qrData,canvas,opts),type=opts.type||"image/png",rendererOpts=opts.rendererOpts||{};return canvasEl.toDataURL(type,rendererOpts.quality)}}(canvas)),canvas}function requireServer(){if(hasRequiredServer)return server;hasRequiredServer=1;const canPromise=requireCanPromise(),QRCode=requireQrcode(),PngRenderer=function requirePng(){return hasRequiredPng||(hasRequiredPng=1,function(exports){const fs=fs__default.default,PNG=requirePng$1().PNG,Utils=requireUtils();exports.render=function render(qrData,options){const opts=Utils.getOptions(options),pngOpts=opts.rendererOpts,size=Utils.getImageWidth(qrData.modules.size,opts);pngOpts.width=size,pngOpts.height=size;const pngImage=new PNG(pngOpts);return Utils.qrToImageData(pngImage.data,qrData,opts),pngImage},exports.renderToDataURL=function renderToDataURL(qrData,options,cb){void 0===cb&&(cb=options,options=void 0),exports.renderToBuffer(qrData,options,(function(err,output){err&&cb(err);let url="data:image/png;base64,";url+=output.toString("base64"),cb(null,url)}))},exports.renderToBuffer=function renderToBuffer(qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const png=exports.render(qrData,options),buffer=[];png.on("error",cb),png.on("data",(function(data){buffer.push(data)})),png.on("end",(function(){cb(null,Buffer.concat(buffer))})),png.pack()},exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);let called=!1;const done=(...args)=>{called||(called=!0,cb.apply(null,args))},stream=fs.createWriteStream(path);stream.on("error",done),stream.on("close",done),exports.renderToFileStream(stream,qrData,options)},exports.renderToFileStream=function renderToFileStream(stream,qrData,options){exports.render(qrData,options).pack().pipe(stream)}}(png$1)),png$1}(),Utf8Renderer=function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(exports){const Utils=requireUtils(),BLOCK_CHAR={WW:" ",WB:"▄",BB:"█",BW:"▀"},INVERTED_BLOCK_CHAR={BB:" ",BW:"▄",WW:"█",WB:"▀"};function getBlockChar(top,bottom,blocks){return top&&bottom?blocks.BB:top&&!bottom?blocks.BW:!top&&bottom?blocks.WB:blocks.WW}exports.render=function(qrData,options,cb){const opts=Utils.getOptions(options);let blocks=BLOCK_CHAR;"#ffffff"!==opts.color.dark.hex&&"#000000"!==opts.color.light.hex||(blocks=INVERTED_BLOCK_CHAR);const size=qrData.modules.size,data=qrData.modules.data;let output="",hMargin=Array(size+2*opts.margin+1).join(blocks.WW);hMargin=Array(opts.margin/2+1).join(hMargin+"\n");const vMargin=Array(opts.margin+1).join(blocks.WW);output+=hMargin;for(let i=0;i<size;i+=2){output+=vMargin;for(let j=0;j<size;j++)output+=getBlockChar(data[i*size+j],data[(i+1)*size+j],blocks);output+=vMargin+"\n"}return output+=hMargin.slice(0,-1),"function"==typeof cb&&cb(null,output),output},exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const fs=fs__default.default,utf8=exports.render(qrData,options);fs.writeFile(path,utf8,cb)}}(utf8)),utf8}(),TerminalRenderer=requireTerminal(),SvgRenderer=function requireSvg(){return hasRequiredSvg||(hasRequiredSvg=1,function(exports){const svgTagRenderer=requireSvgTag();exports.render=svgTagRenderer.render,exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const fs=fs__default.default,xmlStr='<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+exports.render(qrData,options);fs.writeFile(path,xmlStr,cb)}}(svg)),svg}();function checkParams(text,opts,cb){if(void 0===text)throw new Error("String required as first argument");if(void 0===cb&&(cb=opts,opts={}),"function"!=typeof cb){if(!canPromise())throw new Error("Callback required as last argument");opts=cb||{},cb=null}return{opts:opts,cb:cb}}function getRendererFromType(type){switch(type){case"svg":return SvgRenderer;case"txt":case"utf8":return Utf8Renderer;default:return PngRenderer}}function render(renderFunc,text,params){if(!params.cb)return new Promise((function(resolve,reject){try{const data=QRCode.create(text,params.opts);return renderFunc(data,params.opts,(function(err,data){return err?reject(err):resolve(data)}))}catch(e){reject(e)}}));try{const data=QRCode.create(text,params.opts);return renderFunc(data,params.opts,params.cb)}catch(e){params.cb(e)}}return server.create=QRCode.create,server.toCanvas=function requireBrowser(){if(hasRequiredBrowser)return browser;hasRequiredBrowser=1;const canPromise=requireCanPromise(),QRCode=requireQrcode(),CanvasRenderer=requireCanvas(),SvgRenderer=requireSvgTag();function renderCanvas(renderFunc,canvas,text,opts,cb){const args=[].slice.call(arguments,1),argsNum=args.length,isLastArgCb="function"==typeof args[argsNum-1];if(!isLastArgCb&&!canPromise())throw new Error("Callback required as last argument");if(!isLastArgCb){if(argsNum<1)throw new Error("Too few arguments provided");return 1===argsNum?(text=canvas,canvas=opts=void 0):2!==argsNum||canvas.getContext||(opts=text,text=canvas,canvas=void 0),new Promise((function(resolve,reject){try{const data=QRCode.create(text,opts);resolve(renderFunc(data,canvas,opts))}catch(e){reject(e)}}))}if(argsNum<2)throw new Error("Too few arguments provided");2===argsNum?(cb=text,text=canvas,canvas=opts=void 0):3===argsNum&&(canvas.getContext&&void 0===cb?(cb=opts,opts=void 0):(cb=opts,opts=text,text=canvas,canvas=void 0));try{const data=QRCode.create(text,opts);cb(null,renderFunc(data,canvas,opts))}catch(e){cb(e)}}return browser.create=QRCode.create,browser.toCanvas=renderCanvas.bind(null,CanvasRenderer.render),browser.toDataURL=renderCanvas.bind(null,CanvasRenderer.renderToDataURL),browser.toString=renderCanvas.bind(null,(function(data,_,opts){return SvgRenderer.render(data,opts)})),browser}().toCanvas,server.toString=function toString(text,opts,cb){const params=checkParams(text,opts,cb),renderer=function getStringRendererFromType(type){switch(type){case"svg":return SvgRenderer;case"terminal":return TerminalRenderer;default:return Utf8Renderer}}(params.opts?params.opts.type:void 0);return render(renderer.render,text,params)},server.toDataURL=function toDataURL(text,opts,cb){const params=checkParams(text,opts,cb);return render(getRendererFromType(params.opts.type).renderToDataURL,text,params)},server.toBuffer=function toBuffer(text,opts,cb){const params=checkParams(text,opts,cb);return render(getRendererFromType(params.opts.type).renderToBuffer,text,params)},server.toFile=function toFile(path,text,opts,cb){if("string"!=typeof path||"string"!=typeof text&&"object"!=typeof text)throw new Error("Invalid argument");if(arguments.length<3&&!canPromise())throw new Error("Too few arguments provided");const params=checkParams(text,opts,cb),type=params.opts.type||function getTypeFromFilename(path){return path.slice(2+(path.lastIndexOf(".")-1>>>0)).toLowerCase()}(path);return render(getRendererFromType(type).renderToFile.bind(null,path),text,params)},server.toFileStream=function toFileStream(stream,text,opts){if(arguments.length<2)throw new Error("Too few arguments provided");const params=checkParams(text,opts,stream.emit.bind(stream,"error"));render(getRendererFromType("png").renderToFileStream.bind(null,stream),text,params)},server}var QRCode=getDefaultExportFromCjs(function requireLib(){return hasRequiredLib?lib:(hasRequiredLib=1,lib=requireServer())}());const baseDir=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class NFCEGerarDanfe{constructor(props){this.saveQRCode=async text=>{const filePath=path__default.default.resolve(baseDir,this.qrcodePath);try{await QRCode.toFile(`${filePath}/qrcode.png`,text,{color:{dark:"#000000",light:"#FFFFFF"},width:300})}catch(error){console.error("Erro ao gerar o QR code:",error),console.error(error.stack)}},this.getQRCodeBuffer=async text=>{try{return await QRCode.toBuffer(text,{color:{dark:"#000000",light:"#FFFFFF"},width:300})}catch(error){throw console.error("Erro ao gerar o QR code:",error),console.error(error.stack),new Error(`Erro ao gerar o QR code: ${error.message}`)}};const{data:data,chave:chave,outputPath:outputPath,pageWidth:pageWidth}=props;this.data=data,this.chave=chave.trim(),this.outputPath=outputPath,this.enviada=!1,this.qrcodePath=outputPath,this.documento=new ValidaCPFCNPJ,this.protNFe=data.protNFe;const nfeData=Array.isArray(data.NFe)?data.NFe[0]:data.NFe,{det:det,ide:ide,emit:emit,dest:dest,total:total,transp:transp,pag:pag,infAdic:infAdic}=nfeData.infNFe,infNFeSupl=nfeData.infNFeSupl;this.det=det,this.ide=ide,this.emit=emit,this.total=total,this.transp=transp,this.pag=pag,this.infAdic=infAdic,this.infNFeSupl=infNFeSupl,dest&&(this.dest=dest),this.protNFe?.infProt.nProt&&(this.enviada=!0),this.larguraPadrao=226.772,this.documentWidth=pageWidth||226.772;let itensLength=1;this.det instanceof Array&&(itensLength=this.det.length);const fontSize=function calculateFontSize(width){return.02646*Math.min(width)}(this.documentWidth);this.fontSize=fontSize,this.itemHeight=1.116*fontSize;const pageHeight=function calculateHeight(itemsLength,itemHeight){return 204.22975675056+itemsLength*itemHeight+5}(itensLength,this.itemHeight),fontPath=path__default.default.resolve(baseDir,"assets/fonts/ARIAL.TTF"),fontPathBold=path__default.default.resolve(baseDir,"assets/fonts/ARIALBD.TTF");this.doc=new PDFDocument__default.default({margins:{top:5.67,right:5.67,bottom:5.67,left:5.67},size:[this.documentWidth,pageHeight],bufferPages:!0,layout:"portrait"}),this.doc.registerFont("Arial",fontPath),this.doc.registerFont("Arial-bold",fontPathBold)}createDir(path){fs__default.default.existsSync(path)||fs__default.default.mkdirSync(path,{recursive:!0})}async generateBarcode(data){try{const barcode=(await bwipjs__default.default.toBuffer({bcid:"code128",text:data,scaleX:4,height:14,includetext:!1})).toString("base64"),barcodeDir=this.qrcodePath,barcodeFilePath=path__default.default.join(barcodeDir,"barcode.png");fs__default.default.writeFileSync(barcodeFilePath,Buffer.from(barcode,"base64"))}catch(err){return console.error("Erro ao gerar código de barras:",err),null}}centeredPos(texto){return(this.doc.page.width-this.doc.fontSize(this.fontSize).widthOfString(texto))/2}ajustarPosicao(posicaoOriginal,novaLargura){return posicaoOriginal*(novaLargura/this.larguraPadrao)}calculaPosicao(text){const{right:right,left:left}=this.doc.page.margins,[pageWidth]=this.doc.page.size,textWidth=this.doc.widthOfString(text);return Number(pageWidth)-textWidth-right-left}drawHeader(isFirstPage){this._buildHeader()}drawFooter(qrCodeBuffer){this._buildFooter(qrCodeBuffer)}_buildHeader(){const CNPJCPF=this.emit.CNPJCPF?.toString(),CNPJ=this.emit.CNPJ?.toString(),CPF=this.emit.CPF?.toString(),documento=this.documento.mascaraCnpjCpf(CNPJCPF||CNPJ||CPF||""),identificationJoined=`${this.emit.enderEmit.xLgr}, ${this.emit.enderEmit.nro}, ${this.emit.enderEmit.xBairro}, ${this.emit.enderEmit.UF}`;(()=>{const centeredPosEmit=this.centeredPos(`CNPJ: ${documento} ${this.emit.xNome}`),centeredPosEnd=this.centeredPos(identificationJoined),centeredPosText=this.centeredPos("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica");this.doc.font("Arial").fontSize(this.fontSize).text(`CNPJ: ${documento} `,centeredPosEmit,2,{lineBreak:!1}).font("Arial-bold").text(this.emit.xNome).fontSize(this.fontSize).font("Arial").text(identificationJoined,centeredPosEnd).text("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica",centeredPosText)})()}_buildProdutos(){const{right:right,left:left,top:top}=this.doc.page.margins,tableWidth=this.documentWidth-left-right,startX=left,tableTop=this.doc.y+top,columnWidths={codigo:tableWidth*.15,descricao:tableWidth*.4,qtdeUn:tableWidth*.15,unit:tableWidth*.15,total:tableWidth*.15},row=(top,item)=>{const quant=parseFloat(String(item.prod.qCom||item.prod.qTrib)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),valUnit=parseFloat(String(item.prod.vUnCom||item.prod.vUnTrib||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2}),valLiq=parseFloat(String(item.prod.vProd||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});let x=startX;this.doc.font("Arial").fontSize(this.fontSize).text(item.prod.cProd,x,top,{width:columnWidths.codigo}),x+=columnWidths.codigo+0,this.doc.text(item.prod.xProd.slice(0,24),x,top,{width:columnWidths.descricao}),x+=columnWidths.descricao+0,this.doc.text(`${quant} ${item.prod.uCom}`,x,top,{width:columnWidths.qtdeUn,align:"right"}),x+=columnWidths.qtdeUn+0,this.doc.text(valUnit,x,top,{width:columnWidths.unit,align:"right"}),x+=columnWidths.unit+0,this.doc.text(valLiq,x,top,{width:columnWidths.total,align:"right"})};(top=>{let x=startX;this.doc.font("Arial-bold").fontSize(this.fontSize).text("Código",x,top,{width:columnWidths.codigo}),x+=columnWidths.codigo+0,this.doc.text("Descrição",x,top,{width:columnWidths.descricao}),x+=columnWidths.descricao+0,this.doc.text("Qtde",x,top,{width:columnWidths.qtdeUn,align:"right"}),x+=columnWidths.qtdeUn+0,this.doc.text("Unit",x,top,{width:columnWidths.unit,align:"right"}),x+=columnWidths.unit+0,this.doc.text("Total",x,top,{width:columnWidths.total,align:"right"})})(tableTop);let y=tableTop+this.itemHeight;this.det instanceof Array?this.det.forEach((prod=>{row(y,prod),y+=this.itemHeight})):row(y,this.det)}_buildTotais(){let tableTop=this.doc.y+5;const quantidadeTotalDeItens=Array.isArray(this.det)?this.det.length:1;let valTotal=0,acrescimo=0,desconto=0;Array.isArray(this.det)?(valTotal=this.det.reduce(((sum,item)=>sum+parseFloat(item.prod.vProd)),0),acrescimo=this.det.reduce(((sum,item)=>sum+(parseFloat(item.prod.vFrete||"0")+parseFloat(item.prod.vSeg||"0")+parseFloat(item.prod.vOutro||"0"))),0),desconto=this.det.reduce(((sum,item)=>sum+parseFloat(item.prod.vDesc||"0")),0)):(valTotal=parseFloat(this.det.prod.vProd),acrescimo=parseFloat(this.det.prod.vFrete||"0")+parseFloat(this.det.prod.vSeg||"0")+parseFloat(this.det.prod.vOutro||"0"),desconto=parseFloat(this.det.prod.vDesc||"0"));const valorTotal=valTotal.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),acrescimoTotal=acrescimo.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),descontoTotal=desconto.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});if(this.doc.text("Qtd. total de itens",2,tableTop),this.doc.text(String(quantidadeTotalDeItens),this.calculaPosicao(String(quantidadeTotalDeItens)),tableTop,{align:"right"}),tableTop+=this.itemHeight,this.doc.text("Valor total R$",2,tableTop),this.doc.text(valorTotal,this.calculaPosicao(valorTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight,desconto>0&&(this.doc.text("Desconto R$",2,tableTop),this.doc.text(descontoTotal,this.calculaPosicao(descontoTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight),acrescimo>0&&(this.doc.text("Acréscimo R$",2,tableTop),this.doc.text(acrescimoTotal,this.calculaPosicao(acrescimoTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight),desconto>0||acrescimo>0){const totalPagar=parseFloat(String(valTotal+acrescimo-desconto)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.font("Arial-bold").text("Valor a Pagar R$",2,tableTop),this.doc.text(totalPagar,this.calculaPosicao(totalPagar),tableTop,{align:"right"})}tableTop+=this.itemHeight+2,this.doc.font("Arial").text("FORMA PAGAMENTO",2,tableTop);let topTiposPag=tableTop;if(Array.isArray(this.pag.detPag))for(let pagto of this.pag.detPag)this.doc.text(pagto.xPag||"Não informado",2,topTiposPag+this.itemHeight),topTiposPag+=this.itemHeight;else this.doc.text(this.pag.detPag.xPag||"Não informado",2,topTiposPag+this.itemHeight);this.doc.text("VALOR PAGO R$",this.calculaPosicao("VALOR PAGO R$"),tableTop,{align:"right"});let topValPags=tableTop;if(Array.isArray(this.pag.detPag))for(let pagto of this.pag.detPag){const val=parseFloat(pagto.vPag).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text(val,this.calculaPosicao(val),topValPags+this.itemHeight,{align:"right"}),topValPags+=this.itemHeight}else{const val=parseFloat(this.pag.detPag.vPag).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text(val,this.calculaPosicao(val),topValPags+this.itemHeight,{align:"right"})}tableTop=topValPags,tableTop+=2*this.itemHeight;let valTroco=0;valTroco=Array.isArray(this.pag.detPag)?this.pag.detPag.reduce(((sum,item)=>sum+parseFloat(item.vTroco||"0")),0):parseFloat(this.pag.detPag.vTroco||"0");const troco=valTroco.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text("Troco R$",2,tableTop),this.doc.text(troco,this.calculaPosicao(troco),tableTop,{align:"right"})}_buildFooter(qrCodeBuffer){let tableTop=this.doc.y+5;this.doc.font("Arial-bold").text("Consulte pela Chave de Acesso em",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.font("Arial").text(this.infNFeSupl?.urlChave||"",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.text(this.protNFe?.infProt.chNFe||"",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.image(qrCodeBuffer,2,tableTop,{width:70.87,height:70.87}),tableTop+=4;let topBeforeQrCode=tableTop;const CNPJCPF=this.documento.mascaraCnpjCpf(this.dest?.CNPJCPF||this.dest?.CNPJ||this.dest?.CPF||this.dest?.idEstrangeiro||""),xNome=this.dest?.xNome??"Sem cliente identificado",xLgr=this.dest?.enderDest?.xLgr??"",nro=this.dest?.enderDest?.nro??"",xBairro=this.dest?.enderDest?.xBairro??null,xMun=this.dest?.enderDest?.xMun??"",UF=this.dest?.enderDest?.UF??"",enderecoStr=[xLgr&&`${xLgr}`,nro&&`${nro}`,xBairro&&`bairro: ${xBairro}`,xMun&&`${xMun}`,UF&&`${UF}`].filter(Boolean).join(", ");CNPJCPF&&""!==CNPJCPF?(this.doc.font("Arial-bold").text(`CONSUMIDOR - DOC ${CNPJCPF}`,75,tableTop,{align:"left",lineGap:1,continued:!0}).font("Arial").text(` - ${xNome} -`,{lineGap:1,continued:!0}).text(enderecoStr),tableTop=this.doc.y+4):(this.doc.text("CONSUMIDOR NÃO IDENTIFICADO",75,tableTop,{align:"left"}),tableTop=this.doc.y+4);const dtaEmi=format(parseISO(this.ide.dhEmi),"dd/MM/yyyy HH:mm:ss");let dtaAut=format(new Date,"dd/MM/yyyy HH:mm:ss");if(this.protNFe?.infProt.dhRecbto){dtaAut=format(parseISO(this.protNFe?.infProt.dhRecbto),"dd/MM/yyyy HH:mm:ss")}this.doc.font("Arial-bold").text(`NCF-e nº ${this.ide.nNF} Série ${this.ide.serie} ${dtaEmi}`,75,tableTop,{align:"left",lineGap:1}).text("Protocolo de autorização: ",{continued:!0,lineGap:1}).font("Arial").text(this.protNFe?.infProt.nProt||"123").font("Arial-bold").text("Data de autorização ",{continued:!0,lineGap:1}).font("Arial").text(dtaAut),tableTop=this.doc.y+20,topBeforeQrCode+=70.87,this.doc.text("Tributos Totais Incidentes (Lei Federal 12.741/2012): R$ 22,90",0,topBeforeQrCode,{align:"center"})}async generatePDF(exibirMarcaDaguaDanfe){try{this.exibirMarcaDaguaDanfe=exibirMarcaDaguaDanfe||!0;const qrCodeBuffer=await this.getQRCodeBuffer(this.infNFeSupl?.qrCode||"");return this.doc.pipe(fs__default.default.createWriteStream(this.outputPath)),this.drawHeader(!0),this._buildProdutos(),this._buildTotais(),this.drawFooter(qrCodeBuffer),this.doc.end(),{message:` DANFE Gerada em '${this.outputPath}'`,success:!0}}catch(error){throw new Error(`Erro ao gerar DANFE: ${error.message}`)}}}exports.default=class NFeWizard{constructor(){if(this.certificate=null,this.cert_key=null,this.config={},this.certificate=null,this.cert_key=null,this.environment={},this.utility={},this.xmlBuilder={},this.axios={},new.target)return new Proxy(this,{get(target,prop,receiver){const origMethod=target[prop];return"function"==typeof origMethod?async function(...args){return"NFE_LoadEnvironment"===prop||await target.validateEnvironment(prop),origMethod.apply(target,args)}:Reflect.get(target,prop,receiver)}})}async NFE_LoadEnvironment({config:config}){try{this.config=config,this.environment=new Environment(this.config);const{axios:axios}=await this.environment.loadEnvironment();this.axios=axios,this.utility=new Utility(this.environment),this.xmlBuilder=new XmlBuilder(this.environment),console.log("==================================="),console.log("Biblioteca Inicializada com Sucesso"),console.log("===================================")}catch(error){throw console.log(error),new Error(`Erro ao inicializar a lib: ${error}`)}}async NFE_ConsultaStatusServico(){try{const nfeStatusServico=new NFEStatusServico$1(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeStatusServico.Exec();return console.log("Retorno NFE_ConsultaStatusServico"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_ConsultaStatusServico: ${error.message}`)}}async NFE_ConsultaProtocolo(chave){try{const nfeConsultaProtocolo=new NFEConsultaProtocolo$1(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeConsultaProtocolo.Exec(chave);return console.log("Retorno NFE_ConsultaProtocolo"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_ConsultaProtocolo: ${error.message}`)}}async NFE_RecepcaoEvento(evento){try{const nfeRecepcaoEvento=new NFERecepcaoEvento(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeRecepcaoEvento.Exec(evento);return console.log("Retorno NFE_RecepcaoEvento"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_RecepcaoEvento: ${error.message}`)}}async NFE_EventoPrevioDeEmissaoEmContingencia(evento){try{const nfeEpec=new NFEEpec(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeEpec.Exec(evento);return console.log("Retorno NFEEpec"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFEEpec: ${error.message}`)}}async NFE_Cancelamento(evento){try{const nfeCancelamento=new NFECancelamento(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCancelamento.Exec(evento);return console.log("Retorno NFE_Cancelamento"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_Cancelamento: ${error.message}`)}}async NFE_CienciaDaOperacao(evento){try{const nfeCienciaDaOperacao=new NFECienciaDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCienciaDaOperacao.Exec(evento);return console.log("Retorno NFE_CienciaDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_CienciaDaOperacao: ${error.message}`)}}async NFE_ConfirmacaoDaOperacao(evento){try{const nfeConfirmacaoDaOperacao=new NFEConfirmacaoDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeConfirmacaoDaOperacao.Exec(evento);return console.log("Retorno NFE_ConfirmacaoDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_ConfirmacaoDaOperacao: ${error.message}`)}}async NFE_OperacaoNaoRealizada(evento){try{const nfeOperacaoNaoRealizada=new NFEOperacaoNaoRealizada(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeOperacaoNaoRealizada.Exec(evento);return console.log("Retorno NFE_OperacaoNaoRealizada"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_OperacaoNaoRealizada: ${error.message}`)}}async NFE_CartaDeCorrecao(evento){try{const nfeCartaDeCorrecao=new NFECartaDeCorrecao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCartaDeCorrecao.Exec(evento);return console.log("Retorno NFE_CartaDeCorrecao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_CartaDeCorrecao: ${error.message}`)}}async NFE_DesconhecimentoDaOperacao(evento){try{const nfeDesconhecimentoDaOperacao=new NFEDesconhecimentoDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeDesconhecimentoDaOperacao.Exec(evento);return console.log("Retorno NFE_DesconhecimentoDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_DesconhecimentoDaOperacao: ${error.message}`)}}async NFE_DistribuicaoDFe(data){try{const distribuicaoDFe=new NFEDistribuicaoDFe(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFe"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFe: ${error.message}`)}}async NFE_DistribuicaoDFePorUltNSU(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorUltNSU(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorUltNSU"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorUltNSU: ${error.message}`)}}async NFE_DistribuicaoDFePorNSU(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorNSU(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorNSU"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorNSU: ${error.message}`)}}async NFE_DistribuicaoDFePorChave(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorChave(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorChave"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorChave: ${error.message}`)}}async NFE_Autorizacao(data){try{const distribuicaoDFe=new NFEAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_Autorizacao"),console.table(response.xMotivo),console.log("==================================="),response.xmls}catch(error){throw new Error(`NFE_Autorizacao: ${error.message}`)}}async NFCE_Autorizacao(data){try{const distribuicaoDFe=new NFCEAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFCE_Autorizacao"),console.table(response.xMotivo),console.log("==================================="),response.xmls}catch(error){throw new Error(`NFCE_Autorizacao: ${error.message}`)}}async NFE_Inutilizacao(data){try{const distribuicaoDFe=new NFEInutilizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_Inutilizacao"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_Inutilizacao: ${error.message}`)}}async NFE_GerarDanfe(data){try{const{dfe:{exibirMarcaDaguaDanfe:exibirMarcaDaguaDanfe}}=this.environment.getConfig(),distribuicaoDFe=new NFEGerarDanfe(data),response=await distribuicaoDFe.generatePDF(exibirMarcaDaguaDanfe);return console.log("Retorno NFE_GerarDanfe"),console.log(response.message),console.log("==================================="),response}catch(error){throw new Error(`NFE_GerarDanfe: ${error.message}`)}}async NFCE_GerarDanfe(data){try{const{dfe:{exibirMarcaDaguaDanfe:exibirMarcaDaguaDanfe}}=this.environment.getConfig(),distribuicaoDFe=new NFCEGerarDanfe(data),response=await distribuicaoDFe.generatePDF(exibirMarcaDaguaDanfe);return console.log("Retorno NFCE_GerarDanfe"),console.log(response.message),console.log("==================================="),response}catch(error){throw new Error(`NFCE_GerarDanfe: ${error.message}`)}}NFE_EnviaEmail(mailParams){try{const response=new MailController(this.environment).sendEmail(mailParams);return console.log("Retorno NFE_EnviaEmail"),console.log("E-mail enviado com sucesso."),console.log("==================================="),response}catch(error){throw new Error(`NFE_EnviaEmail: ${error.message}`)}}async validateEnvironment(prop){if(!this.environment.isLoaded)throw new Error(`Ambiente não carregado. Por favor, carregue o ambiente utilizando o método "NFE_LoadEnvironment({ sua_configuracao })" antes de chamar o método ${prop}.`)}},exports.mountCOFINS=mountCOFINS,exports.mountICMS=mountICMS,exports.mountPIS=mountPIS;//# sourceMappingURL=index.js.map
8
+ */(),extname=path__default.default.extname,EXTRACT_TYPE_REGEXP=/^\s*([^;\s]*)(?:;|\s|$)/,TEXT_TYPE_REGEXP=/^text\//i;function charset(type){if(!type||"string"!=typeof type)return!1;var match=EXTRACT_TYPE_REGEXP.exec(type),mime=match&&db[match[1].toLowerCase()];return mime&&mime.charset?mime.charset:!(!match||!TEXT_TYPE_REGEXP.test(match[1]))&&"UTF-8"}exports.charset=charset,exports.charsets={lookup:charset},exports.contentType=function contentType(str){if(!str||"string"!=typeof str)return!1;var mime=-1===str.indexOf("/")?exports.lookup(str):str;if(!mime)return!1;if(-1===mime.indexOf("charset")){var charset=exports.charset(mime);charset&&(mime+="; charset="+charset.toLowerCase())}return mime},exports.extension=function extension(type){if(!type||"string"!=typeof type)return!1;var match=EXTRACT_TYPE_REGEXP.exec(type),exts=match&&exports.extensions[match[1].toLowerCase()];if(!exts||!exts.length)return!1;return exts[0]},exports.extensions=Object.create(null),exports.lookup=function lookup(path){if(!path||"string"!=typeof path)return!1;var extension=extname("x."+path).toLowerCase().substr(1);if(!extension)return!1;return exports.types[extension]||!1},exports.types=Object.create(null),function populateMaps(extensions,types){var preference=["nginx","apache",void 0,"iana"];Object.keys(db).forEach((function forEachMimeType(type){var mime=db[type],exts=mime.extensions;if(exts&&exts.length){extensions[type]=exts;for(var i=0;i<exts.length;i++){var extension=exts[i];if(types[extension]){var from=preference.indexOf(db[types[extension]].source),to=preference.indexOf(mime.source);if("application/octet-stream"!==types[extension]&&(from>to||from===to&&"application/"===types[extension].substr(0,12)))continue}types[extension]=type}}}))}(exports.extensions,exports.types)}(mimeTypes)),mimeTypes}function requireAsync(){if(hasRequiredAsync)return async_1;hasRequiredAsync=1;var defer=function requireDefer(){return hasRequiredDefer?defer_1:(hasRequiredDefer=1,defer_1=function defer(fn){var nextTick="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;nextTick?nextTick(fn):setTimeout(fn,0)})}();return async_1=function async(callback){var isAsync=!1;return defer((function(){isAsync=!0})),function async_callback(err,result){isAsync?callback(err,result):defer((function nextTick_callback(){callback(err,result)}))}},async_1}function requireAbort(){if(hasRequiredAbort)return abort_1;function clean(key){"function"==typeof this.jobs[key]&&this.jobs[key]()}return hasRequiredAbort=1,abort_1=function abort(state){Object.keys(state.jobs).forEach(clean.bind(state)),state.jobs={}}}function requireIterate(){if(hasRequiredIterate)return iterate_1;hasRequiredIterate=1;var async=requireAsync(),abort=requireAbort();return iterate_1=function iterate(list,iterator,state,callback){var key=state.keyedList?state.keyedList[state.index]:state.index;state.jobs[key]=function runJob(iterator,key,item,callback){var aborter;aborter=2==iterator.length?iterator(item,async(callback)):iterator(item,key,async(callback));return aborter}(iterator,key,list[key],(function(error,output){key in state.jobs&&(delete state.jobs[key],error?abort(state):state.results[key]=output,callback(error,state.results))}))}}function requireState(){if(hasRequiredState)return state_1;return hasRequiredState=1,state_1=function state(list,sortMethod){var isNamedList=!Array.isArray(list),initState={index:0,keyedList:isNamedList||sortMethod?Object.keys(list):null,jobs:{},results:isNamedList?{}:[],size:isNamedList?Object.keys(list).length:list.length};sortMethod&&initState.keyedList.sort(isNamedList?sortMethod:function(a,b){return sortMethod(list[a],list[b])});return initState}}function requireTerminator(){if(hasRequiredTerminator)return terminator_1;hasRequiredTerminator=1;var abort=requireAbort(),async=requireAsync();return terminator_1=function terminator(callback){if(!Object.keys(this.jobs).length)return;this.index=this.size,abort(this),async(callback)(null,this.results)}}function requireParallel(){if(hasRequiredParallel)return parallel_1;hasRequiredParallel=1;var iterate=requireIterate(),initState=requireState(),terminator=requireTerminator();return parallel_1=function parallel(list,iterator,callback){var state=initState(list);for(;state.index<(state.keyedList||list).length;)iterate(list,iterator,state,(function(error,result){error?callback(error,result):0!==Object.keys(state.jobs).length||callback(null,state.results)})),state.index++;return terminator.bind(state,callback)}}var hasRequiredSerialOrdered,serial_1,hasRequiredSerial,asynckit,hasRequiredAsynckit,populate,hasRequiredPopulate,form_data,hasRequiredForm_data,serialOrdered={exports:{}};function requireSerialOrdered(){if(hasRequiredSerialOrdered)return serialOrdered.exports;hasRequiredSerialOrdered=1;var iterate=requireIterate(),initState=requireState(),terminator=requireTerminator();function ascending(a,b){return a<b?-1:a>b?1:0}return serialOrdered.exports=function serialOrdered$1(list,iterator,sortMethod,callback){var state=initState(list,sortMethod);return iterate(list,iterator,state,(function iteratorHandler(error,result){error?callback(error,result):(state.index++,state.index<(state.keyedList||list).length?iterate(list,iterator,state,iteratorHandler):callback(null,state.results))})),terminator.bind(state,callback)},serialOrdered.exports.ascending=ascending,serialOrdered.exports.descending=function descending(a,b){return-1*ascending(a,b)},serialOrdered.exports}function requireSerial(){if(hasRequiredSerial)return serial_1;hasRequiredSerial=1;var serialOrdered=requireSerialOrdered();return serial_1=function serial(list,iterator,callback){return serialOrdered(list,iterator,null,callback)}}function requireAsynckit(){return hasRequiredAsynckit?asynckit:(hasRequiredAsynckit=1,asynckit={parallel:requireParallel(),serial:requireSerial(),serialOrdered:requireSerialOrdered()})}function requirePopulate(){return hasRequiredPopulate||(hasRequiredPopulate=1,populate=function(dst,src){return Object.keys(src).forEach((function(prop){dst[prop]=dst[prop]||src[prop]})),dst}),populate}var form_dataExports=function requireForm_data(){if(hasRequiredForm_data)return form_data;hasRequiredForm_data=1;var CombinedStream=requireCombined_stream(),util=require$$0__default$3.default,path=path__default.default,http=require$$3__default.default,https=https__default.default,parseUrl=require$$0__default$4.default.parse,fs=fs__default.default,Stream=require$$0__default$2.default.Stream,mime=requireMimeTypes$1(),asynckit=requireAsynckit(),populate=requirePopulate();function FormData(options){if(!(this instanceof FormData))return new FormData(options);for(var option in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],CombinedStream.call(this),options=options||{})this[option]=options[option]}return form_data=FormData,util.inherits(FormData,CombinedStream),FormData.LINE_BREAK="\r\n",FormData.DEFAULT_CONTENT_TYPE="application/octet-stream",FormData.prototype.append=function(field,value,options){"string"==typeof(options=options||{})&&(options={filename:options});var append=CombinedStream.prototype.append.bind(this);if("number"==typeof value&&(value=""+value),util.isArray(value))this._error(new Error("Arrays are not supported."));else{var header=this._multiPartHeader(field,value,options),footer=this._multiPartFooter();append(header),append(value),append(footer),this._trackLength(header,value,options)}},FormData.prototype._trackLength=function(header,value,options){var valueLength=0;null!=options.knownLength?valueLength+=+options.knownLength:Buffer.isBuffer(value)?valueLength=value.length:"string"==typeof value&&(valueLength=Buffer.byteLength(value)),this._valueLength+=valueLength,this._overheadLength+=Buffer.byteLength(header)+FormData.LINE_BREAK.length,value&&(value.path||value.readable&&value.hasOwnProperty("httpVersion")||value instanceof Stream)&&(options.knownLength||this._valuesToMeasure.push(value))},FormData.prototype._lengthRetriever=function(value,callback){value.hasOwnProperty("fd")?null!=value.end&&value.end!=1/0&&null!=value.start?callback(null,value.end+1-(value.start?value.start:0)):fs.stat(value.path,(function(err,stat){var fileSize;err?callback(err):(fileSize=stat.size-(value.start?value.start:0),callback(null,fileSize))})):value.hasOwnProperty("httpVersion")?callback(null,+value.headers["content-length"]):value.hasOwnProperty("httpModule")?(value.on("response",(function(response){value.pause(),callback(null,+response.headers["content-length"])})),value.resume()):callback("Unknown stream")},FormData.prototype._multiPartHeader=function(field,value,options){if("string"==typeof options.header)return options.header;var header,contentDisposition=this._getContentDisposition(value,options),contentType=this._getContentType(value,options),contents="",headers={"Content-Disposition":["form-data",'name="'+field+'"'].concat(contentDisposition||[]),"Content-Type":[].concat(contentType||[])};for(var prop in"object"==typeof options.header&&populate(headers,options.header),headers)headers.hasOwnProperty(prop)&&null!=(header=headers[prop])&&(Array.isArray(header)||(header=[header]),header.length&&(contents+=prop+": "+header.join("; ")+FormData.LINE_BREAK));return"--"+this.getBoundary()+FormData.LINE_BREAK+contents+FormData.LINE_BREAK},FormData.prototype._getContentDisposition=function(value,options){var filename,contentDisposition;return"string"==typeof options.filepath?filename=path.normalize(options.filepath).replace(/\\/g,"/"):options.filename||value.name||value.path?filename=path.basename(options.filename||value.name||value.path):value.readable&&value.hasOwnProperty("httpVersion")&&(filename=path.basename(value.client._httpMessage.path||"")),filename&&(contentDisposition='filename="'+filename+'"'),contentDisposition},FormData.prototype._getContentType=function(value,options){var contentType=options.contentType;return!contentType&&value.name&&(contentType=mime.lookup(value.name)),!contentType&&value.path&&(contentType=mime.lookup(value.path)),!contentType&&value.readable&&value.hasOwnProperty("httpVersion")&&(contentType=value.headers["content-type"]),contentType||!options.filepath&&!options.filename||(contentType=mime.lookup(options.filepath||options.filename)),contentType||"object"!=typeof value||(contentType=FormData.DEFAULT_CONTENT_TYPE),contentType},FormData.prototype._multiPartFooter=function(){return function(next){var footer=FormData.LINE_BREAK;0===this._streams.length&&(footer+=this._lastBoundary()),next(footer)}.bind(this)},FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+FormData.LINE_BREAK},FormData.prototype.getHeaders=function(userHeaders){var header,formHeaders={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(header in userHeaders)userHeaders.hasOwnProperty(header)&&(formHeaders[header.toLowerCase()]=userHeaders[header]);return formHeaders},FormData.prototype.setBoundary=function(boundary){this._boundary=boundary},FormData.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},FormData.prototype.getBuffer=function(){for(var dataBuffer=new Buffer.alloc(0),boundary=this.getBoundary(),i=0,len=this._streams.length;i<len;i++)"function"!=typeof this._streams[i]&&(dataBuffer=Buffer.isBuffer(this._streams[i])?Buffer.concat([dataBuffer,this._streams[i]]):Buffer.concat([dataBuffer,Buffer.from(this._streams[i])]),"string"==typeof this._streams[i]&&this._streams[i].substring(2,boundary.length+2)===boundary||(dataBuffer=Buffer.concat([dataBuffer,Buffer.from(FormData.LINE_BREAK)])));return Buffer.concat([dataBuffer,Buffer.from(this._lastBoundary())])},FormData.prototype._generateBoundary=function(){for(var boundary="--------------------------",i=0;i<24;i++)boundary+=Math.floor(10*Math.random()).toString(16);this._boundary=boundary},FormData.prototype.getLengthSync=function(){var knownLength=this._overheadLength+this._valueLength;return this._streams.length&&(knownLength+=this._lastBoundary().length),this.hasKnownLength()||this._error(new Error("Cannot calculate proper length in synchronous way.")),knownLength},FormData.prototype.hasKnownLength=function(){var hasKnownLength=!0;return this._valuesToMeasure.length&&(hasKnownLength=!1),hasKnownLength},FormData.prototype.getLength=function(cb){var knownLength=this._overheadLength+this._valueLength;this._streams.length&&(knownLength+=this._lastBoundary().length),this._valuesToMeasure.length?asynckit.parallel(this._valuesToMeasure,this._lengthRetriever,(function(err,values){err?cb(err):(values.forEach((function(length){knownLength+=length})),cb(null,knownLength))})):process.nextTick(cb.bind(this,null,knownLength))},FormData.prototype.submit=function(params,cb){var request,options,defaults={method:"post"};return"string"==typeof params?(params=parseUrl(params),options=populate({port:params.port,path:params.pathname,host:params.hostname,protocol:params.protocol},defaults)):(options=populate(params,defaults)).port||(options.port="https:"==options.protocol?443:80),options.headers=this.getHeaders(params.headers),request="https:"==options.protocol?https.request(options):http.request(options),this.getLength(function(err,length){if(err&&"Unknown stream"!==err)this._error(err);else if(length&&request.setHeader("Content-Length",length),this.pipe(request),cb){var onResponse,callback=function(error,responce){return request.removeListener("error",callback),request.removeListener("response",onResponse),cb.call(this,error,responce)};onResponse=callback.bind(this,null),request.on("error",callback),request.on("response",onResponse)}}.bind(this)),request},FormData.prototype._error=function(err){this.error||(this.error=err,this.pause(),this.emit("error",err))},FormData.prototype.toString=function(){return"[object FormData]"},form_data}(),FormData$1=getDefaultExportFromCjs(form_dataExports);function isVisitable(thing){return utils$4.isPlainObject(thing)||utils$4.isArray(thing)}function removeBrackets(key){return utils$4.endsWith(key,"[]")?key.slice(0,-2):key}function renderKey(path,key,dots){return path?path.concat(key).map((function each(token,i){return token=removeBrackets(token),!dots&&i?"["+token+"]":token})).join(dots?".":""):key}const predicates=utils$4.toFlatObject(utils$4,{},null,(function filter(prop){return/^is[A-Z]/.test(prop)}));function toFormData(obj,formData,options){if(!utils$4.isObject(obj))throw new TypeError("target must be an object");formData=formData||new(FormData$1||FormData);const metaTokens=(options=utils$4.toFlatObject(options,{metaTokens:!0,dots:!1,indexes:!1},!1,(function defined(option,source){return!utils$4.isUndefined(source[option])}))).metaTokens,visitor=options.visitor||defaultVisitor,dots=options.dots,indexes=options.indexes,useBlob=(options.Blob||"undefined"!=typeof Blob&&Blob)&&utils$4.isSpecCompliantForm(formData);if(!utils$4.isFunction(visitor))throw new TypeError("visitor must be a function");function convertValue(value){if(null===value)return"";if(utils$4.isDate(value))return value.toISOString();if(!useBlob&&utils$4.isBlob(value))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return utils$4.isArrayBuffer(value)||utils$4.isTypedArray(value)?useBlob&&"function"==typeof Blob?new Blob([value]):Buffer.from(value):value}function defaultVisitor(value,key,path){let arr=value;if(value&&!path&&"object"==typeof value)if(utils$4.endsWith(key,"{}"))key=metaTokens?key:key.slice(0,-2),value=JSON.stringify(value);else if(utils$4.isArray(value)&&function isFlatArray(arr){return utils$4.isArray(arr)&&!arr.some(isVisitable)}(value)||(utils$4.isFileList(value)||utils$4.endsWith(key,"[]"))&&(arr=utils$4.toArray(value)))return key=removeBrackets(key),arr.forEach((function each(el,index){!utils$4.isUndefined(el)&&null!==el&&formData.append(!0===indexes?renderKey([key],index,dots):null===indexes?key:key+"[]",convertValue(el))})),!1;return!!isVisitable(value)||(formData.append(renderKey(path,key,dots),convertValue(value)),!1)}const stack=[],exposedHelpers=Object.assign(predicates,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});if(!utils$4.isObject(obj))throw new TypeError("data must be an object");return function build(value,path){if(!utils$4.isUndefined(value)){if(-1!==stack.indexOf(value))throw Error("Circular reference detected in "+path.join("."));stack.push(value),utils$4.forEach(value,(function each(el,key){!0===(!(utils$4.isUndefined(el)||null===el)&&visitor.call(formData,el,utils$4.isString(key)?key.trim():key,path,exposedHelpers))&&build(el,path?path.concat(key):[key])})),stack.pop()}}(obj),formData}function encode$1(str){const charMap={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g,(function replacer(match){return charMap[match]}))}function AxiosURLSearchParams(params,options){this._pairs=[],params&&toFormData(params,this,options)}const prototype=AxiosURLSearchParams.prototype;function encode(val){return encodeURIComponent(val).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(url,params,options){if(!params)return url;const _encode=options&&options.encode||encode,serializeFn=options&&options.serialize;let serializedParams;if(serializedParams=serializeFn?serializeFn(params,options):utils$4.isURLSearchParams(params)?params.toString():new AxiosURLSearchParams(params,options).toString(_encode),serializedParams){const hashmarkIndex=url.indexOf("#");-1!==hashmarkIndex&&(url=url.slice(0,hashmarkIndex)),url+=(-1===url.indexOf("?")?"?":"&")+serializedParams}return url}prototype.append=function append(name,value){this._pairs.push([name,value])},prototype.toString=function toString(encoder){const _encode=encoder?function(value){return encoder.call(this,value,encode$1)}:encode$1;return this._pairs.map((function each(pair){return _encode(pair[0])+"="+_encode(pair[1])}),"").join("&")};var InterceptorManager$1=class InterceptorManager{constructor(){this.handlers=[]}use(fulfilled,rejected,options){return this.handlers.push({fulfilled:fulfilled,rejected:rejected,synchronous:!!options&&options.synchronous,runWhen:options?options.runWhen:null}),this.handlers.length-1}eject(id){this.handlers[id]&&(this.handlers[id]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(fn){utils$4.forEach(this.handlers,(function forEachHandler(h){null!==h&&fn(h)}))}},transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},platform$1={isNode:!0,classes:{URLSearchParams:require$$0__default$4.default.URLSearchParams,FormData:FormData$1,Blob:"undefined"!=typeof Blob&&Blob||null},protocols:["http","https","file","data"]};const hasBrowserEnv="undefined"!=typeof window&&"undefined"!=typeof document,_navigator="object"==typeof navigator&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,origin=hasBrowserEnv&&window.location.href||"http://localhost";var platform={...Object.freeze({__proto__:null,hasBrowserEnv:hasBrowserEnv,hasStandardBrowserWebWorkerEnv:hasStandardBrowserWebWorkerEnv,hasStandardBrowserEnv:hasStandardBrowserEnv,navigator:_navigator,origin:origin}),...platform$1};function formDataToJSON(formData){function buildPath(path,value,target,index){let name=path[index++];if("__proto__"===name)return!0;const isNumericKey=Number.isFinite(+name),isLast=index>=path.length;if(name=!name&&utils$4.isArray(target)?target.length:name,isLast)return utils$4.hasOwnProp(target,name)?target[name]=[target[name],value]:target[name]=value,!isNumericKey;target[name]&&utils$4.isObject(target[name])||(target[name]=[]);return buildPath(path,value,target[name],index)&&utils$4.isArray(target[name])&&(target[name]=function arrayToObject(arr){const obj={},keys=Object.keys(arr);let i;const len=keys.length;let key;for(i=0;i<len;i++)key=keys[i],obj[key]=arr[key];return obj}(target[name])),!isNumericKey}if(utils$4.isFormData(formData)&&utils$4.isFunction(formData.entries)){const obj={};return utils$4.forEachEntry(formData,((name,value)=>{buildPath(function parsePropPath(name){return utils$4.matchAll(/\w+|\[(\w*)]/g,name).map((match=>"[]"===match[0]?"":match[1]||match[0]))}(name),value,obj,0)})),obj}return null}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function transformRequest(data,headers){const contentType=headers.getContentType()||"",hasJSONContentType=contentType.indexOf("application/json")>-1,isObjectPayload=utils$4.isObject(data);isObjectPayload&&utils$4.isHTMLForm(data)&&(data=new FormData(data));if(utils$4.isFormData(data))return hasJSONContentType?JSON.stringify(formDataToJSON(data)):data;if(utils$4.isArrayBuffer(data)||utils$4.isBuffer(data)||utils$4.isStream(data)||utils$4.isFile(data)||utils$4.isBlob(data)||utils$4.isReadableStream(data))return data;if(utils$4.isArrayBufferView(data))return data.buffer;if(utils$4.isURLSearchParams(data))return headers.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),data.toString();let isFileList;if(isObjectPayload){if(contentType.indexOf("application/x-www-form-urlencoded")>-1)return function toURLEncodedForm(data,options){return toFormData(data,new platform.classes.URLSearchParams,Object.assign({visitor:function(value,key,path,helpers){return platform.isNode&&utils$4.isBuffer(value)?(this.append(key,value.toString("base64")),!1):helpers.defaultVisitor.apply(this,arguments)}},options))}(data,this.formSerializer).toString();if((isFileList=utils$4.isFileList(data))||contentType.indexOf("multipart/form-data")>-1){const _FormData=this.env&&this.env.FormData;return toFormData(isFileList?{"files[]":data}:data,_FormData&&new _FormData,this.formSerializer)}}return isObjectPayload||hasJSONContentType?(headers.setContentType("application/json",!1),function stringifySafely(rawValue,parser,encoder){if(utils$4.isString(rawValue))try{return(parser||JSON.parse)(rawValue),utils$4.trim(rawValue)}catch(e){if("SyntaxError"!==e.name)throw e}return(encoder||JSON.stringify)(rawValue)}(data)):data}],transformResponse:[function transformResponse(data){const transitional=this.transitional||defaults.transitional,forcedJSONParsing=transitional&&transitional.forcedJSONParsing,JSONRequested="json"===this.responseType;if(utils$4.isResponse(data)||utils$4.isReadableStream(data))return data;if(data&&utils$4.isString(data)&&(forcedJSONParsing&&!this.responseType||JSONRequested)){const strictJSONParsing=!(transitional&&transitional.silentJSONParsing)&&JSONRequested;try{return JSON.parse(data)}catch(e){if(strictJSONParsing){if("SyntaxError"===e.name)throw AxiosError.from(e,AxiosError.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return data}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function validateStatus(status){return status>=200&&status<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$4.forEach(["delete","get","head","post","put","patch"],(method=>{defaults.headers[method]={}}));var defaults$1=defaults;const ignoreDuplicateOf=utils$4.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const $internals=Symbol("internals");function normalizeHeader(header){return header&&String(header).trim().toLowerCase()}function normalizeValue(value){return!1===value||null==value?value:utils$4.isArray(value)?value.map(normalizeValue):String(value)}function matchHeaderValue(context,value,header,filter,isHeaderNameFilter){return utils$4.isFunction(filter)?filter.call(this,value,header):(isHeaderNameFilter&&(value=header),utils$4.isString(value)?utils$4.isString(filter)?-1!==value.indexOf(filter):utils$4.isRegExp(filter)?filter.test(value):void 0:void 0)}class AxiosHeaders{constructor(headers){headers&&this.set(headers)}set(header,valueOrRewrite,rewrite){const self=this;function setHeader(_value,_header,_rewrite){const lHeader=normalizeHeader(_header);if(!lHeader)throw new Error("header name must be a non-empty string");const key=utils$4.findKey(self,lHeader);(!key||void 0===self[key]||!0===_rewrite||void 0===_rewrite&&!1!==self[key])&&(self[key||_header]=normalizeValue(_value))}const setHeaders=(headers,_rewrite)=>utils$4.forEach(headers,((_value,_header)=>setHeader(_value,_header,_rewrite)));if(utils$4.isPlainObject(header)||header instanceof this.constructor)setHeaders(header,valueOrRewrite);else if(utils$4.isString(header)&&(header=header.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(header.trim()))setHeaders((rawHeaders=>{const parsed={};let key,val,i;return rawHeaders&&rawHeaders.split("\n").forEach((function parser(line){i=line.indexOf(":"),key=line.substring(0,i).trim().toLowerCase(),val=line.substring(i+1).trim(),!key||parsed[key]&&ignoreDuplicateOf[key]||("set-cookie"===key?parsed[key]?parsed[key].push(val):parsed[key]=[val]:parsed[key]=parsed[key]?parsed[key]+", "+val:val)})),parsed})(header),valueOrRewrite);else if(utils$4.isHeaders(header))for(const[key,value]of header.entries())setHeader(value,key,rewrite);else null!=header&&setHeader(valueOrRewrite,header,rewrite);return this}get(header,parser){if(header=normalizeHeader(header)){const key=utils$4.findKey(this,header);if(key){const value=this[key];if(!parser)return value;if(!0===parser)return function parseTokens(str){const tokens=Object.create(null),tokensRE=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let match;for(;match=tokensRE.exec(str);)tokens[match[1]]=match[2];return tokens}(value);if(utils$4.isFunction(parser))return parser.call(this,value,key);if(utils$4.isRegExp(parser))return parser.exec(value);throw new TypeError("parser must be boolean|regexp|function")}}}has(header,matcher){if(header=normalizeHeader(header)){const key=utils$4.findKey(this,header);return!(!key||void 0===this[key]||matcher&&!matchHeaderValue(0,this[key],key,matcher))}return!1}delete(header,matcher){const self=this;let deleted=!1;function deleteHeader(_header){if(_header=normalizeHeader(_header)){const key=utils$4.findKey(self,_header);!key||matcher&&!matchHeaderValue(0,self[key],key,matcher)||(delete self[key],deleted=!0)}}return utils$4.isArray(header)?header.forEach(deleteHeader):deleteHeader(header),deleted}clear(matcher){const keys=Object.keys(this);let i=keys.length,deleted=!1;for(;i--;){const key=keys[i];matcher&&!matchHeaderValue(0,this[key],key,matcher,!0)||(delete this[key],deleted=!0)}return deleted}normalize(format){const self=this,headers={};return utils$4.forEach(this,((value,header)=>{const key=utils$4.findKey(headers,header);if(key)return self[key]=normalizeValue(value),void delete self[header];const normalized=format?function formatHeader(header){return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((w,char,str)=>char.toUpperCase()+str))}(header):String(header).trim();normalized!==header&&delete self[header],self[normalized]=normalizeValue(value),headers[normalized]=!0})),this}concat(...targets){return this.constructor.concat(this,...targets)}toJSON(asStrings){const obj=Object.create(null);return utils$4.forEach(this,((value,header)=>{null!=value&&!1!==value&&(obj[header]=asStrings&&utils$4.isArray(value)?value.join(", "):value)})),obj}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([header,value])=>header+": "+value)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(thing){return thing instanceof this?thing:new this(thing)}static concat(first,...targets){const computed=new this(first);return targets.forEach((target=>computed.set(target))),computed}static accessor(header){const accessors=(this[$internals]=this[$internals]={accessors:{}}).accessors,prototype=this.prototype;function defineAccessor(_header){const lHeader=normalizeHeader(_header);accessors[lHeader]||(!function buildAccessors(obj,header){const accessorName=utils$4.toCamelCase(" "+header);["get","set","has"].forEach((methodName=>{Object.defineProperty(obj,methodName+accessorName,{value:function(arg1,arg2,arg3){return this[methodName].call(this,header,arg1,arg2,arg3)},configurable:!0})}))}(prototype,_header),accessors[lHeader]=!0)}return utils$4.isArray(header)?header.forEach(defineAccessor):defineAccessor(header),this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$4.reduceDescriptors(AxiosHeaders.prototype,(({value:value},key)=>{let mapped=key[0].toUpperCase()+key.slice(1);return{get:()=>value,set(headerValue){this[mapped]=headerValue}}})),utils$4.freezeMethods(AxiosHeaders);var AxiosHeaders$1=AxiosHeaders;function transformData(fns,response){const config=this||defaults$1,context=response||config,headers=AxiosHeaders$1.from(context.headers);let data=context.data;return utils$4.forEach(fns,(function transform(fn){data=fn.call(config,data,headers.normalize(),response?response.status:void 0)})),headers.normalize(),data}function isCancel(value){return!(!value||!value.__CANCEL__)}function CanceledError(message,config,request){AxiosError.call(this,null==message?"canceled":message,AxiosError.ERR_CANCELED,config,request),this.name="CanceledError"}function settle(resolve,reject,response){const validateStatus=response.config.validateStatus;response.status&&validateStatus&&!validateStatus(response.status)?reject(new AxiosError("Request failed with status code "+response.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status/100)-4],response.config,response.request,response)):resolve(response)}function buildFullPath(baseURL,requestedURL){return baseURL&&!function isAbsoluteURL(url){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)}(requestedURL)?function combineURLs(baseURL,relativeURL){return relativeURL?baseURL.replace(/\/?\/$/,"")+"/"+relativeURL.replace(/^\/+/,""):baseURL}(baseURL,requestedURL):requestedURL}utils$4.inherits(CanceledError,AxiosError,{__CANCEL__:!0});var hasRequiredProxyFromEnv,proxyFromEnv={};var ms,hasRequiredMs,common,hasRequiredCommon,hasRequiredBrowser$1,proxyFromEnvExports=function requireProxyFromEnv(){if(hasRequiredProxyFromEnv)return proxyFromEnv;hasRequiredProxyFromEnv=1;var parseUrl=require$$0__default$4.default.parse,DEFAULT_PORTS={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},stringEndsWith=String.prototype.endsWith||function(s){return s.length<=this.length&&-1!==this.indexOf(s,this.length-s.length)};function getEnv(key){return process.env[key.toLowerCase()]||process.env[key.toUpperCase()]||""}return proxyFromEnv.getProxyForUrl=function getProxyForUrl(url){var parsedUrl="string"==typeof url?parseUrl(url):url||{},proto=parsedUrl.protocol,hostname=parsedUrl.host,port=parsedUrl.port;if("string"!=typeof hostname||!hostname||"string"!=typeof proto)return"";if(proto=proto.split(":",1)[0],!function shouldProxy(hostname,port){var NO_PROXY=(getEnv("npm_config_no_proxy")||getEnv("no_proxy")).toLowerCase();if(!NO_PROXY)return!0;if("*"===NO_PROXY)return!1;return NO_PROXY.split(/[,\s]/).every((function(proxy){if(!proxy)return!0;var parsedProxy=proxy.match(/^(.+):(\d+)$/),parsedProxyHostname=parsedProxy?parsedProxy[1]:proxy,parsedProxyPort=parsedProxy?parseInt(parsedProxy[2]):0;return!(!parsedProxyPort||parsedProxyPort===port)||(/^[.*]/.test(parsedProxyHostname)?("*"===parsedProxyHostname.charAt(0)&&(parsedProxyHostname=parsedProxyHostname.slice(1)),!stringEndsWith.call(hostname,parsedProxyHostname)):hostname!==parsedProxyHostname)}))}(hostname=hostname.replace(/:\d*$/,""),port=parseInt(port)||DEFAULT_PORTS[proto]||0))return"";var proxy=getEnv("npm_config_"+proto+"_proxy")||getEnv(proto+"_proxy")||getEnv("npm_config_proxy")||getEnv("all_proxy");return proxy&&-1===proxy.indexOf("://")&&(proxy=proto+"://"+proxy),proxy},proxyFromEnv}(),followRedirects$1={exports:{}},src={exports:{}},browser$1={exports:{}};function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var s=1e3,m=60*s,h=60*m,d=24*h,w=7*d,y=365.25*d;function plural(ms,msAbs,n,name){var isPlural=msAbs>=1.5*n;return Math.round(ms/n)+" "+name+(isPlural?"s":"")}return ms=function(val,options){options=options||{};var type=typeof val;if("string"===type&&val.length>0)return function parse(str){if((str=String(str)).length>100)return;var match=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]);switch((match[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"weeks":case"week":case"w":return n*w;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}(val);if("number"===type&&isFinite(val))return options.long?function fmtLong(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return plural(ms,msAbs,d,"day");if(msAbs>=h)return plural(ms,msAbs,h,"hour");if(msAbs>=m)return plural(ms,msAbs,m,"minute");if(msAbs>=s)return plural(ms,msAbs,s,"second");return ms+" ms"}(val):function fmtShort(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return Math.round(ms/d)+"d";if(msAbs>=h)return Math.round(ms/h)+"h";if(msAbs>=m)return Math.round(ms/m)+"m";if(msAbs>=s)return Math.round(ms/s)+"s";return ms+"ms"}(val);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(val))},ms}function requireCommon(){if(hasRequiredCommon)return common;return hasRequiredCommon=1,common=function setup(env){function createDebug(namespace){let prevTime,namespacesCache,enabledCache,enableOverride=null;function debug(...args){if(!debug.enabled)return;const self=debug,curr=Number(new Date),ms=curr-(prevTime||curr);self.diff=ms,self.prev=prevTime,self.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),"string"!=typeof args[0]&&args.unshift("%O");let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,((match,format)=>{if("%%"===match)return"%";index++;const formatter=createDebug.formatters[format];if("function"==typeof formatter){const val=args[index];match=formatter.call(self,val),args.splice(index,1),index--}return match})),createDebug.formatArgs.call(self,args);(self.log||createDebug.log).apply(self,args)}return debug.namespace=namespace,debug.useColors=createDebug.useColors(),debug.color=createDebug.selectColor(namespace),debug.extend=extend,debug.destroy=createDebug.destroy,Object.defineProperty(debug,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==enableOverride?enableOverride:(namespacesCache!==createDebug.namespaces&&(namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace)),enabledCache),set:v=>{enableOverride=v}}),"function"==typeof createDebug.init&&createDebug.init(debug),debug}function extend(namespace,delimiter){const newDebug=createDebug(this.namespace+(void 0===delimiter?":":delimiter)+namespace);return newDebug.log=this.log,newDebug}function toNamespace(regexp){return regexp.toString().substring(2,regexp.toString().length-2).replace(/\.\*\?$/,"*")}return createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=function coerce(val){if(val instanceof Error)return val.stack||val.message;return val},createDebug.disable=function disable(){const namespaces=[...createDebug.names.map(toNamespace),...createDebug.skips.map(toNamespace).map((namespace=>"-"+namespace))].join(",");return createDebug.enable(""),namespaces},createDebug.enable=function enable(namespaces){let i;createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];const split=("string"==typeof namespaces?namespaces:"").split(/[\s,]+/),len=split.length;for(i=0;i<len;i++)split[i]&&("-"===(namespaces=split[i].replace(/\*/g,".*?"))[0]?createDebug.skips.push(new RegExp("^"+namespaces.slice(1)+"$")):createDebug.names.push(new RegExp("^"+namespaces+"$")))},createDebug.enabled=function enabled(name){if("*"===name[name.length-1])return!0;let i,len;for(i=0,len=createDebug.skips.length;i<len;i++)if(createDebug.skips[i].test(name))return!1;for(i=0,len=createDebug.names.length;i<len;i++)if(createDebug.names[i].test(name))return!0;return!1},createDebug.humanize=requireMs(),createDebug.destroy=function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(env).forEach((key=>{createDebug[key]=env[key]})),createDebug.names=[],createDebug.skips=[],createDebug.formatters={},createDebug.selectColor=function selectColor(namespace){let hash=0;for(let i=0;i<namespace.length;i++)hash=(hash<<5)-hash+namespace.charCodeAt(i),hash|=0;return createDebug.colors[Math.abs(hash)%createDebug.colors.length]},createDebug.enable(createDebug.load()),createDebug},common}var hasFlag,hasRequiredHasFlag,supportsColor_1,hasRequiredSupportsColor,hasRequiredNode,hasRequiredSrc,debug_1,hasRequiredDebug,hasRequiredFollowRedirects,node={exports:{}};function requireHasFlag(){return hasRequiredHasFlag?hasFlag:(hasRequiredHasFlag=1,hasFlag=(flag,argv=process.argv)=>{const prefix=flag.startsWith("-")?"":1===flag.length?"-":"--",position=argv.indexOf(prefix+flag),terminatorPosition=argv.indexOf("--");return-1!==position&&(-1===terminatorPosition||position<terminatorPosition)})}function requireNode(){return hasRequiredNode||(hasRequiredNode=1,function(module,exports){const tty=require$$1__default$1.default,util=require$$0__default$3.default;exports.init=function init(debug){debug.inspectOpts={};const keys=Object.keys(exports.inspectOpts);for(let i=0;i<keys.length;i++)debug.inspectOpts[keys[i]]=exports.inspectOpts[keys[i]]},exports.log=function log(...args){return process.stderr.write(util.formatWithOptions(exports.inspectOpts,...args)+"\n")},exports.formatArgs=function formatArgs(args){const{namespace:name,useColors:useColors}=this;if(useColors){const c=this.color,colorCode="[3"+(c<8?c:"8;5;"+c),prefix=` ${colorCode};1m${name} `;args[0]=prefix+args[0].split("\n").join("\n"+prefix),args.push(colorCode+"m+"+module.exports.humanize(this.diff)+"")}else args[0]=function getDate(){if(exports.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+name+" "+args[0]},exports.save=function save(namespaces){namespaces?process.env.DEBUG=namespaces:delete process.env.DEBUG},exports.load=function load(){return process.env.DEBUG},exports.useColors=function useColors(){return"colors"in exports.inspectOpts?Boolean(exports.inspectOpts.colors):tty.isatty(process.stderr.fd)},exports.destroy=util.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),exports.colors=[6,2,3,4,5,1];try{const supportsColor=function requireSupportsColor(){if(hasRequiredSupportsColor)return supportsColor_1;hasRequiredSupportsColor=1;const os=require$$0__default$5.default,tty=require$$1__default$1.default,hasFlag=requireHasFlag(),{env:env}=process;let forceColor;function translateLevel(level){return 0!==level&&{level:level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(haveStream,streamIsTTY){if(0===forceColor)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(haveStream&&!streamIsTTY&&void 0===forceColor)return 0;const min=forceColor||0;if("dumb"===env.TERM)return min;if("win32"===process.platform){const osRelease=os.release().split(".");return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((sign=>sign in env))||"codeship"===env.CI_NAME?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("truecolor"===env.COLORTERM)return 3;if("TERM_PROGRAM"in env){const version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:min}return hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")||hasFlag("color=never")?forceColor=0:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=1),"FORCE_COLOR"in env&&(forceColor="true"===env.FORCE_COLOR?1:"false"===env.FORCE_COLOR?0:0===env.FORCE_COLOR.length?1:Math.min(parseInt(env.FORCE_COLOR,10),3)),supportsColor_1={supportsColor:function getSupportLevel(stream){return translateLevel(supportsColor(stream,stream&&stream.isTTY))},stdout:translateLevel(supportsColor(!0,tty.isatty(1))),stderr:translateLevel(supportsColor(!0,tty.isatty(2)))}}();supportsColor&&(supportsColor.stderr||supportsColor).level>=2&&(exports.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(error){}exports.inspectOpts=Object.keys(process.env).filter((key=>/^debug_/i.test(key))).reduce(((obj,key)=>{const prop=key.substring(6).toLowerCase().replace(/_([a-z])/g,((_,k)=>k.toUpperCase()));let val=process.env[key];return val=!!/^(yes|on|true|enabled)$/i.test(val)||!/^(no|off|false|disabled)$/i.test(val)&&("null"===val?null:Number(val)),obj[prop]=val,obj}),{}),module.exports=requireCommon()(exports);const{formatters:formatters}=module.exports;formatters.o=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts).split("\n").map((str=>str.trim())).join(" ")},formatters.O=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts)}}(node,node.exports)),node.exports}function requireSrc(){return hasRequiredSrc||(hasRequiredSrc=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?src.exports=function requireBrowser$1(){return hasRequiredBrowser$1||(hasRequiredBrowser$1=1,function(module,exports){exports.formatArgs=function formatArgs(args){if(args[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+args[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;args.splice(1,0,c,"color: inherit");let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,(match=>{"%%"!==match&&(index++,"%c"===match&&(lastC=index))})),args.splice(lastC,0,c)},exports.save=function save(namespaces){try{namespaces?exports.storage.setItem("debug",namespaces):exports.storage.removeItem("debug")}catch(error){}},exports.load=function load(){let r;try{r=exports.storage.getItem("debug")}catch(error){}return!r&&"undefined"!=typeof process&&"env"in process&&(r=process.env.DEBUG),r},exports.useColors=function useColors(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},exports.storage=function localstorage(){try{return localStorage}catch(error){}}(),exports.destroy=(()=>{let warned=!1;return()=>{warned||(warned=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],exports.log=console.debug||console.log||(()=>{}),module.exports=requireCommon()(exports);const{formatters:formatters}=module.exports;formatters.j=function(v){try{return JSON.stringify(v)}catch(error){return"[UnexpectedJSONParseError]: "+error.message}}}(browser$1,browser$1.exports)),browser$1.exports}():src.exports=requireNode()),src.exports}var followRedirectsExports=function requireFollowRedirects(){if(hasRequiredFollowRedirects)return followRedirects$1.exports;hasRequiredFollowRedirects=1;var url=require$$0__default$4.default,URL=url.URL,http=require$$3__default.default,https=https__default.default,Writable=require$$0__default$2.default.Writable,assert=require$$4__default$1.default,debug=function requireDebug(){return hasRequiredDebug||(hasRequiredDebug=1,debug_1=function(){if(!debug){try{debug=requireSrc()("follow-redirects")}catch(error){}"function"!=typeof debug&&(debug=function(){})}debug.apply(null,arguments)}),debug_1;var debug}(),useNativeURL=!1;try{assert(new URL)}catch(error){useNativeURL="ERR_INVALID_URL"===error.code}var preservedUrlFields=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],events=["abort","aborted","connect","error","socket","timeout"],eventHandlers=Object.create(null);events.forEach((function(event){eventHandlers[event]=function(arg1,arg2,arg3){this._redirectable.emit(event,arg1,arg2,arg3)}}));var InvalidUrlError=createErrorType("ERR_INVALID_URL","Invalid URL",TypeError),RedirectionError=createErrorType("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),TooManyRedirectsError=createErrorType("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",RedirectionError),MaxBodyLengthExceededError=createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),WriteAfterEndError=createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),destroy=Writable.prototype.destroy||noop;function RedirectableRequest(options,responseCallback){Writable.call(this),this._sanitizeOptions(options),this._options=options,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],responseCallback&&this.on("response",responseCallback);var self=this;this._onNativeResponse=function(response){try{self._processResponse(response)}catch(cause){self.emit("error",cause instanceof RedirectionError?cause:new RedirectionError({cause:cause}))}},this._performRequest()}function wrap(protocols){var exports={maxRedirects:21,maxBodyLength:10485760},nativeProtocols={};return Object.keys(protocols).forEach((function(scheme){var protocol=scheme+":",nativeProtocol=nativeProtocols[protocol]=protocols[scheme],wrappedProtocol=exports[scheme]=Object.create(nativeProtocol);Object.defineProperties(wrappedProtocol,{request:{value:function request(input,options,callback){return!function isURL(value){return URL&&value instanceof URL}(input)?isString(input)?input=spreadUrlObject(parseUrl(input)):(callback=options,options=validateUrl(input),input={protocol:protocol}):input=spreadUrlObject(input),isFunction(options)&&(callback=options,options=null),(options=Object.assign({maxRedirects:exports.maxRedirects,maxBodyLength:exports.maxBodyLength},input,options)).nativeProtocols=nativeProtocols,isString(options.host)||isString(options.hostname)||(options.hostname="::1"),assert.equal(options.protocol,protocol,"protocol mismatch"),debug("options",options),new RedirectableRequest(options,callback)},configurable:!0,enumerable:!0,writable:!0},get:{value:function get(input,options,callback){var wrappedRequest=wrappedProtocol.request(input,options,callback);return wrappedRequest.end(),wrappedRequest},configurable:!0,enumerable:!0,writable:!0}})})),exports}function noop(){}function parseUrl(input){var parsed;if(useNativeURL)parsed=new URL(input);else if(!isString((parsed=validateUrl(url.parse(input))).protocol))throw new InvalidUrlError({input:input});return parsed}function validateUrl(input){if(/^\[/.test(input.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(input.hostname))throw new InvalidUrlError({input:input.href||input});if(/^\[/.test(input.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host))throw new InvalidUrlError({input:input.href||input});return input}function spreadUrlObject(urlObject,target){var spread=target||{};for(var key of preservedUrlFields)spread[key]=urlObject[key];return spread.hostname.startsWith("[")&&(spread.hostname=spread.hostname.slice(1,-1)),""!==spread.port&&(spread.port=Number(spread.port)),spread.path=spread.search?spread.pathname+spread.search:spread.pathname,spread}function removeMatchingHeaders(regex,headers){var lastValue;for(var header in headers)regex.test(header)&&(lastValue=headers[header],delete headers[header]);return null==lastValue?void 0:String(lastValue).trim()}function createErrorType(code,message,baseClass){function CustomError(properties){Error.captureStackTrace(this,this.constructor),Object.assign(this,properties||{}),this.code=code,this.message=this.cause?message+": "+this.cause.message:message}return CustomError.prototype=new(baseClass||Error),Object.defineProperties(CustomError.prototype,{constructor:{value:CustomError,enumerable:!1},name:{value:"Error ["+code+"]",enumerable:!1}}),CustomError}function destroyRequest(request,error){for(var event of events)request.removeListener(event,eventHandlers[event]);request.on("error",noop),request.destroy(error)}function isString(value){return"string"==typeof value||value instanceof String}function isFunction(value){return"function"==typeof value}return RedirectableRequest.prototype=Object.create(Writable.prototype),RedirectableRequest.prototype.abort=function(){destroyRequest(this._currentRequest),this._currentRequest.abort(),this.emit("abort")},RedirectableRequest.prototype.destroy=function(error){return destroyRequest(this._currentRequest,error),destroy.call(this,error),this},RedirectableRequest.prototype.write=function(data,encoding,callback){if(this._ending)throw new WriteAfterEndError;if(!isString(data)&&!function isBuffer(value){return"object"==typeof value&&"length"in value}(data))throw new TypeError("data should be a string, Buffer or Uint8Array");isFunction(encoding)&&(callback=encoding,encoding=null),0!==data.length?this._requestBodyLength+data.length<=this._options.maxBodyLength?(this._requestBodyLength+=data.length,this._requestBodyBuffers.push({data:data,encoding:encoding}),this._currentRequest.write(data,encoding,callback)):(this.emit("error",new MaxBodyLengthExceededError),this.abort()):callback&&callback()},RedirectableRequest.prototype.end=function(data,encoding,callback){if(isFunction(data)?(callback=data,data=encoding=null):isFunction(encoding)&&(callback=encoding,encoding=null),data){var self=this,currentRequest=this._currentRequest;this.write(data,encoding,(function(){self._ended=!0,currentRequest.end(null,null,callback)})),this._ending=!0}else this._ended=this._ending=!0,this._currentRequest.end(null,null,callback)},RedirectableRequest.prototype.setHeader=function(name,value){this._options.headers[name]=value,this._currentRequest.setHeader(name,value)},RedirectableRequest.prototype.removeHeader=function(name){delete this._options.headers[name],this._currentRequest.removeHeader(name)},RedirectableRequest.prototype.setTimeout=function(msecs,callback){var self=this;function destroyOnTimeout(socket){socket.setTimeout(msecs),socket.removeListener("timeout",socket.destroy),socket.addListener("timeout",socket.destroy)}function startTimer(socket){self._timeout&&clearTimeout(self._timeout),self._timeout=setTimeout((function(){self.emit("timeout"),clearTimer()}),msecs),destroyOnTimeout(socket)}function clearTimer(){self._timeout&&(clearTimeout(self._timeout),self._timeout=null),self.removeListener("abort",clearTimer),self.removeListener("error",clearTimer),self.removeListener("response",clearTimer),self.removeListener("close",clearTimer),callback&&self.removeListener("timeout",callback),self.socket||self._currentRequest.removeListener("socket",startTimer)}return callback&&this.on("timeout",callback),this.socket?startTimer(this.socket):this._currentRequest.once("socket",startTimer),this.on("socket",destroyOnTimeout),this.on("abort",clearTimer),this.on("error",clearTimer),this.on("response",clearTimer),this.on("close",clearTimer),this},["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(method){RedirectableRequest.prototype[method]=function(a,b){return this._currentRequest[method](a,b)}})),["aborted","connection","socket"].forEach((function(property){Object.defineProperty(RedirectableRequest.prototype,property,{get:function(){return this._currentRequest[property]}})})),RedirectableRequest.prototype._sanitizeOptions=function(options){if(options.headers||(options.headers={}),options.host&&(options.hostname||(options.hostname=options.host),delete options.host),!options.pathname&&options.path){var searchPos=options.path.indexOf("?");searchPos<0?options.pathname=options.path:(options.pathname=options.path.substring(0,searchPos),options.search=options.path.substring(searchPos))}},RedirectableRequest.prototype._performRequest=function(){var protocol=this._options.protocol,nativeProtocol=this._options.nativeProtocols[protocol];if(!nativeProtocol)throw new TypeError("Unsupported protocol "+protocol);if(this._options.agents){var scheme=protocol.slice(0,-1);this._options.agent=this._options.agents[scheme]}var request=this._currentRequest=nativeProtocol.request(this._options,this._onNativeResponse);for(var event of(request._redirectable=this,events))request.on(event,eventHandlers[event]);if(this._currentUrl=/^\//.test(this._options.path)?url.format(this._options):this._options.path,this._isRedirect){var i=0,self=this,buffers=this._requestBodyBuffers;!function writeNext(error){if(request===self._currentRequest)if(error)self.emit("error",error);else if(i<buffers.length){var buffer=buffers[i++];request.finished||request.write(buffer.data,buffer.encoding,writeNext)}else self._ended&&request.end()}()}},RedirectableRequest.prototype._processResponse=function(response){var statusCode=response.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:response.headers,statusCode:statusCode});var requestHeaders,location=response.headers.location;if(!location||!1===this._options.followRedirects||statusCode<300||statusCode>=400)return response.responseUrl=this._currentUrl,response.redirects=this._redirects,this.emit("response",response),void(this._requestBodyBuffers=[]);if(destroyRequest(this._currentRequest),response.destroy(),++this._redirectCount>this._options.maxRedirects)throw new TooManyRedirectsError;var beforeRedirect=this._options.beforeRedirect;beforeRedirect&&(requestHeaders=Object.assign({Host:response.req.getHeader("host")},this._options.headers));var method=this._options.method;((301===statusCode||302===statusCode)&&"POST"===this._options.method||303===statusCode&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],removeMatchingHeaders(/^content-/i,this._options.headers));var currentHostHeader=removeMatchingHeaders(/^host$/i,this._options.headers),currentUrlParts=parseUrl(this._currentUrl),currentHost=currentHostHeader||currentUrlParts.host,currentUrl=/^\w+:/.test(location)?this._currentUrl:url.format(Object.assign(currentUrlParts,{host:currentHost})),redirectUrl=function resolveUrl(relative,base){return useNativeURL?new URL(relative,base):parseUrl(url.resolve(base,relative))}(location,currentUrl);if(debug("redirecting to",redirectUrl.href),this._isRedirect=!0,spreadUrlObject(redirectUrl,this._options),(redirectUrl.protocol!==currentUrlParts.protocol&&"https:"!==redirectUrl.protocol||redirectUrl.host!==currentHost&&!function isSubdomain(subdomain,domain){assert(isString(subdomain)&&isString(domain));var dot=subdomain.length-domain.length-1;return dot>0&&"."===subdomain[dot]&&subdomain.endsWith(domain)}(redirectUrl.host,currentHost))&&removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),isFunction(beforeRedirect)){var responseDetails={headers:response.headers,statusCode:statusCode},requestDetails={url:currentUrl,method:method,headers:requestHeaders};beforeRedirect(this._options,responseDetails,requestDetails),this._sanitizeOptions(this._options)}this._performRequest()},followRedirects$1.exports=wrap({http:http,https:https}),followRedirects$1.exports.wrap=wrap,followRedirects$1.exports}(),followRedirects=getDefaultExportFromCjs(followRedirectsExports);function parseProtocol(url){const match=/^([-+\w]{1,25})(:?\/\/|:)/.exec(url);return match&&match[1]||""}const DATA_URL_PATTERN=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;const kInternals=Symbol("internals");class AxiosTransformStream extends require$$0__default$2.default.Transform{constructor(options){super({readableHighWaterMark:(options=utils$4.toFlatObject(options,{maxRate:0,chunkSize:65536,minChunkSize:100,timeWindow:500,ticksRate:2,samplesCount:15},null,((prop,source)=>!utils$4.isUndefined(source[prop])))).chunkSize});const internals=this[kInternals]={timeWindow:options.timeWindow,chunkSize:options.chunkSize,maxRate:options.maxRate,minChunkSize:options.minChunkSize,bytesSeen:0,isCaptured:!1,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};this.on("newListener",(event=>{"progress"===event&&(internals.isCaptured||(internals.isCaptured=!0))}))}_read(size){const internals=this[kInternals];return internals.onReadCallback&&internals.onReadCallback(),super._read(size)}_transform(chunk,encoding,callback){const internals=this[kInternals],maxRate=internals.maxRate,readableHighWaterMark=this.readableHighWaterMark,timeWindow=internals.timeWindow,bytesThreshold=maxRate/(1e3/timeWindow),minChunkSize=!1!==internals.minChunkSize?Math.max(internals.minChunkSize,.01*bytesThreshold):0,pushChunk=(_chunk,_callback)=>{const bytes=Buffer.byteLength(_chunk);internals.bytesSeen+=bytes,internals.bytes+=bytes,internals.isCaptured&&this.emit("progress",internals.bytesSeen),this.push(_chunk)?process.nextTick(_callback):internals.onReadCallback=()=>{internals.onReadCallback=null,process.nextTick(_callback)}},transformChunk=(_chunk,_callback)=>{const chunkSize=Buffer.byteLength(_chunk);let bytesLeft,chunkRemainder=null,maxChunkSize=readableHighWaterMark,passed=0;if(maxRate){const now=Date.now();(!internals.ts||(passed=now-internals.ts)>=timeWindow)&&(internals.ts=now,bytesLeft=bytesThreshold-internals.bytes,internals.bytes=bytesLeft<0?-bytesLeft:0,passed=0),bytesLeft=bytesThreshold-internals.bytes}if(maxRate){if(bytesLeft<=0)return setTimeout((()=>{_callback(null,_chunk)}),timeWindow-passed);bytesLeft<maxChunkSize&&(maxChunkSize=bytesLeft)}maxChunkSize&&chunkSize>maxChunkSize&&chunkSize-maxChunkSize>minChunkSize&&(chunkRemainder=_chunk.subarray(maxChunkSize),_chunk=_chunk.subarray(0,maxChunkSize)),pushChunk(_chunk,chunkRemainder?()=>{process.nextTick(_callback,null,chunkRemainder)}:_callback)};transformChunk(chunk,(function transformNextChunk(err,_chunk){if(err)return callback(err);_chunk?transformChunk(_chunk,transformNextChunk):callback(null)}))}}var AxiosTransformStream$1=AxiosTransformStream;const{asyncIterator:asyncIterator}=Symbol;var readBlob$1=async function*(blob){blob.stream?yield*blob.stream():blob.arrayBuffer?yield await blob.arrayBuffer():blob[asyncIterator]?yield*blob[asyncIterator]():yield blob};const BOUNDARY_ALPHABET=utils$4.ALPHABET.ALPHA_DIGIT+"-_",textEncoder=new require$$0$6.TextEncoder,CRLF_BYTES=textEncoder.encode("\r\n");class FormDataPart{constructor(name,value){const{escapeName:escapeName}=this.constructor,isStringValue=utils$4.isString(value);let headers=`Content-Disposition: form-data; name="${escapeName(name)}"${!isStringValue&&value.name?`; filename="${escapeName(value.name)}"`:""}\r\n`;isStringValue?value=textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g,"\r\n")):headers+=`Content-Type: ${value.type||"application/octet-stream"}\r\n`,this.headers=textEncoder.encode(headers+"\r\n"),this.contentLength=isStringValue?value.byteLength:value.size,this.size=this.headers.byteLength+this.contentLength+2,this.name=name,this.value=value}async*encode(){yield this.headers;const{value:value}=this;utils$4.isTypedArray(value)?yield value:yield*readBlob$1(value),yield CRLF_BYTES}static escapeName(name){return String(name).replace(/[\r\n"]/g,(match=>({"\r":"%0D","\n":"%0A",'"':"%22"}[match])))}}var formDataToStream$1=(form,headersHandler,options)=>{const{tag:tag="form-data-boundary",size:size=25,boundary:boundary=tag+"-"+utils$4.generateString(size,BOUNDARY_ALPHABET)}=options||{};if(!utils$4.isFormData(form))throw TypeError("FormData instance required");if(boundary.length<1||boundary.length>70)throw Error("boundary must be 10-70 characters long");const boundaryBytes=textEncoder.encode("--"+boundary+"\r\n"),footerBytes=textEncoder.encode("--"+boundary+"--\r\n\r\n");let contentLength=footerBytes.byteLength;const parts=Array.from(form.entries()).map((([name,value])=>{const part=new FormDataPart(name,value);return contentLength+=part.size,part}));contentLength+=boundaryBytes.byteLength*parts.length,contentLength=utils$4.toFiniteNumber(contentLength);const computedHeaders={"Content-Type":`multipart/form-data; boundary=${boundary}`};return Number.isFinite(contentLength)&&(computedHeaders["Content-Length"]=contentLength),headersHandler&&headersHandler(computedHeaders),require$$0$5.Readable.from(async function*(){for(const part of parts)yield boundaryBytes,yield*part.encode();yield footerBytes}())};class ZlibHeaderTransformStream extends require$$0__default$2.default.Transform{__transform(chunk,encoding,callback){this.push(chunk),callback()}_transform(chunk,encoding,callback){if(0!==chunk.length&&(this._transform=this.__transform,120!==chunk[0])){const header=Buffer.alloc(2);header[0]=120,header[1]=156,this.push(header,encoding)}this.__transform(chunk,encoding,callback)}}var ZlibHeaderTransformStream$1=ZlibHeaderTransformStream;var callbackify$1=(fn,reducer)=>utils$4.isAsyncFn(fn)?function(...args){const cb=args.pop();fn.apply(this,args).then((value=>{try{reducer?cb(null,...reducer(value)):cb(null,value)}catch(err){cb(err)}}),cb)}:fn;const progressEventReducer=(listener,isDownloadStream,freq=3)=>{let bytesNotified=0;const _speedometer=function speedometer(samplesCount,min){samplesCount=samplesCount||10;const bytes=new Array(samplesCount),timestamps=new Array(samplesCount);let firstSampleTS,head=0,tail=0;return min=void 0!==min?min:1e3,function push(chunkLength){const now=Date.now(),startedAt=timestamps[tail];firstSampleTS||(firstSampleTS=now),bytes[head]=chunkLength,timestamps[head]=now;let i=tail,bytesCount=0;for(;i!==head;)bytesCount+=bytes[i++],i%=samplesCount;if(head=(head+1)%samplesCount,head===tail&&(tail=(tail+1)%samplesCount),now-firstSampleTS<min)return;const passed=startedAt&&now-startedAt;return passed?Math.round(1e3*bytesCount/passed):void 0}}(50,250);return function throttle(fn,freq){let lastArgs,timer,timestamp=0,threshold=1e3/freq;const invoke=(args,now=Date.now())=>{timestamp=now,lastArgs=null,timer&&(clearTimeout(timer),timer=null),fn.apply(null,args)};return[(...args)=>{const now=Date.now(),passed=now-timestamp;passed>=threshold?invoke(args,now):(lastArgs=args,timer||(timer=setTimeout((()=>{timer=null,invoke(lastArgs)}),threshold-passed)))},()=>lastArgs&&invoke(lastArgs)]}((e=>{const loaded=e.loaded,total=e.lengthComputable?e.total:void 0,progressBytes=loaded-bytesNotified,rate=_speedometer(progressBytes);bytesNotified=loaded;listener({loaded:loaded,total:total,progress:total?loaded/total:void 0,bytes:progressBytes,rate:rate||void 0,estimated:rate&&total&&loaded<=total?(total-loaded)/rate:void 0,event:e,lengthComputable:null!=total,[isDownloadStream?"download":"upload"]:!0})}),freq)},progressEventDecorator=(total,throttled)=>{const lengthComputable=null!=total;return[loaded=>throttled[0]({lengthComputable:lengthComputable,total:total,loaded:loaded}),throttled[1]]},asyncDecorator=fn=>(...args)=>utils$4.asap((()=>fn(...args))),zlibOptions={flush:zlib__default.default.constants.Z_SYNC_FLUSH,finishFlush:zlib__default.default.constants.Z_SYNC_FLUSH},brotliOptions={flush:zlib__default.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib__default.default.constants.BROTLI_OPERATION_FLUSH},isBrotliSupported=utils$4.isFunction(zlib__default.default.createBrotliDecompress),{http:httpFollow,https:httpsFollow}=followRedirects,isHttps=/https:?/,supportedProtocols=platform.protocols.map((protocol=>protocol+":")),flushOnFinish=(stream,[throttled,flush])=>(stream.on("end",flush).on("error",flush),throttled);function dispatchBeforeRedirect(options,responseDetails){options.beforeRedirects.proxy&&options.beforeRedirects.proxy(options),options.beforeRedirects.config&&options.beforeRedirects.config(options,responseDetails)}function setProxy(options,configProxy,location){let proxy=configProxy;if(!proxy&&!1!==proxy){const proxyUrl=proxyFromEnvExports.getProxyForUrl(location);proxyUrl&&(proxy=new URL(proxyUrl))}if(proxy){if(proxy.username&&(proxy.auth=(proxy.username||"")+":"+(proxy.password||"")),proxy.auth){(proxy.auth.username||proxy.auth.password)&&(proxy.auth=(proxy.auth.username||"")+":"+(proxy.auth.password||""));const base64=Buffer.from(proxy.auth,"utf8").toString("base64");options.headers["Proxy-Authorization"]="Basic "+base64}options.headers.host=options.hostname+(options.port?":"+options.port:"");const proxyHost=proxy.hostname||proxy.host;options.hostname=proxyHost,options.host=proxyHost,options.port=proxy.port,options.path=location,proxy.protocol&&(options.protocol=proxy.protocol.includes(":")?proxy.protocol:`${proxy.protocol}:`)}options.beforeRedirects.proxy=function beforeRedirect(redirectOptions){setProxy(redirectOptions,configProxy,redirectOptions.href)}}const isHttpAdapterSupported="undefined"!=typeof process&&"process"===utils$4.kindOf(process),buildAddressEntry=(address,family)=>(({address:address,family:family})=>{if(!utils$4.isString(address))throw TypeError("address must be a string");return{address:address,family:family||(address.indexOf(".")<0?6:4)}})(utils$4.isObject(address)?address:{address:address,family:family});var httpAdapter=isHttpAdapterSupported&&function httpAdapter(config){return asyncExecutor=async function dispatchHttpRequest(resolve,reject,onDone){let{data:data,lookup:lookup,family:family}=config;const{responseType:responseType,responseEncoding:responseEncoding}=config,method=config.method.toUpperCase();let isDone,req,rejected=!1;if(lookup){const _lookup=callbackify$1(lookup,(value=>utils$4.isArray(value)?value:[value]));lookup=(hostname,opt,cb)=>{_lookup(hostname,opt,((err,arg0,arg1)=>{if(err)return cb(err);const addresses=utils$4.isArray(arg0)?arg0.map((addr=>buildAddressEntry(addr))):[buildAddressEntry(arg0,arg1)];opt.all?cb(err,addresses):cb(err,addresses[0].address,addresses[0].family)}))}}const emitter=new require$$0$2.EventEmitter,onFinished=()=>{config.cancelToken&&config.cancelToken.unsubscribe(abort),config.signal&&config.signal.removeEventListener("abort",abort),emitter.removeAllListeners()};function abort(reason){emitter.emit("abort",!reason||reason.type?new CanceledError(null,config,req):reason)}onDone(((value,isRejected)=>{isDone=!0,isRejected&&(rejected=!0,onFinished())})),emitter.once("abort",reject),(config.cancelToken||config.signal)&&(config.cancelToken&&config.cancelToken.subscribe(abort),config.signal&&(config.signal.aborted?abort():config.signal.addEventListener("abort",abort)));const fullPath=buildFullPath(config.baseURL,config.url),parsed=new URL(fullPath,platform.hasBrowserEnv?platform.origin:void 0),protocol=parsed.protocol||supportedProtocols[0];if("data:"===protocol){let convertedData;if("GET"!==method)return settle(resolve,reject,{status:405,statusText:"method not allowed",headers:{},config:config});try{convertedData=function fromDataURI(uri,asBlob,options){const _Blob=options&&options.Blob||platform.classes.Blob,protocol=parseProtocol(uri);if(void 0===asBlob&&_Blob&&(asBlob=!0),"data"===protocol){uri=protocol.length?uri.slice(protocol.length+1):uri;const match=DATA_URL_PATTERN.exec(uri);if(!match)throw new AxiosError("Invalid URL",AxiosError.ERR_INVALID_URL);const mime=match[1],isBase64=match[2],body=match[3],buffer=Buffer.from(decodeURIComponent(body),isBase64?"base64":"utf8");if(asBlob){if(!_Blob)throw new AxiosError("Blob is not supported",AxiosError.ERR_NOT_SUPPORT);return new _Blob([buffer],{type:mime})}return buffer}throw new AxiosError("Unsupported protocol "+protocol,AxiosError.ERR_NOT_SUPPORT)}(config.url,"blob"===responseType,{Blob:config.env&&config.env.Blob})}catch(err){throw AxiosError.from(err,AxiosError.ERR_BAD_REQUEST,config)}return"text"===responseType?(convertedData=convertedData.toString(responseEncoding),responseEncoding&&"utf8"!==responseEncoding||(convertedData=utils$4.stripBOM(convertedData))):"stream"===responseType&&(convertedData=require$$0__default$2.default.Readable.from(convertedData)),settle(resolve,reject,{data:convertedData,status:200,statusText:"OK",headers:new AxiosHeaders$1,config:config})}if(-1===supportedProtocols.indexOf(protocol))return reject(new AxiosError("Unsupported protocol "+protocol,AxiosError.ERR_BAD_REQUEST,config));const headers=AxiosHeaders$1.from(config.headers).normalize();headers.set("User-Agent","axios/1.7.7",!1);const{onUploadProgress:onUploadProgress,onDownloadProgress:onDownloadProgress}=config,maxRate=config.maxRate;let maxUploadRate,maxDownloadRate;if(utils$4.isSpecCompliantForm(data)){const userBoundary=headers.getContentType(/boundary=([-_\w\d]{10,70})/i);data=formDataToStream$1(data,(formHeaders=>{headers.set(formHeaders)}),{tag:"axios-1.7.7-boundary",boundary:userBoundary&&userBoundary[1]||void 0})}else if(utils$4.isFormData(data)&&utils$4.isFunction(data.getHeaders)){if(headers.set(data.getHeaders()),!headers.hasContentLength())try{const knownLength=await require$$0__default$3.default.promisify(data.getLength).call(data);Number.isFinite(knownLength)&&knownLength>=0&&headers.setContentLength(knownLength)}catch(e){}}else if(utils$4.isBlob(data))data.size&&headers.setContentType(data.type||"application/octet-stream"),headers.setContentLength(data.size||0),data=require$$0__default$2.default.Readable.from(readBlob$1(data));else if(data&&!utils$4.isStream(data)){if(Buffer.isBuffer(data));else if(utils$4.isArrayBuffer(data))data=Buffer.from(new Uint8Array(data));else{if(!utils$4.isString(data))return reject(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",AxiosError.ERR_BAD_REQUEST,config));data=Buffer.from(data,"utf-8")}if(headers.setContentLength(data.length,!1),config.maxBodyLength>-1&&data.length>config.maxBodyLength)return reject(new AxiosError("Request body larger than maxBodyLength limit",AxiosError.ERR_BAD_REQUEST,config))}const contentLength=utils$4.toFiniteNumber(headers.getContentLength());let auth,path;utils$4.isArray(maxRate)?(maxUploadRate=maxRate[0],maxDownloadRate=maxRate[1]):maxUploadRate=maxDownloadRate=maxRate,data&&(onUploadProgress||maxUploadRate)&&(utils$4.isStream(data)||(data=require$$0__default$2.default.Readable.from(data,{objectMode:!1})),data=require$$0__default$2.default.pipeline([data,new AxiosTransformStream$1({maxRate:utils$4.toFiniteNumber(maxUploadRate)})],utils$4.noop),onUploadProgress&&data.on("progress",flushOnFinish(data,progressEventDecorator(contentLength,progressEventReducer(asyncDecorator(onUploadProgress),!1,3))))),config.auth&&(auth=(config.auth.username||"")+":"+(config.auth.password||"")),!auth&&parsed.username&&(auth=parsed.username+":"+parsed.password),auth&&headers.delete("authorization");try{path=buildURL(parsed.pathname+parsed.search,config.params,config.paramsSerializer).replace(/^\?/,"")}catch(err){const customErr=new Error(err.message);return customErr.config=config,customErr.url=config.url,customErr.exists=!0,reject(customErr)}headers.set("Accept-Encoding","gzip, compress, deflate"+(isBrotliSupported?", br":""),!1);const options={path:path,method:method,headers:headers.toJSON(),agents:{http:config.httpAgent,https:config.httpsAgent},auth:auth,protocol:protocol,family:family,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{}};let transport;!utils$4.isUndefined(lookup)&&(options.lookup=lookup),config.socketPath?options.socketPath=config.socketPath:(options.hostname=parsed.hostname.startsWith("[")?parsed.hostname.slice(1,-1):parsed.hostname,options.port=parsed.port,setProxy(options,config.proxy,protocol+"//"+parsed.hostname+(parsed.port?":"+parsed.port:"")+options.path));const isHttpsRequest=isHttps.test(options.protocol);if(options.agent=isHttpsRequest?config.httpsAgent:config.httpAgent,config.transport?transport=config.transport:0===config.maxRedirects?transport=isHttpsRequest?https__default.default:require$$3__default.default:(config.maxRedirects&&(options.maxRedirects=config.maxRedirects),config.beforeRedirect&&(options.beforeRedirects.config=config.beforeRedirect),transport=isHttpsRequest?httpsFollow:httpFollow),config.maxBodyLength>-1?options.maxBodyLength=config.maxBodyLength:options.maxBodyLength=1/0,config.insecureHTTPParser&&(options.insecureHTTPParser=config.insecureHTTPParser),req=transport.request(options,(function handleResponse(res){if(req.destroyed)return;const streams=[res],responseLength=+res.headers["content-length"];if(onDownloadProgress||maxDownloadRate){const transformStream=new AxiosTransformStream$1({maxRate:utils$4.toFiniteNumber(maxDownloadRate)});onDownloadProgress&&transformStream.on("progress",flushOnFinish(transformStream,progressEventDecorator(responseLength,progressEventReducer(asyncDecorator(onDownloadProgress),!0,3)))),streams.push(transformStream)}let responseStream=res;const lastRequest=res.req||req;if(!1!==config.decompress&&res.headers["content-encoding"])switch("HEAD"!==method&&204!==res.statusCode||delete res.headers["content-encoding"],(res.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":streams.push(zlib__default.default.createUnzip(zlibOptions)),delete res.headers["content-encoding"];break;case"deflate":streams.push(new ZlibHeaderTransformStream$1),streams.push(zlib__default.default.createUnzip(zlibOptions)),delete res.headers["content-encoding"];break;case"br":isBrotliSupported&&(streams.push(zlib__default.default.createBrotliDecompress(brotliOptions)),delete res.headers["content-encoding"])}responseStream=streams.length>1?require$$0__default$2.default.pipeline(streams,utils$4.noop):streams[0];const offListeners=require$$0__default$2.default.finished(responseStream,(()=>{offListeners(),onFinished()})),response={status:res.statusCode,statusText:res.statusMessage,headers:new AxiosHeaders$1(res.headers),config:config,request:lastRequest};if("stream"===responseType)response.data=responseStream,settle(resolve,reject,response);else{const responseBuffer=[];let totalResponseBytes=0;responseStream.on("data",(function handleStreamData(chunk){responseBuffer.push(chunk),totalResponseBytes+=chunk.length,config.maxContentLength>-1&&totalResponseBytes>config.maxContentLength&&(rejected=!0,responseStream.destroy(),reject(new AxiosError("maxContentLength size of "+config.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,config,lastRequest)))})),responseStream.on("aborted",(function handlerStreamAborted(){if(rejected)return;const err=new AxiosError("maxContentLength size of "+config.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,config,lastRequest);responseStream.destroy(err),reject(err)})),responseStream.on("error",(function handleStreamError(err){req.destroyed||reject(AxiosError.from(err,null,config,lastRequest))})),responseStream.on("end",(function handleStreamEnd(){try{let responseData=1===responseBuffer.length?responseBuffer[0]:Buffer.concat(responseBuffer);"arraybuffer"!==responseType&&(responseData=responseData.toString(responseEncoding),responseEncoding&&"utf8"!==responseEncoding||(responseData=utils$4.stripBOM(responseData))),response.data=responseData}catch(err){return reject(AxiosError.from(err,null,config,response.request,response))}settle(resolve,reject,response)}))}emitter.once("abort",(err=>{responseStream.destroyed||(responseStream.emit("error",err),responseStream.destroy())}))})),emitter.once("abort",(err=>{reject(err),req.destroy(err)})),req.on("error",(function handleRequestError(err){reject(AxiosError.from(err,null,config,req))})),req.on("socket",(function handleRequestSocket(socket){socket.setKeepAlive(!0,6e4)})),config.timeout){const timeout=parseInt(config.timeout,10);if(Number.isNaN(timeout))return void reject(new AxiosError("error trying to parse `config.timeout` to int",AxiosError.ERR_BAD_OPTION_VALUE,config,req));req.setTimeout(timeout,(function handleRequestTimeout(){if(isDone)return;let timeoutErrorMessage=config.timeout?"timeout of "+config.timeout+"ms exceeded":"timeout exceeded";const transitional=config.transitional||transitionalDefaults;config.timeoutErrorMessage&&(timeoutErrorMessage=config.timeoutErrorMessage),reject(new AxiosError(timeoutErrorMessage,transitional.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,config,req)),abort()}))}if(utils$4.isStream(data)){let ended=!1,errored=!1;data.on("end",(()=>{ended=!0})),data.once("error",(err=>{errored=!0,req.destroy(err)})),data.on("close",(()=>{ended||errored||abort(new CanceledError("Request stream has been aborted",config,req))})),data.pipe(req)}else req.end(data)},new Promise(((resolve,reject)=>{let onDone,isDone;const done=(value,isRejected)=>{isDone||(isDone=!0,onDone&&onDone(value,isRejected))},_reject=reason=>{done(reason,!0),reject(reason)};asyncExecutor((value=>{done(value),resolve(value)}),_reject,(onDoneHandler=>onDone=onDoneHandler)).catch(_reject)}));var asyncExecutor},isURLSameOrigin=platform.hasStandardBrowserEnv?function standardBrowserEnv(){const msie=platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent),urlParsingNode=document.createElement("a");let originURL;function resolveURL(url){let href=url;return msie&&(urlParsingNode.setAttribute("href",href),href=urlParsingNode.href),urlParsingNode.setAttribute("href",href),{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,""):"",host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,""):"",hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,""):"",hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:"/"===urlParsingNode.pathname.charAt(0)?urlParsingNode.pathname:"/"+urlParsingNode.pathname}}return originURL=resolveURL(window.location.href),function isURLSameOrigin(requestURL){const parsed=utils$4.isString(requestURL)?resolveURL(requestURL):requestURL;return parsed.protocol===originURL.protocol&&parsed.host===originURL.host}}():function isURLSameOrigin(){return!0},cookies$1=platform.hasStandardBrowserEnv?{write(name,value,expires,path,domain,secure){const cookie=[name+"="+encodeURIComponent(value)];utils$4.isNumber(expires)&&cookie.push("expires="+new Date(expires).toGMTString()),utils$4.isString(path)&&cookie.push("path="+path),utils$4.isString(domain)&&cookie.push("domain="+domain),!0===secure&&cookie.push("secure"),document.cookie=cookie.join("; ")},read(name){const match=document.cookie.match(new RegExp("(^|;\\s*)("+name+")=([^;]*)"));return match?decodeURIComponent(match[3]):null},remove(name){this.write(name,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};const headersToObject=thing=>thing instanceof AxiosHeaders$1?{...thing}:thing;function mergeConfig(config1,config2){config2=config2||{};const config={};function getMergedValue(target,source,caseless){return utils$4.isPlainObject(target)&&utils$4.isPlainObject(source)?utils$4.merge.call({caseless:caseless},target,source):utils$4.isPlainObject(source)?utils$4.merge({},source):utils$4.isArray(source)?source.slice():source}function mergeDeepProperties(a,b,caseless){return utils$4.isUndefined(b)?utils$4.isUndefined(a)?void 0:getMergedValue(void 0,a,caseless):getMergedValue(a,b,caseless)}function valueFromConfig2(a,b){if(!utils$4.isUndefined(b))return getMergedValue(void 0,b)}function defaultToConfig2(a,b){return utils$4.isUndefined(b)?utils$4.isUndefined(a)?void 0:getMergedValue(void 0,a):getMergedValue(void 0,b)}function mergeDirectKeys(a,b,prop){return prop in config2?getMergedValue(a,b):prop in config1?getMergedValue(void 0,a):void 0}const mergeMap={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(a,b)=>mergeDeepProperties(headersToObject(a),headersToObject(b),!0)};return utils$4.forEach(Object.keys(Object.assign({},config1,config2)),(function computeConfigValue(prop){const merge=mergeMap[prop]||mergeDeepProperties,configValue=merge(config1[prop],config2[prop],prop);utils$4.isUndefined(configValue)&&merge!==mergeDirectKeys||(config[prop]=configValue)})),config}var resolveConfig=config=>{const newConfig=mergeConfig({},config);let contentType,{data:data,withXSRFToken:withXSRFToken,xsrfHeaderName:xsrfHeaderName,xsrfCookieName:xsrfCookieName,headers:headers,auth:auth}=newConfig;if(newConfig.headers=headers=AxiosHeaders$1.from(headers),newConfig.url=buildURL(buildFullPath(newConfig.baseURL,newConfig.url),config.params,config.paramsSerializer),auth&&headers.set("Authorization","Basic "+btoa((auth.username||"")+":"+(auth.password?unescape(encodeURIComponent(auth.password)):""))),utils$4.isFormData(data))if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)headers.setContentType(void 0);else if(!1!==(contentType=headers.getContentType())){const[type,...tokens]=contentType?contentType.split(";").map((token=>token.trim())).filter(Boolean):[];headers.setContentType([type||"multipart/form-data",...tokens].join("; "))}if(platform.hasStandardBrowserEnv&&(withXSRFToken&&utils$4.isFunction(withXSRFToken)&&(withXSRFToken=withXSRFToken(newConfig)),withXSRFToken||!1!==withXSRFToken&&isURLSameOrigin(newConfig.url))){const xsrfValue=xsrfHeaderName&&xsrfCookieName&&cookies$1.read(xsrfCookieName);xsrfValue&&headers.set(xsrfHeaderName,xsrfValue)}return newConfig};var xhrAdapter="undefined"!=typeof XMLHttpRequest&&function(config){return new Promise((function dispatchXhrRequest(resolve,reject){const _config=resolveConfig(config);let requestData=_config.data;const requestHeaders=AxiosHeaders$1.from(_config.headers).normalize();let onCanceled,uploadThrottled,downloadThrottled,flushUpload,flushDownload,{responseType:responseType,onUploadProgress:onUploadProgress,onDownloadProgress:onDownloadProgress}=_config;function done(){flushUpload&&flushUpload(),flushDownload&&flushDownload(),_config.cancelToken&&_config.cancelToken.unsubscribe(onCanceled),_config.signal&&_config.signal.removeEventListener("abort",onCanceled)}let request=new XMLHttpRequest;function onloadend(){if(!request)return;const responseHeaders=AxiosHeaders$1.from("getAllResponseHeaders"in request&&request.getAllResponseHeaders());settle((function _resolve(value){resolve(value),done()}),(function _reject(err){reject(err),done()}),{data:responseType&&"text"!==responseType&&"json"!==responseType?request.response:request.responseText,status:request.status,statusText:request.statusText,headers:responseHeaders,config:config,request:request}),request=null}request.open(_config.method.toUpperCase(),_config.url,!0),request.timeout=_config.timeout,"onloadend"in request?request.onloadend=onloadend:request.onreadystatechange=function handleLoad(){request&&4===request.readyState&&(0!==request.status||request.responseURL&&0===request.responseURL.indexOf("file:"))&&setTimeout(onloadend)},request.onabort=function handleAbort(){request&&(reject(new AxiosError("Request aborted",AxiosError.ECONNABORTED,config,request)),request=null)},request.onerror=function handleError(){reject(new AxiosError("Network Error",AxiosError.ERR_NETWORK,config,request)),request=null},request.ontimeout=function handleTimeout(){let timeoutErrorMessage=_config.timeout?"timeout of "+_config.timeout+"ms exceeded":"timeout exceeded";const transitional=_config.transitional||transitionalDefaults;_config.timeoutErrorMessage&&(timeoutErrorMessage=_config.timeoutErrorMessage),reject(new AxiosError(timeoutErrorMessage,transitional.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,config,request)),request=null},void 0===requestData&&requestHeaders.setContentType(null),"setRequestHeader"in request&&utils$4.forEach(requestHeaders.toJSON(),(function setRequestHeader(val,key){request.setRequestHeader(key,val)})),utils$4.isUndefined(_config.withCredentials)||(request.withCredentials=!!_config.withCredentials),responseType&&"json"!==responseType&&(request.responseType=_config.responseType),onDownloadProgress&&([downloadThrottled,flushDownload]=progressEventReducer(onDownloadProgress,!0),request.addEventListener("progress",downloadThrottled)),onUploadProgress&&request.upload&&([uploadThrottled,flushUpload]=progressEventReducer(onUploadProgress),request.upload.addEventListener("progress",uploadThrottled),request.upload.addEventListener("loadend",flushUpload)),(_config.cancelToken||_config.signal)&&(onCanceled=cancel=>{request&&(reject(!cancel||cancel.type?new CanceledError(null,config,request):cancel),request.abort(),request=null)},_config.cancelToken&&_config.cancelToken.subscribe(onCanceled),_config.signal&&(_config.signal.aborted?onCanceled():_config.signal.addEventListener("abort",onCanceled)));const protocol=parseProtocol(_config.url);protocol&&-1===platform.protocols.indexOf(protocol)?reject(new AxiosError("Unsupported protocol "+protocol+":",AxiosError.ERR_BAD_REQUEST,config)):request.send(requestData||null)}))};var composeSignals$1=(signals,timeout)=>{const{length:length}=signals=signals?signals.filter(Boolean):[];if(timeout||length){let aborted,controller=new AbortController;const onabort=function(reason){if(!aborted){aborted=!0,unsubscribe();const err=reason instanceof Error?reason:this.reason;controller.abort(err instanceof AxiosError?err:new CanceledError(err instanceof Error?err.message:err))}};let timer=timeout&&setTimeout((()=>{timer=null,onabort(new AxiosError(`timeout ${timeout} of ms exceeded`,AxiosError.ETIMEDOUT))}),timeout);const unsubscribe=()=>{signals&&(timer&&clearTimeout(timer),timer=null,signals.forEach((signal=>{signal.unsubscribe?signal.unsubscribe(onabort):signal.removeEventListener("abort",onabort)})),signals=null)};signals.forEach((signal=>signal.addEventListener("abort",onabort)));const{signal:signal}=controller;return signal.unsubscribe=()=>utils$4.asap(unsubscribe),signal}};const streamChunk=function*(chunk,chunkSize){let len=chunk.byteLength;if(!chunkSize||len<chunkSize)return void(yield chunk);let end,pos=0;for(;pos<len;)end=pos+chunkSize,yield chunk.slice(pos,end),pos=end},readStream=async function*(stream){if(stream[Symbol.asyncIterator])return void(yield*stream);const reader=stream.getReader();try{for(;;){const{done:done,value:value}=await reader.read();if(done)break;yield value}}finally{await reader.cancel()}},trackStream=(stream,chunkSize,onProgress,onFinish)=>{const iterator=async function*(iterable,chunkSize){for await(const chunk of readStream(iterable))yield*streamChunk(chunk,chunkSize)}(stream,chunkSize);let done,bytes=0,_onFinish=e=>{done||(done=!0,onFinish&&onFinish(e))};return new ReadableStream({async pull(controller){try{const{done:done,value:value}=await iterator.next();if(done)return _onFinish(),void controller.close();let len=value.byteLength;if(onProgress){let loadedBytes=bytes+=len;onProgress(loadedBytes)}controller.enqueue(new Uint8Array(value))}catch(err){throw _onFinish(err),err}},cancel:reason=>(_onFinish(reason),iterator.return())},{highWaterMark:2})},isFetchSupported="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,isReadableStreamSupported=isFetchSupported&&"function"==typeof ReadableStream,encodeText=isFetchSupported&&("function"==typeof TextEncoder?(encoder=new TextEncoder,str=>encoder.encode(str)):async str=>new Uint8Array(await new Response(str).arrayBuffer()));var encoder;const test=(fn,...args)=>{try{return!!fn(...args)}catch(e){return!1}},supportsRequestStream=isReadableStreamSupported&&test((()=>{let duplexAccessed=!1;const hasContentType=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return duplexAccessed=!0,"half"}}).headers.has("Content-Type");return duplexAccessed&&!hasContentType})),supportsResponseStream=isReadableStreamSupported&&test((()=>utils$4.isReadableStream(new Response("").body))),resolvers={stream:supportsResponseStream&&(res=>res.body)};var res;isFetchSupported&&(res=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((type=>{!resolvers[type]&&(resolvers[type]=utils$4.isFunction(res[type])?res=>res[type]():(_,config)=>{throw new AxiosError(`Response type '${type}' is not supported`,AxiosError.ERR_NOT_SUPPORT,config)})})));const resolveBodyLength=async(headers,body)=>{const length=utils$4.toFiniteNumber(headers.getContentLength());return null==length?(async body=>{if(null==body)return 0;if(utils$4.isBlob(body))return body.size;if(utils$4.isSpecCompliantForm(body)){const _request=new Request(platform.origin,{method:"POST",body:body});return(await _request.arrayBuffer()).byteLength}return utils$4.isArrayBufferView(body)||utils$4.isArrayBuffer(body)?body.byteLength:(utils$4.isURLSearchParams(body)&&(body+=""),utils$4.isString(body)?(await encodeText(body)).byteLength:void 0)})(body):length};var fetchAdapter=isFetchSupported&&(async config=>{let{url:url,method:method,data:data,signal:signal,cancelToken:cancelToken,timeout:timeout,onDownloadProgress:onDownloadProgress,onUploadProgress:onUploadProgress,responseType:responseType,headers:headers,withCredentials:withCredentials="same-origin",fetchOptions:fetchOptions}=resolveConfig(config);responseType=responseType?(responseType+"").toLowerCase():"text";let request,composedSignal=composeSignals$1([signal,cancelToken&&cancelToken.toAbortSignal()],timeout);const unsubscribe=composedSignal&&composedSignal.unsubscribe&&(()=>{composedSignal.unsubscribe()});let requestContentLength;try{if(onUploadProgress&&supportsRequestStream&&"get"!==method&&"head"!==method&&0!==(requestContentLength=await resolveBodyLength(headers,data))){let contentTypeHeader,_request=new Request(url,{method:"POST",body:data,duplex:"half"});if(utils$4.isFormData(data)&&(contentTypeHeader=_request.headers.get("content-type"))&&headers.setContentType(contentTypeHeader),_request.body){const[onProgress,flush]=progressEventDecorator(requestContentLength,progressEventReducer(asyncDecorator(onUploadProgress)));data=trackStream(_request.body,65536,onProgress,flush)}}utils$4.isString(withCredentials)||(withCredentials=withCredentials?"include":"omit");const isCredentialsSupported="credentials"in Request.prototype;request=new Request(url,{...fetchOptions,signal:composedSignal,method:method.toUpperCase(),headers:headers.normalize().toJSON(),body:data,duplex:"half",credentials:isCredentialsSupported?withCredentials:void 0});let response=await fetch(request);const isStreamResponse=supportsResponseStream&&("stream"===responseType||"response"===responseType);if(supportsResponseStream&&(onDownloadProgress||isStreamResponse&&unsubscribe)){const options={};["status","statusText","headers"].forEach((prop=>{options[prop]=response[prop]}));const responseContentLength=utils$4.toFiniteNumber(response.headers.get("content-length")),[onProgress,flush]=onDownloadProgress&&progressEventDecorator(responseContentLength,progressEventReducer(asyncDecorator(onDownloadProgress),!0))||[];response=new Response(trackStream(response.body,65536,onProgress,(()=>{flush&&flush(),unsubscribe&&unsubscribe()})),options)}responseType=responseType||"text";let responseData=await resolvers[utils$4.findKey(resolvers,responseType)||"text"](response,config);return!isStreamResponse&&unsubscribe&&unsubscribe(),await new Promise(((resolve,reject)=>{settle(resolve,reject,{data:responseData,headers:AxiosHeaders$1.from(response.headers),status:response.status,statusText:response.statusText,config:config,request:request})}))}catch(err){if(unsubscribe&&unsubscribe(),err&&"TypeError"===err.name&&/fetch/i.test(err.message))throw Object.assign(new AxiosError("Network Error",AxiosError.ERR_NETWORK,config,request),{cause:err.cause||err});throw AxiosError.from(err,err&&err.code,config,request)}});const knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$4.forEach(knownAdapters,((fn,value)=>{if(fn){try{Object.defineProperty(fn,"name",{value:value})}catch(e){}Object.defineProperty(fn,"adapterName",{value:value})}}));const renderReason=reason=>`- ${reason}`,isResolvedHandle=adapter=>utils$4.isFunction(adapter)||null===adapter||!1===adapter;var adapters_getAdapter=adapters=>{adapters=utils$4.isArray(adapters)?adapters:[adapters];const{length:length}=adapters;let nameOrAdapter,adapter;const rejectedReasons={};for(let i=0;i<length;i++){let id;if(nameOrAdapter=adapters[i],adapter=nameOrAdapter,!isResolvedHandle(nameOrAdapter)&&(adapter=knownAdapters[(id=String(nameOrAdapter)).toLowerCase()],void 0===adapter))throw new AxiosError(`Unknown adapter '${id}'`);if(adapter)break;rejectedReasons[id||"#"+i]=adapter}if(!adapter){const reasons=Object.entries(rejectedReasons).map((([id,state])=>`adapter ${id} `+(!1===state?"is not supported by the environment":"is not available in the build")));throw new AxiosError("There is no suitable adapter to dispatch the request "+(length?reasons.length>1?"since :\n"+reasons.map(renderReason).join("\n"):" "+renderReason(reasons[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return adapter};function throwIfCancellationRequested(config){if(config.cancelToken&&config.cancelToken.throwIfRequested(),config.signal&&config.signal.aborted)throw new CanceledError(null,config)}function dispatchRequest(config){throwIfCancellationRequested(config),config.headers=AxiosHeaders$1.from(config.headers),config.data=transformData.call(config,config.transformRequest),-1!==["post","put","patch"].indexOf(config.method)&&config.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters_getAdapter(config.adapter||defaults$1.adapter)(config).then((function onAdapterResolution(response){return throwIfCancellationRequested(config),response.data=transformData.call(config,config.transformResponse,response),response.headers=AxiosHeaders$1.from(response.headers),response}),(function onAdapterRejection(reason){return isCancel(reason)||(throwIfCancellationRequested(config),reason&&reason.response&&(reason.response.data=transformData.call(config,config.transformResponse,reason.response),reason.response.headers=AxiosHeaders$1.from(reason.response.headers))),Promise.reject(reason)}))}const validators$1={};["object","boolean","number","function","string","symbol"].forEach(((type,i)=>{validators$1[type]=function validator(thing){return typeof thing===type||"a"+(i<1?"n ":" ")+type}}));const deprecatedWarnings={};validators$1.transitional=function transitional(validator,version,message){function formatMessage(opt,desc){return"[Axios v1.7.7] Transitional option '"+opt+"'"+desc+(message?". "+message:"")}return(value,opt,opts)=>{if(!1===validator)throw new AxiosError(formatMessage(opt," has been removed"+(version?" in "+version:"")),AxiosError.ERR_DEPRECATED);return version&&!deprecatedWarnings[opt]&&(deprecatedWarnings[opt]=!0,console.warn(formatMessage(opt," has been deprecated since v"+version+" and will be removed in the near future"))),!validator||validator(value,opt,opts)}};var validator={assertOptions:function assertOptions(options,schema,allowUnknown){if("object"!=typeof options)throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const keys=Object.keys(options);let i=keys.length;for(;i-- >0;){const opt=keys[i],validator=schema[opt];if(validator){const value=options[opt],result=void 0===value||validator(value,opt,options);if(!0!==result)throw new AxiosError("option "+opt+" must be "+result,AxiosError.ERR_BAD_OPTION_VALUE)}else if(!0!==allowUnknown)throw new AxiosError("Unknown option "+opt,AxiosError.ERR_BAD_OPTION)}},validators:validators$1};const validators=validator.validators;class Axios{constructor(instanceConfig){this.defaults=instanceConfig,this.interceptors={request:new InterceptorManager$1,response:new InterceptorManager$1}}async request(configOrUrl,config){try{return await this._request(configOrUrl,config)}catch(err){if(err instanceof Error){let dummy;Error.captureStackTrace?Error.captureStackTrace(dummy={}):dummy=new Error;const stack=dummy.stack?dummy.stack.replace(/^.+\n/,""):"";try{err.stack?stack&&!String(err.stack).endsWith(stack.replace(/^.+\n.+\n/,""))&&(err.stack+="\n"+stack):err.stack=stack}catch(e){}}throw err}}_request(configOrUrl,config){"string"==typeof configOrUrl?(config=config||{}).url=configOrUrl:config=configOrUrl||{},config=mergeConfig(this.defaults,config);const{transitional:transitional,paramsSerializer:paramsSerializer,headers:headers}=config;void 0!==transitional&&validator.assertOptions(transitional,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),null!=paramsSerializer&&(utils$4.isFunction(paramsSerializer)?config.paramsSerializer={serialize:paramsSerializer}:validator.assertOptions(paramsSerializer,{encode:validators.function,serialize:validators.function},!0)),config.method=(config.method||this.defaults.method||"get").toLowerCase();let contextHeaders=headers&&utils$4.merge(headers.common,headers[config.method]);headers&&utils$4.forEach(["delete","get","head","post","put","patch","common"],(method=>{delete headers[method]})),config.headers=AxiosHeaders$1.concat(contextHeaders,headers);const requestInterceptorChain=[];let synchronousRequestInterceptors=!0;this.interceptors.request.forEach((function unshiftRequestInterceptors(interceptor){"function"==typeof interceptor.runWhen&&!1===interceptor.runWhen(config)||(synchronousRequestInterceptors=synchronousRequestInterceptors&&interceptor.synchronous,requestInterceptorChain.unshift(interceptor.fulfilled,interceptor.rejected))}));const responseInterceptorChain=[];let promise;this.interceptors.response.forEach((function pushResponseInterceptors(interceptor){responseInterceptorChain.push(interceptor.fulfilled,interceptor.rejected)}));let len,i=0;if(!synchronousRequestInterceptors){const chain=[dispatchRequest.bind(this),void 0];for(chain.unshift.apply(chain,requestInterceptorChain),chain.push.apply(chain,responseInterceptorChain),len=chain.length,promise=Promise.resolve(config);i<len;)promise=promise.then(chain[i++],chain[i++]);return promise}len=requestInterceptorChain.length;let newConfig=config;for(i=0;i<len;){const onFulfilled=requestInterceptorChain[i++],onRejected=requestInterceptorChain[i++];try{newConfig=onFulfilled(newConfig)}catch(error){onRejected.call(this,error);break}}try{promise=dispatchRequest.call(this,newConfig)}catch(error){return Promise.reject(error)}for(i=0,len=responseInterceptorChain.length;i<len;)promise=promise.then(responseInterceptorChain[i++],responseInterceptorChain[i++]);return promise}getUri(config){return buildURL(buildFullPath((config=mergeConfig(this.defaults,config)).baseURL,config.url),config.params,config.paramsSerializer)}}utils$4.forEach(["delete","get","head","options"],(function forEachMethodNoData(method){Axios.prototype[method]=function(url,config){return this.request(mergeConfig(config||{},{method:method,url:url,data:(config||{}).data}))}})),utils$4.forEach(["post","put","patch"],(function forEachMethodWithData(method){function generateHTTPMethod(isForm){return function httpMethod(url,data,config){return this.request(mergeConfig(config||{},{method:method,headers:isForm?{"Content-Type":"multipart/form-data"}:{},url:url,data:data}))}}Axios.prototype[method]=generateHTTPMethod(),Axios.prototype[method+"Form"]=generateHTTPMethod(!0)}));var Axios$1=Axios;class CancelToken{constructor(executor){if("function"!=typeof executor)throw new TypeError("executor must be a function.");let resolvePromise;this.promise=new Promise((function promiseExecutor(resolve){resolvePromise=resolve}));const token=this;this.promise.then((cancel=>{if(!token._listeners)return;let i=token._listeners.length;for(;i-- >0;)token._listeners[i](cancel);token._listeners=null})),this.promise.then=onfulfilled=>{let _resolve;const promise=new Promise((resolve=>{token.subscribe(resolve),_resolve=resolve})).then(onfulfilled);return promise.cancel=function reject(){token.unsubscribe(_resolve)},promise},executor((function cancel(message,config,request){token.reason||(token.reason=new CanceledError(message,config,request),resolvePromise(token.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(listener){this.reason?listener(this.reason):this._listeners?this._listeners.push(listener):this._listeners=[listener]}unsubscribe(listener){if(!this._listeners)return;const index=this._listeners.indexOf(listener);-1!==index&&this._listeners.splice(index,1)}toAbortSignal(){const controller=new AbortController,abort=err=>{controller.abort(err)};return this.subscribe(abort),controller.signal.unsubscribe=()=>this.unsubscribe(abort),controller.signal}static source(){let cancel;return{token:new CancelToken((function executor(c){cancel=c})),cancel:cancel}}}var CancelToken$1=CancelToken;const HttpStatusCode={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode).forEach((([key,value])=>{HttpStatusCode[value]=key}));var HttpStatusCode$1=HttpStatusCode;const axios=function createInstance(defaultConfig){const context=new Axios$1(defaultConfig),instance=bind(Axios$1.prototype.request,context);return utils$4.extend(instance,Axios$1.prototype,context,{allOwnKeys:!0}),utils$4.extend(instance,context,null,{allOwnKeys:!0}),instance.create=function create(instanceConfig){return createInstance(mergeConfig(defaultConfig,instanceConfig))},instance}(defaults$1);axios.Axios=Axios$1,axios.CanceledError=CanceledError,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel,axios.VERSION="1.7.7",axios.toFormData=toFormData,axios.AxiosError=AxiosError,axios.Cancel=axios.CanceledError,axios.all=function all(promises){return Promise.all(promises)},axios.spread=function spread(callback){return function wrap(arr){return callback.apply(null,arr)}},axios.isAxiosError=function isAxiosError(payload){return utils$4.isObject(payload)&&!0===payload.isAxiosError},axios.mergeConfig=mergeConfig,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=thing=>formDataToJSON(utils$4.isHTMLForm(thing)?new FormData(thing):thing),axios.getAdapter=adapters_getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;var axios$1=axios;const baseDir$2=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class Environment{constructor(config){this.config=config,this.certificate="",this.cert_key="",this.agent={},this.isLoaded=!1}getIsLoaded(){return this.isLoaded}getConfig(){return this.config}getCertKey(){return this.cert_key}getCert(){return this.certificate}getHttpAgent(){return this.agent}checkRequiredSettings(){try{const requiredConfigFields={dfe:["pathCertificado","senhaCertificado"],nfe:["ambiente"]};let missingConfigurations={dfe:[],nfe:[]},errors=[],tableData=[];if(Object.keys(requiredConfigFields).forEach((categoryKey=>{const category=this.config[categoryKey];if(category){const fields=requiredConfigFields[categoryKey];if(fields){fields.forEach((fieldKey=>{missingConfigurations[categoryKey]||(missingConfigurations[categoryKey]=[]),void 0===category[fieldKey]&&(missingConfigurations[categoryKey]||(missingConfigurations[categoryKey]=[]),missingConfigurations[categoryKey].push(fieldKey))}));const missingConfig=missingConfigurations[categoryKey];missingConfig&&missingConfig.length>0&&(errors.push(`Configurações faltando em '${categoryKey}': [${missingConfig.join(", ")}].`),tableData.push({Categoria:categoryKey,Faltando:missingConfig.join(", ")}))}}else errors.push(`Chave principal faltando: '${categoryKey}'.`),tableData.push({Categoria:categoryKey,Faltando:"Chave principal faltando"})})),errors.length>0)throw console.log("Configurações necessárias faltando:"),console.table(tableData),new Error(`Erro ao validar configurações: ${errors.join(" ")}`);return{missingConfigurations:missingConfigurations,message:"Todas as configurações necessárias estão presentes.",success:!0}}catch(error){throw new Error(`Erro ao validar configurações: ${error.message}`)}}loadCertificateWithPEM(){return new Promise(((resolve,reject)=>{try{const pfxPath=this.config.dfe.pathCertificado,pfxPassword=this.config.dfe.senhaCertificado,pfxFile=fs__default.default.readFileSync(pfxPath),certsDir=path__default.default.resolve(baseDir$2,"certs"),caCerts=fs__default.default.readdirSync(certsDir).map((filename=>{const tmp=`${certsDir}/${filename}`;return fs__default.default.readFileSync(tmp)}));pem__default.default.readPkcs12(pfxFile,{p12Password:pfxPassword},(async(error,result)=>{if(error)return error.message.toLowerCase().includes("mac verify error")?reject(new Error("Erro ao ler o certificado: Senha incorreta.")):reject(new Error(`Erro ao ler o certificado: ${error.message}`));const key=result.key;this.cert_key=key;const cert=result.cert;this.certificate=cert;const certForge=forge.pki.certificateFromPem(cert),now=new Date;if(now<certForge.validity.notBefore||now>certForge.validity.notAfter)return reject(new Error("Erro ao carregar o certificado: O certificado fornecido expirou ou ainda não é válido."));this.agent=new https__default.default.Agent({key:key,cert:cert,ca:caCerts}),resolve({success:!0,message:"Certificado Carregado com Sucesso."})}))}catch(error){reject(new Error(error.message))}}))}loadCertificateWithNodeForge(){return new Promise(((resolve,reject)=>{try{const pfxPath=this.config.dfe.pathCertificado,pfxPassword=this.config.dfe.senhaCertificado,pfxFile=fs__default.default.readFileSync(pfxPath),p12Asn1=forge.asn1.fromDer(pfxFile.toString("binary")),p12=forge.pkcs12.pkcs12FromAsn1(p12Asn1,pfxPassword),keyBags=p12.getBags({bagType:forge.pki.oids.pkcs8ShroudedKeyBag}),certBags=p12.getBags({bagType:forge.pki.oids.certBag}),key=keyBags[forge.pki.oids.pkcs8ShroudedKeyBag]?.[0]?.key;if(!key)return reject(new Error("Erro ao carregar chave privada do certificado."));const keyPem=forge.pki.privateKeyToPem(key);this.cert_key=keyPem;const cert=certBags[forge.pki.oids.certBag]?.[0]?.cert;if(!cert)return reject(new Error("Erro ao carregar certificado."));const certPem=forge.pki.certificateToPem(cert);this.certificate=certPem;const certForge=forge.pki.certificateFromPem(forge.pki.certificateToPem(cert)),now=new Date;if(now<certForge.validity.notBefore||now>certForge.validity.notAfter)return reject(new Error("Erro ao carregar o certificado: O certificado fornecido expirou ou ainda não é válido."));const certsDir=path__default.default.resolve(baseDir$2,"certs"),caCerts=fs__default.default.readdirSync(certsDir).map((filename=>{const tmp=`${certsDir}/${filename}`;return fs__default.default.readFileSync(tmp)}));this.agent=new https__default.default.Agent({key:keyPem,cert:certPem,ca:caCerts}),resolve({success:!0,message:"Certificado Carregado com Sucesso."})}catch(error){reject(new Error(error.message))}}))}configAxios(){try{const axiosConfig={headers:{"Content-Type":"text/xml; charset=utf-8"},httpsAgent:this.agent,timeout:this.config.lib?.connection?.timeout||6e4};return axios$1.create(axiosConfig)}catch(error){throw new Error(error.message)}}async loadEnvironment(){this.checkRequiredSettings(),this.config.lib?.useOpenSSL||void 0===this.config.lib?.useOpenSSL?await this.loadCertificateWithPEM():await this.loadCertificateWithNodeForge();const axios=this.configAxios();return this.isLoaded=!0,{axios:axios}}}var hasRequiredXpath,lib$2={},signedXml={},xpath={};function requireXpath(){return hasRequiredXpath||(hasRequiredXpath=1,function(exports){!function(exports){var forEach=function(f,xs){for(var i=0;i<xs.length;i+=1)f(xs[i],i,xs)},reduce=function(f,seed,xs){var acc=seed;return forEach((function(x,i){acc=f(acc,x,i)}),xs),acc},map=function(f,xs){var mapped=new Array(xs.length);return forEach((function(x,i){mapped[i]=f(x)}),xs),mapped};function toString(x){return x.toString()}var join=function(s,xs){return xs.join(s)},wrap=function(pref,suf,str){return pref+str+suf},prototypeConcat=Array.prototype.concat;function assign(target,varArgs){for(var to=Object(target),index=1;index<arguments.length;index++){var nextSource=arguments[index];if(null!=nextSource)for(var nextKey in nextSource)Object.prototype.hasOwnProperty.call(nextSource,nextKey)&&(to[nextKey]=nextSource[nextKey])}return to}var NodeTypes_ELEMENT_NODE=1,NodeTypes_ATTRIBUTE_NODE=2,NodeTypes_TEXT_NODE=3,NodeTypes_CDATA_SECTION_NODE=4,NodeTypes_PROCESSING_INSTRUCTION_NODE=7,NodeTypes_COMMENT_NODE=8,NodeTypes_DOCUMENT_NODE=9,NodeTypes_DOCUMENT_TYPE_NODE=10,NodeTypes_DOCUMENT_FRAGMENT_NODE=11;function XPathParser(){this.init()}function XPath(e){this.expression=e}function setIfUnset(obj,prop,value){prop in obj||(obj[prop]=value)}function Expression(){}function UnaryOperation(rhs){arguments.length>0&&this.init(rhs)}function UnaryMinusOperation(rhs){arguments.length>0&&this.init(rhs)}function BinaryOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function OrOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function AndOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function EqualsOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function NotEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function LessThanOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function GreaterThanOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function LessThanOrEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function GreaterThanOrEqualOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function PlusOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function MinusOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function MultiplyOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function DivOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function ModOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function BarOperation(lhs,rhs){arguments.length>0&&this.init(lhs,rhs)}function PathExpr(filter,filterPreds,locpath){arguments.length>0&&this.init(filter,filterPreds,locpath)}function findRoot(node){for(;node&&node.parentNode;)node=node.parentNode;return node}function applyStepWithPredicates(step,xpc,node){return PathExpr.applyPredicates(step.predicates,xpc,PathExpr.applyStep(step,xpc,node))}function applyStepToNodes(context,nodes,step){return function flatten(arr){for(var result=[],start=0;start<arr.length;start+=32767){var chunk=arr.slice(start,start+32767);result=prototypeConcat.apply(result,chunk)}return result}(map(applyStepWithPredicates.bind(null,step,context),nodes))}function LocationPath(abs,steps){arguments.length>0&&this.init(abs,steps)}function Step(axis,nodetest,preds){arguments.length>0&&this.init(axis,nodetest,preds)}function NodeTest(type,value){arguments.length>0&&this.init(type,value)}function VariableReference(v){arguments.length>0&&this.init(v)}function FunctionCall(fn,args){arguments.length>0&&this.init(fn,args)}XPathParser.prototype=new Object,XPathParser.prototype.constructor=XPathParser,XPathParser.superclass=Object.prototype,XPathParser.prototype.init=function(){this.reduceActions=[],this.reduceActions[3]=function(rhs){return new OrOperation(rhs[0],rhs[2])},this.reduceActions[5]=function(rhs){return new AndOperation(rhs[0],rhs[2])},this.reduceActions[7]=function(rhs){return new EqualsOperation(rhs[0],rhs[2])},this.reduceActions[8]=function(rhs){return new NotEqualOperation(rhs[0],rhs[2])},this.reduceActions[10]=function(rhs){return new LessThanOperation(rhs[0],rhs[2])},this.reduceActions[11]=function(rhs){return new GreaterThanOperation(rhs[0],rhs[2])},this.reduceActions[12]=function(rhs){return new LessThanOrEqualOperation(rhs[0],rhs[2])},this.reduceActions[13]=function(rhs){return new GreaterThanOrEqualOperation(rhs[0],rhs[2])},this.reduceActions[15]=function(rhs){return new PlusOperation(rhs[0],rhs[2])},this.reduceActions[16]=function(rhs){return new MinusOperation(rhs[0],rhs[2])},this.reduceActions[18]=function(rhs){return new MultiplyOperation(rhs[0],rhs[2])},this.reduceActions[19]=function(rhs){return new DivOperation(rhs[0],rhs[2])},this.reduceActions[20]=function(rhs){return new ModOperation(rhs[0],rhs[2])},this.reduceActions[22]=function(rhs){return new UnaryMinusOperation(rhs[1])},this.reduceActions[24]=function(rhs){return new BarOperation(rhs[0],rhs[2])},this.reduceActions[25]=function(rhs){return new PathExpr(void 0,void 0,rhs[0])},this.reduceActions[27]=function(rhs){return rhs[0].locationPath=rhs[2],rhs[0]},this.reduceActions[28]=function(rhs){return rhs[0].locationPath=rhs[2],rhs[0].locationPath.steps.unshift(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[0]},this.reduceActions[29]=function(rhs){return new PathExpr(rhs[0],[],void 0)},this.reduceActions[30]=function(rhs){return Utilities.instance_of(rhs[0],PathExpr)?(null==rhs[0].filterPredicates&&(rhs[0].filterPredicates=[]),rhs[0].filterPredicates.push(rhs[1]),rhs[0]):new PathExpr(rhs[0],[rhs[1]],void 0)},this.reduceActions[32]=function(rhs){return rhs[1]},this.reduceActions[33]=function(rhs){return new XString(rhs[0])},this.reduceActions[34]=function(rhs){return new XNumber(rhs[0])},this.reduceActions[36]=function(rhs){return new FunctionCall(rhs[0],[])},this.reduceActions[37]=function(rhs){return new FunctionCall(rhs[0],rhs[2])},this.reduceActions[38]=function(rhs){return[rhs[0]]},this.reduceActions[39]=function(rhs){return rhs[2].unshift(rhs[0]),rhs[2]},this.reduceActions[43]=function(rhs){return new LocationPath(!0,[])},this.reduceActions[44]=function(rhs){return rhs[1].absolute=!0,rhs[1]},this.reduceActions[46]=function(rhs){return new LocationPath(!1,[rhs[0]])},this.reduceActions[47]=function(rhs){return rhs[0].steps.push(rhs[2]),rhs[0]},this.reduceActions[49]=function(rhs){return new Step(rhs[0],rhs[1],[])},this.reduceActions[50]=function(rhs){return new Step(Step.CHILD,rhs[0],[])},this.reduceActions[51]=function(rhs){return new Step(rhs[0],rhs[1],rhs[2])},this.reduceActions[52]=function(rhs){return new Step(Step.CHILD,rhs[0],rhs[1])},this.reduceActions[54]=function(rhs){return[rhs[0]]},this.reduceActions[55]=function(rhs){return rhs[1].unshift(rhs[0]),rhs[1]},this.reduceActions[56]=function(rhs){return"ancestor"==rhs[0]?Step.ANCESTOR:"ancestor-or-self"==rhs[0]?Step.ANCESTORORSELF:"attribute"==rhs[0]?Step.ATTRIBUTE:"child"==rhs[0]?Step.CHILD:"descendant"==rhs[0]?Step.DESCENDANT:"descendant-or-self"==rhs[0]?Step.DESCENDANTORSELF:"following"==rhs[0]?Step.FOLLOWING:"following-sibling"==rhs[0]?Step.FOLLOWINGSIBLING:"namespace"==rhs[0]?Step.NAMESPACE:"parent"==rhs[0]?Step.PARENT:"preceding"==rhs[0]?Step.PRECEDING:"preceding-sibling"==rhs[0]?Step.PRECEDINGSIBLING:"self"==rhs[0]?Step.SELF:-1},this.reduceActions[57]=function(rhs){return Step.ATTRIBUTE},this.reduceActions[59]=function(rhs){return"comment"==rhs[0]?NodeTest.commentTest:"text"==rhs[0]?NodeTest.textTest:"processing-instruction"==rhs[0]?NodeTest.anyPiTest:"node"==rhs[0]?NodeTest.nodeTest:new NodeTest(-1,void 0)},this.reduceActions[60]=function(rhs){return new NodeTest.PITest(rhs[2])},this.reduceActions[61]=function(rhs){return rhs[1]},this.reduceActions[63]=function(rhs){return rhs[1].absolute=!0,rhs[1].steps.unshift(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[1]},this.reduceActions[64]=function(rhs){return rhs[0].steps.push(new Step(Step.DESCENDANTORSELF,NodeTest.nodeTest,[])),rhs[0].steps.push(rhs[2]),rhs[0]},this.reduceActions[65]=function(rhs){return new Step(Step.SELF,NodeTest.nodeTest,[])},this.reduceActions[66]=function(rhs){return new Step(Step.PARENT,NodeTest.nodeTest,[])},this.reduceActions[67]=function(rhs){return new VariableReference(rhs[1])},this.reduceActions[68]=function(rhs){return NodeTest.nameTestAny},this.reduceActions[69]=function(rhs){return new NodeTest.NameTestPrefixAny(rhs[0].split(":")[0])},this.reduceActions[70]=function(rhs){return new NodeTest.NameTestQName(rhs[0])}},XPathParser.actionTable=[" s s sssssssss s ss s ss"," s ","r rrrrrrrrr rrrrrrr rr r "," rrrrr "," s s sssssssss s ss s ss","rs rrrrrrrr s sssssrrrrrr rrs rs "," s s sssssssss s ss s ss"," s "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s "," s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr r ","a ","r s rr r ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrs rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r srrrrrrrr rrrrrrs rr sr ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r "," sssss ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrr rrrrr rr r "," s "," s "," rrrrr "," s s sssssssss s sss s ss","r srrrrrrrr rrrrrrs rr r "," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss ss s ss"," s s sssssssss s ss s ss"," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr rr "," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," rr "," s "," rs ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrr rr r "," r "," s ","r srrrrrrrr rrrrrrs rr r ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s s sssssssss s ss s ss","r rrrrrrrrr rrrrrrr rr rr "," r "],XPathParser.actionTableNumber=[" 1 0 /.-,+*)(' & %$ # \"!"," J ","a aaaaaaaaa aaaaaaa aa a "," YYYYY "," 1 0 /.-,+*)(' & %$ # \"!","K1 KKKKKKKK . +*)('KKKKKK KK# K\" "," 1 0 /.-,+*)(' & %$ # \"!"," N "," O ","e eeeeeeeee eeeeeee ee ee ","f fffffffff fffffff ff ff ","d ddddddddd ddddddd dd dd ","B BBBBBBBBB BBBBBBB BB BB ","A AAAAAAAAA AAAAAAA AA AA "," P "," Q "," 1 . +*)(' # \" ","b bbbbbbbbb bbbbbbb bb b "," ","! S !! ! ",'" T" "" " ',"$ V $$ U $$ $ ","& &ZY&& &XW && & ",") ))))) )))\\[ )) ) ",". ....._^] ..... .. . ","1 11111111 11111 11 1 ","5 55555555 55555` 55 5 ","7 77777777 777777 77 7 ","9 99999999 999999 99 9 ",": c:::::::: ::::::b :: a: ","I fIIIIIIII IIIIIIe II I ","= ========= ======= == == ","? ????????? ??????? ?? ?? ","C CCCCCCCCC CCCCCCC CC CC ","J JJJJJJJJ JJJJJJ JJ J ","M MMMMMMMM MMMMMM MM M ","N NNNNNNNNN NNNNNNN NN N ","P PPPPPPPPP PPPPPPP PP P "," +*)(' ","R RRRRRRRRR RRRRRRR RR aR ","U UUUUUUUUU UUUUUUU UU U ","Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ ","c ccccccccc ccccccc cc cc "," j ","L fLLLLLLLL LLLLLLe LL L ","6 66666666 66666 66 6 "," k "," l "," XXXXX "," 1 0 /.-,+*)(' & %$m # \"!","_ f________ ______e __ _ "," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 0 /.-,+*)(' %$ # \"!"," 1 0 /.-,+*)(' & %$ # \"!"," 1 . +*)(' # \" "," 1 . +*)(' # \" ","> >>>>>>>>> >>>>>>> >> >> "," 1 . +*)(' # \" "," 1 . +*)(' # \" ","Q QQQQQQQQQ QQQQQQQ QQ aQ ","V VVVVVVVVV VVVVVVV VV aV ","T TTTTTTTTT TTTTTTT TT T ","@ @@@@@@@@@ @@@@@@@ @@ @@ "," ‡ ","[ [[[[[[[[[ [[[[[[[ [[ [[ ","D DDDDDDDDD DDDDDDD DD DD "," HH "," ˆ "," F‰ ","# T# ## # ","% V %% U %% % ","' 'ZY'' 'XW '' ' ","( (ZY(( (XW (( ( ","+ +++++ +++\\[ ++ + ","* ***** ***\\[ ** * ","- ----- ---\\[ -- - ",", ,,,,, ,,,\\[ ,, , ","0 00000_^] 00000 00 0 ","/ /////_^] ///// // / ","2 22222222 22222 22 2 ","3 33333333 33333 33 3 ","4 44444444 44444 44 4 ","8 88888888 888888 88 8 "," ^ "," Š ","; f;;;;;;;; ;;;;;;e ;; ; ","< f<<<<<<<< <<<<<<e << < ","O OOOOOOOOO OOOOOOO OO O ","` ````````` ``````` `` ` ","S SSSSSSSSS SSSSSSS SS S ","W WWWWWWWWW WWWWWWW WW W ","\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\ \\\\ ","E EEEEEEEEE EEEEEEE EE EE "," 1 0 /.-,+*)(' & %$ # \"!","] ]]]]]]]]] ]]]]]]] ]] ]] "," G "],XPathParser.gotoTable=["3456789:;<=>?@ AB CDEFGH IJ "," "," "," ","L456789:;<=>?@ AB CDEFGH IJ "," M EFGH IJ "," N;<=>?@ AB CDEFGH IJ "," "," "," "," "," "," "," "," "," "," S EFGH IJ "," "," "," "," "," "," "," "," "," "," "," "," "," e "," "," "," "," "," "," "," "," "," h J "," i j "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABpqCDEFGH IJ "," "," r6789:;<=>?@ AB CDEFGH IJ "," s789:;<=>?@ AB CDEFGH IJ "," t89:;<=>?@ AB CDEFGH IJ "," u89:;<=>?@ AB CDEFGH IJ "," v9:;<=>?@ AB CDEFGH IJ "," w9:;<=>?@ AB CDEFGH IJ "," x9:;<=>?@ AB CDEFGH IJ "," y9:;<=>?@ AB CDEFGH IJ "," z:;<=>?@ AB CDEFGH IJ "," {:;<=>?@ AB CDEFGH IJ "," |;<=>?@ AB CDEFGH IJ "," };<=>?@ AB CDEFGH IJ "," ~;<=>?@ AB CDEFGH IJ "," =>?@ AB CDEFGH IJ ","€456789:;<=>?@ AB CDEFGH IJ"," ‚ EFGH IJ "," ƒ EFGH IJ "," "," „ GH IJ "," … GH IJ "," i † "," i ‡ "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABŒqCDEFGH IJ "," "," "],XPathParser.productions=[[1,1,2],[2,1,3],[3,1,4],[3,3,3,-9,4],[4,1,5],[4,3,4,-8,5],[5,1,6],[5,3,5,-22,6],[5,3,5,-5,6],[6,1,7],[6,3,6,-23,7],[6,3,6,-24,7],[6,3,6,-6,7],[6,3,6,-7,7],[7,1,8],[7,3,7,-25,8],[7,3,7,-26,8],[8,1,9],[8,3,8,-12,9],[8,3,8,-11,9],[8,3,8,-10,9],[9,1,10],[9,2,-26,9],[10,1,11],[10,3,10,-27,11],[11,1,12],[11,1,13],[11,3,13,-28,14],[11,3,13,-4,14],[13,1,15],[13,2,13,16],[15,1,17],[15,3,-29,2,-30],[15,1,-15],[15,1,-16],[15,1,18],[18,3,-13,-29,-30],[18,4,-13,-29,19,-30],[19,1,20],[19,3,20,-31,19],[20,1,2],[12,1,14],[12,1,21],[21,1,-28],[21,2,-28,14],[21,1,22],[14,1,23],[14,3,14,-28,23],[14,1,24],[23,2,25,26],[23,1,26],[23,3,25,26,27],[23,2,26,27],[23,1,28],[27,1,16],[27,2,16,27],[25,2,-14,-3],[25,1,-32],[26,1,29],[26,3,-20,-29,-30],[26,4,-21,-29,-15,-30],[16,3,-33,30,-34],[30,1,2],[22,2,-4,14],[24,3,14,-4,23],[28,1,-35],[28,1,-2],[17,2,-36,-18],[29,1,-17],[29,1,-19],[29,1,-18]],XPathParser.DOUBLEDOT=2,XPathParser.DOUBLECOLON=3,XPathParser.DOUBLESLASH=4,XPathParser.NOTEQUAL=5,XPathParser.LESSTHANOREQUAL=6,XPathParser.GREATERTHANOREQUAL=7,XPathParser.AND=8,XPathParser.OR=9,XPathParser.MOD=10,XPathParser.DIV=11,XPathParser.MULTIPLYOPERATOR=12,XPathParser.FUNCTIONNAME=13,XPathParser.AXISNAME=14,XPathParser.LITERAL=15,XPathParser.NUMBER=16,XPathParser.ASTERISKNAMETEST=17,XPathParser.QNAME=18,XPathParser.NCNAMECOLONASTERISK=19,XPathParser.NODETYPE=20,XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL=21,XPathParser.EQUALS=22,XPathParser.LESSTHAN=23,XPathParser.GREATERTHAN=24,XPathParser.PLUS=25,XPathParser.MINUS=26,XPathParser.BAR=27,XPathParser.SLASH=28,XPathParser.LEFTPARENTHESIS=29,XPathParser.RIGHTPARENTHESIS=30,XPathParser.COMMA=31,XPathParser.AT=32,XPathParser.LEFTBRACKET=33,XPathParser.RIGHTBRACKET=34,XPathParser.DOT=35,XPathParser.DOLLAR=36,XPathParser.prototype.tokenize=function(s1){for(var types=[],values=[],s=s1+"\0",pos=0,c=s.charAt(pos++);;){for(;" "==c||"\t"==c||"\r"==c||"\n"==c;)c=s.charAt(pos++);if("\0"==c||pos>=s.length)break;if("("!=c)if(")"!=c)if("["!=c)if("]"!=c)if("@"!=c)if(","!=c)if("|"!=c)if("+"!=c)if("-"!=c)if("="!=c)if("$"!=c)if("."!=c)if("'"!=c&&'"'!=c)if(c>="0"&&c<="9"){number=c;for(c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);if("."==c&&s.charAt(pos)>="0"&&s.charAt(pos)<="9")for(number+=c,number+=s.charAt(pos++),c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);types.push(XPathParser.NUMBER),values.push(number)}else if("*"!=c)if(":"!=c||":"!=s.charAt(pos))if("/"!=c)if("!"!=c||"="!=s.charAt(pos))if("<"!=c)if(">"!=c){if("_"!=c&&!Utilities.isLetter(c.charCodeAt(0)))throw new Error("Unexpected character "+c);var name=c;for(c=s.charAt(pos++);Utilities.isNCNameChar(c.charCodeAt(0));)name+=c,c=s.charAt(pos++);if(types.length>0&&(last=types[types.length-1])!=XPathParser.AT&&last!=XPathParser.DOUBLECOLON&&last!=XPathParser.LEFTPARENTHESIS&&last!=XPathParser.LEFTBRACKET&&last!=XPathParser.AND&&last!=XPathParser.OR&&last!=XPathParser.MOD&&last!=XPathParser.DIV&&last!=XPathParser.MULTIPLYOPERATOR&&last!=XPathParser.SLASH&&last!=XPathParser.DOUBLESLASH&&last!=XPathParser.BAR&&last!=XPathParser.PLUS&&last!=XPathParser.MINUS&&last!=XPathParser.EQUALS&&last!=XPathParser.NOTEQUAL&&last!=XPathParser.LESSTHAN&&last!=XPathParser.LESSTHANOREQUAL&&last!=XPathParser.GREATERTHAN&&last!=XPathParser.GREATERTHANOREQUAL){if("and"==name){types.push(XPathParser.AND),values.push(name);continue}if("or"==name){types.push(XPathParser.OR),values.push(name);continue}if("mod"==name){types.push(XPathParser.MOD),values.push(name);continue}if("div"==name){types.push(XPathParser.DIV),values.push(name);continue}}if(":"==c){if("*"==s.charAt(pos)){types.push(XPathParser.NCNAMECOLONASTERISK),values.push(name+":*"),pos++,c=s.charAt(pos++);continue}if("_"==s.charAt(pos)||Utilities.isLetter(s.charCodeAt(pos))){for(name+=":",c=s.charAt(pos++);Utilities.isNCNameChar(c.charCodeAt(0));)name+=c,c=s.charAt(pos++);if("("==c){types.push(XPathParser.FUNCTIONNAME),values.push(name);continue}types.push(XPathParser.QNAME),values.push(name);continue}if(":"==s.charAt(pos)){types.push(XPathParser.AXISNAME),values.push(name);continue}}if("("==c){if("comment"==name||"text"==name||"node"==name){types.push(XPathParser.NODETYPE),values.push(name);continue}if("processing-instruction"==name){")"==s.charAt(pos)?types.push(XPathParser.NODETYPE):types.push(XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL),values.push(name);continue}types.push(XPathParser.FUNCTIONNAME),values.push(name);continue}types.push(XPathParser.QNAME),values.push(name)}else{if("="==s.charAt(pos)){types.push(XPathParser.GREATERTHANOREQUAL),values.push(">="),pos++,c=s.charAt(pos++);continue}types.push(XPathParser.GREATERTHAN),values.push(">"),c=s.charAt(pos++)}else{if("="==s.charAt(pos)){types.push(XPathParser.LESSTHANOREQUAL),values.push("<="),pos++,c=s.charAt(pos++);continue}types.push(XPathParser.LESSTHAN),values.push("<"),c=s.charAt(pos++)}else types.push(XPathParser.NOTEQUAL),values.push("!="),pos++,c=s.charAt(pos++);else{if("/"==(c=s.charAt(pos++))){types.push(XPathParser.DOUBLESLASH),values.push("//"),c=s.charAt(pos++);continue}types.push(XPathParser.SLASH),values.push("/")}else types.push(XPathParser.DOUBLECOLON),values.push("::"),pos++,c=s.charAt(pos++);else{var last;if(types.length>0&&(last=types[types.length-1])!=XPathParser.AT&&last!=XPathParser.DOUBLECOLON&&last!=XPathParser.LEFTPARENTHESIS&&last!=XPathParser.LEFTBRACKET&&last!=XPathParser.AND&&last!=XPathParser.OR&&last!=XPathParser.MOD&&last!=XPathParser.DIV&&last!=XPathParser.MULTIPLYOPERATOR&&last!=XPathParser.SLASH&&last!=XPathParser.DOUBLESLASH&&last!=XPathParser.BAR&&last!=XPathParser.PLUS&&last!=XPathParser.MINUS&&last!=XPathParser.EQUALS&&last!=XPathParser.NOTEQUAL&&last!=XPathParser.LESSTHAN&&last!=XPathParser.LESSTHANOREQUAL&&last!=XPathParser.GREATERTHAN&&last!=XPathParser.GREATERTHANOREQUAL){types.push(XPathParser.MULTIPLYOPERATOR),values.push(c),c=s.charAt(pos++);continue}types.push(XPathParser.ASTERISKNAMETEST),values.push(c),c=s.charAt(pos++)}else{for(var delimiter=c,literal="";pos<s.length&&(c=s.charAt(pos))!==delimiter;)literal+=c,pos+=1;if(c!==delimiter)throw XPathException.fromMessage("Unterminated string literal: "+delimiter+literal);pos+=1,types.push(XPathParser.LITERAL),values.push(literal),c=s.charAt(pos++)}else{if("."==(c=s.charAt(pos++))){types.push(XPathParser.DOUBLEDOT),values.push(".."),c=s.charAt(pos++);continue}if(c>="0"&&c<="9"){var number="."+c;for(c=s.charAt(pos++);c>="0"&&c<="9";)number+=c,c=s.charAt(pos++);types.push(XPathParser.NUMBER),values.push(number);continue}types.push(XPathParser.DOT),values.push(".")}else types.push(XPathParser.DOLLAR),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.EQUALS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.MINUS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.PLUS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.BAR),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.COMMA),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.AT),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.RIGHTBRACKET),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.LEFTBRACKET),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.RIGHTPARENTHESIS),values.push(c),c=s.charAt(pos++);else types.push(XPathParser.LEFTPARENTHESIS),values.push(c),c=s.charAt(pos++)}return types.push(1),values.push("[EOF]"),[types,values]},XPathParser.SHIFT="s",XPathParser.REDUCE="r",XPathParser.ACCEPT="a",XPathParser.prototype.parse=function(s){var types,values,res=this.tokenize(s);if(null!=res){types=res[0],values=res[1];var a,t,tokenPos=0,state=[],tokenType=[],tokenValue=[];for(state.push(0),tokenType.push(1),tokenValue.push("_S"),a=types[tokenPos],t=values[tokenPos++];;)switch(s=state[state.length-1],XPathParser.actionTable[s].charAt(a-1)){case XPathParser.SHIFT:tokenType.push(-a),tokenValue.push(t),state.push(XPathParser.actionTableNumber[s].charCodeAt(a-1)-32),a=types[tokenPos],t=values[tokenPos++];break;case XPathParser.REDUCE:for(var num=XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][1],rhs=[],i=0;i<num;i++)tokenType.pop(),rhs.unshift(tokenValue.pop()),state.pop();var s_=state[state.length-1];tokenType.push(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][0]),null==this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32]?tokenValue.push(rhs[0]):tokenValue.push(this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32](rhs)),state.push(XPathParser.gotoTable[s_].charCodeAt(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a-1)-32][0]-2)-33);break;case XPathParser.ACCEPT:return new XPath(tokenValue.pop());default:throw new Error("XPath parse error")}}},XPath.prototype=new Object,XPath.prototype.constructor=XPath,XPath.superclass=Object.prototype,XPath.prototype.toString=function(){return this.expression.toString()},XPath.prototype.evaluate=function(c){return c.contextNode=c.expressionContextNode,c.contextSize=1,c.contextPosition=1,c.isHtml&&(setIfUnset(c,"caseInsensitive",!0),setIfUnset(c,"allowAnyNamespaceForNoPrefix",!0)),setIfUnset(c,"caseInsensitive",!1),this.expression.evaluate(c)},XPath.XML_NAMESPACE_URI="http://www.w3.org/XML/1998/namespace",XPath.XMLNS_NAMESPACE_URI="http://www.w3.org/2000/xmlns/",Expression.prototype=new Object,Expression.prototype.constructor=Expression,Expression.superclass=Object.prototype,Expression.prototype.init=function(){},Expression.prototype.toString=function(){return"<Expression>"},Expression.prototype.evaluate=function(c){throw new Error("Could not evaluate expression.")},UnaryOperation.prototype=new Expression,UnaryOperation.prototype.constructor=UnaryOperation,UnaryOperation.superclass=Expression.prototype,UnaryOperation.prototype.init=function(rhs){this.rhs=rhs},UnaryMinusOperation.prototype=new UnaryOperation,UnaryMinusOperation.prototype.constructor=UnaryMinusOperation,UnaryMinusOperation.superclass=UnaryOperation.prototype,UnaryMinusOperation.prototype.init=function(rhs){UnaryMinusOperation.superclass.init.call(this,rhs)},UnaryMinusOperation.prototype.evaluate=function(c){return this.rhs.evaluate(c).number().negate()},UnaryMinusOperation.prototype.toString=function(){return"-"+this.rhs.toString()},BinaryOperation.prototype=new Expression,BinaryOperation.prototype.constructor=BinaryOperation,BinaryOperation.superclass=Expression.prototype,BinaryOperation.prototype.init=function(lhs,rhs){this.lhs=lhs,this.rhs=rhs},OrOperation.prototype=new BinaryOperation,OrOperation.prototype.constructor=OrOperation,OrOperation.superclass=BinaryOperation.prototype,OrOperation.prototype.init=function(lhs,rhs){OrOperation.superclass.init.call(this,lhs,rhs)},OrOperation.prototype.toString=function(){return"("+this.lhs.toString()+" or "+this.rhs.toString()+")"},OrOperation.prototype.evaluate=function(c){var b=this.lhs.evaluate(c).bool();return b.booleanValue()?b:this.rhs.evaluate(c).bool()},AndOperation.prototype=new BinaryOperation,AndOperation.prototype.constructor=AndOperation,AndOperation.superclass=BinaryOperation.prototype,AndOperation.prototype.init=function(lhs,rhs){AndOperation.superclass.init.call(this,lhs,rhs)},AndOperation.prototype.toString=function(){return"("+this.lhs.toString()+" and "+this.rhs.toString()+")"},AndOperation.prototype.evaluate=function(c){var b=this.lhs.evaluate(c).bool();return b.booleanValue()?this.rhs.evaluate(c).bool():b},EqualsOperation.prototype=new BinaryOperation,EqualsOperation.prototype.constructor=EqualsOperation,EqualsOperation.superclass=BinaryOperation.prototype,EqualsOperation.prototype.init=function(lhs,rhs){EqualsOperation.superclass.init.call(this,lhs,rhs)},EqualsOperation.prototype.toString=function(){return"("+this.lhs.toString()+" = "+this.rhs.toString()+")"},EqualsOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).equals(this.rhs.evaluate(c))},NotEqualOperation.prototype=new BinaryOperation,NotEqualOperation.prototype.constructor=NotEqualOperation,NotEqualOperation.superclass=BinaryOperation.prototype,NotEqualOperation.prototype.init=function(lhs,rhs){NotEqualOperation.superclass.init.call(this,lhs,rhs)},NotEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" != "+this.rhs.toString()+")"},NotEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).notequal(this.rhs.evaluate(c))},LessThanOperation.prototype=new BinaryOperation,LessThanOperation.prototype.constructor=LessThanOperation,LessThanOperation.superclass=BinaryOperation.prototype,LessThanOperation.prototype.init=function(lhs,rhs){LessThanOperation.superclass.init.call(this,lhs,rhs)},LessThanOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).lessthan(this.rhs.evaluate(c))},LessThanOperation.prototype.toString=function(){return"("+this.lhs.toString()+" < "+this.rhs.toString()+")"},GreaterThanOperation.prototype=new BinaryOperation,GreaterThanOperation.prototype.constructor=GreaterThanOperation,GreaterThanOperation.superclass=BinaryOperation.prototype,GreaterThanOperation.prototype.init=function(lhs,rhs){GreaterThanOperation.superclass.init.call(this,lhs,rhs)},GreaterThanOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).greaterthan(this.rhs.evaluate(c))},GreaterThanOperation.prototype.toString=function(){return"("+this.lhs.toString()+" > "+this.rhs.toString()+")"},LessThanOrEqualOperation.prototype=new BinaryOperation,LessThanOrEqualOperation.prototype.constructor=LessThanOrEqualOperation,LessThanOrEqualOperation.superclass=BinaryOperation.prototype,LessThanOrEqualOperation.prototype.init=function(lhs,rhs){LessThanOrEqualOperation.superclass.init.call(this,lhs,rhs)},LessThanOrEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).lessthanorequal(this.rhs.evaluate(c))},LessThanOrEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" <= "+this.rhs.toString()+")"},GreaterThanOrEqualOperation.prototype=new BinaryOperation,GreaterThanOrEqualOperation.prototype.constructor=GreaterThanOrEqualOperation,GreaterThanOrEqualOperation.superclass=BinaryOperation.prototype,GreaterThanOrEqualOperation.prototype.init=function(lhs,rhs){GreaterThanOrEqualOperation.superclass.init.call(this,lhs,rhs)},GreaterThanOrEqualOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).greaterthanorequal(this.rhs.evaluate(c))},GreaterThanOrEqualOperation.prototype.toString=function(){return"("+this.lhs.toString()+" >= "+this.rhs.toString()+")"},PlusOperation.prototype=new BinaryOperation,PlusOperation.prototype.constructor=PlusOperation,PlusOperation.superclass=BinaryOperation.prototype,PlusOperation.prototype.init=function(lhs,rhs){PlusOperation.superclass.init.call(this,lhs,rhs)},PlusOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().plus(this.rhs.evaluate(c).number())},PlusOperation.prototype.toString=function(){return"("+this.lhs.toString()+" + "+this.rhs.toString()+")"},MinusOperation.prototype=new BinaryOperation,MinusOperation.prototype.constructor=MinusOperation,MinusOperation.superclass=BinaryOperation.prototype,MinusOperation.prototype.init=function(lhs,rhs){MinusOperation.superclass.init.call(this,lhs,rhs)},MinusOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().minus(this.rhs.evaluate(c).number())},MinusOperation.prototype.toString=function(){return"("+this.lhs.toString()+" - "+this.rhs.toString()+")"},MultiplyOperation.prototype=new BinaryOperation,MultiplyOperation.prototype.constructor=MultiplyOperation,MultiplyOperation.superclass=BinaryOperation.prototype,MultiplyOperation.prototype.init=function(lhs,rhs){MultiplyOperation.superclass.init.call(this,lhs,rhs)},MultiplyOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().multiply(this.rhs.evaluate(c).number())},MultiplyOperation.prototype.toString=function(){return"("+this.lhs.toString()+" * "+this.rhs.toString()+")"},DivOperation.prototype=new BinaryOperation,DivOperation.prototype.constructor=DivOperation,DivOperation.superclass=BinaryOperation.prototype,DivOperation.prototype.init=function(lhs,rhs){DivOperation.superclass.init.call(this,lhs,rhs)},DivOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().div(this.rhs.evaluate(c).number())},DivOperation.prototype.toString=function(){return"("+this.lhs.toString()+" div "+this.rhs.toString()+")"},ModOperation.prototype=new BinaryOperation,ModOperation.prototype.constructor=ModOperation,ModOperation.superclass=BinaryOperation.prototype,ModOperation.prototype.init=function(lhs,rhs){ModOperation.superclass.init.call(this,lhs,rhs)},ModOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).number().mod(this.rhs.evaluate(c).number())},ModOperation.prototype.toString=function(){return"("+this.lhs.toString()+" mod "+this.rhs.toString()+")"},BarOperation.prototype=new BinaryOperation,BarOperation.prototype.constructor=BarOperation,BarOperation.superclass=BinaryOperation.prototype,BarOperation.prototype.init=function(lhs,rhs){BarOperation.superclass.init.call(this,lhs,rhs)},BarOperation.prototype.evaluate=function(c){return this.lhs.evaluate(c).nodeset().union(this.rhs.evaluate(c).nodeset())},BarOperation.prototype.toString=function(){return map(toString,[this.lhs,this.rhs]).join(" | ")},PathExpr.prototype=new Expression,PathExpr.prototype.constructor=PathExpr,PathExpr.superclass=Expression.prototype,PathExpr.prototype.init=function(filter,filterPreds,locpath){PathExpr.superclass.init.call(this),this.filter=filter,this.filterPredicates=filterPreds,this.locationPath=locpath},PathExpr.applyPredicates=function(predicates,c,nodes){if(0===predicates.length)return nodes;var ctx=c.extend({});return reduce((function(inNodes,pred){return ctx.contextSize=inNodes.length,f=function(node,i){return ctx.contextNode=node,ctx.contextPosition=i+1,PathExpr.predicateMatches(pred,ctx)},filtered=[],forEach((function(x,i){f(x,i)&&filtered.push(x)}),inNodes),filtered;var f,filtered}),nodes,predicates)},PathExpr.getRoot=function(xpc,nodes){var firstNode=nodes[0];if(firstNode.nodeType===NodeTypes_DOCUMENT_NODE)return firstNode;if(xpc.virtualRoot)return xpc.virtualRoot;var ownerDoc=firstNode.ownerDocument;if(ownerDoc)return ownerDoc;for(var n=firstNode;null!=n.parentNode;)n=n.parentNode;return n},PathExpr.applyStep=function(step,xpc,node){var newNodes=[];switch(xpc.contextNode=node,step.axis){case Step.ANCESTOR:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(xpc.contextNode):xpc.contextNode.parentNode;null!=m&&(step.nodeTest.matches(m,xpc)&&newNodes.push(m),m!==xpc.virtualRoot);)m=m.parentNode;break;case Step.ANCESTORORSELF:for(var m=xpc.contextNode;null!=m&&(step.nodeTest.matches(m,xpc)&&newNodes.push(m),m!==xpc.virtualRoot);m=m.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(m):m.parentNode);break;case Step.ATTRIBUTE:var nnm=xpc.contextNode.attributes;if(null!=nnm)for(var k=0;k<nnm.length;k++){m=nnm.item(k);step.nodeTest.matches(m,xpc)&&newNodes.push(m)}break;case Step.CHILD:for(m=xpc.contextNode.firstChild;null!=m;m=m.nextSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.DESCENDANT:for(var st=[xpc.contextNode.firstChild];st.length>0;)for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling;break;case Step.DESCENDANTORSELF:step.nodeTest.matches(xpc.contextNode,xpc)&&newNodes.push(xpc.contextNode);for(st=[xpc.contextNode.firstChild];st.length>0;)for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling;break;case Step.FOLLOWING:if(xpc.contextNode===xpc.virtualRoot)break;st=[];null!=xpc.contextNode.firstChild?st.unshift(xpc.contextNode.firstChild):st.unshift(xpc.contextNode.nextSibling);for(m=xpc.contextNode.parentNode;null!=m&&m.nodeType!=NodeTypes_DOCUMENT_NODE&&m!==xpc.virtualRoot;m=m.parentNode)st.unshift(m.nextSibling);do{for(m=st.pop();null!=m;)step.nodeTest.matches(m,xpc)&&newNodes.push(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling}while(st.length>0);break;case Step.FOLLOWINGSIBLING:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.nextSibling;null!=m;m=m.nextSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.NAMESPACE:var n={};if(xpc.contextNode.nodeType==NodeTypes_ELEMENT_NODE){n.xml=XPath.XML_NAMESPACE_URI,n.xmlns=XPath.XMLNS_NAMESPACE_URI;for(m=xpc.contextNode;null!=m&&m.nodeType==NodeTypes_ELEMENT_NODE;m=m.parentNode)for(k=0;k<m.attributes.length;k++){var attr=m.attributes.item(k),nm=String(attr.name);if("xmlns"==nm)null==n[""]&&(n[""]=attr.value);else if(nm.length>6&&"xmlns:"==nm.substring(0,6)){null==n[pre=nm.substring(6,nm.length)]&&(n[pre]=attr.value)}}for(var pre in n){var nsn=new XPathNamespace(pre,n[pre],xpc.contextNode);step.nodeTest.matches(nsn,xpc)&&newNodes.push(nsn)}}break;case Step.PARENT:m=null,xpc.contextNode!==xpc.virtualRoot&&(m=xpc.contextNode.nodeType==NodeTypes_ATTRIBUTE_NODE?PathExpr.getOwnerElement(xpc.contextNode):xpc.contextNode.parentNode),null!=m&&step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.PRECEDING:st=null!=xpc.virtualRoot?[xpc.virtualRoot]:[findRoot(xpc.contextNode)];outer:for(;st.length>0;)for(m=st.pop();null!=m;){if(m==xpc.contextNode)break outer;step.nodeTest.matches(m,xpc)&&newNodes.unshift(m),null!=m.firstChild?(st.push(m.nextSibling),m=m.firstChild):m=m.nextSibling}break;case Step.PRECEDINGSIBLING:if(xpc.contextNode===xpc.virtualRoot)break;for(m=xpc.contextNode.previousSibling;null!=m;m=m.previousSibling)step.nodeTest.matches(m,xpc)&&newNodes.push(m);break;case Step.SELF:step.nodeTest.matches(xpc.contextNode,xpc)&&newNodes.push(xpc.contextNode)}return newNodes},PathExpr.applySteps=function(steps,xpc,nodes){return reduce(applyStepToNodes.bind(null,xpc),nodes,steps)},PathExpr.prototype.applyFilter=function(c,xpc){if(!this.filter)return{nodes:[c.contextNode]};var ns=this.filter.evaluate(c);if(!Utilities.instance_of(ns,XNodeSet)){if(null!=this.filterPredicates&&this.filterPredicates.length>0||null!=this.locationPath)throw new Error("Path expression filter must evaluate to a nodeset if predicates or location path are used");return{nonNodes:ns}}return{nodes:PathExpr.applyPredicates(this.filterPredicates||[],xpc,ns.toUnsortedArray())}},PathExpr.applyLocationPath=function(locationPath,xpc,nodes){if(!locationPath)return nodes;var startNodes=locationPath.absolute?[PathExpr.getRoot(xpc,nodes)]:nodes;return PathExpr.applySteps(locationPath.steps,xpc,startNodes)},PathExpr.prototype.evaluate=function(c){var xpc=assign(new XPathContext,c),filterResult=this.applyFilter(c,xpc);if("nonNodes"in filterResult)return filterResult.nonNodes;var ns=new XNodeSet;return ns.addArray(PathExpr.applyLocationPath(this.locationPath,xpc,filterResult.nodes)),ns},PathExpr.predicateMatches=function(pred,c){var res=pred.evaluate(c);return Utilities.instance_of(res,XNumber)?c.contextPosition===res.numberValue():res.booleanValue()},PathExpr.predicateString=function(predicate){return wrap("[","]",predicate.toString())},PathExpr.predicatesString=function(predicates){return join("",map(PathExpr.predicateString,predicates))},PathExpr.prototype.toString=function(){if(null!=this.filter){var filterStr=toString(this.filter);return Utilities.instance_of(this.filter,XString)?wrap("'","'",filterStr):null!=this.filterPredicates&&this.filterPredicates.length?wrap("(",")",filterStr)+PathExpr.predicatesString(this.filterPredicates):null!=this.locationPath?filterStr+(this.locationPath.absolute?"":"/")+toString(this.locationPath):filterStr}return toString(this.locationPath)},PathExpr.getOwnerElement=function(n){if(n.ownerElement)return n.ownerElement;try{if(n.selectSingleNode)return n.selectSingleNode("..")}catch(e){}for(var elts=(n.nodeType==NodeTypes_DOCUMENT_NODE?n:n.ownerDocument).getElementsByTagName("*"),i=0;i<elts.length;i++)for(var elt=elts.item(i),nnm=elt.attributes,j=0;j<nnm.length;j++){if(nnm.item(j)===n)return elt}return null},LocationPath.prototype=new Object,LocationPath.prototype.constructor=LocationPath,LocationPath.superclass=Object.prototype,LocationPath.prototype.init=function(abs,steps){this.absolute=abs,this.steps=steps},LocationPath.prototype.toString=function(){return(this.absolute?"/":"")+map(toString,this.steps).join("/")},Step.prototype=new Object,Step.prototype.constructor=Step,Step.superclass=Object.prototype,Step.prototype.init=function(axis,nodetest,preds){this.axis=axis,this.nodeTest=nodetest,this.predicates=preds},Step.prototype.toString=function(){return Step.STEPNAMES[this.axis]+"::"+this.nodeTest.toString()+PathExpr.predicatesString(this.predicates)},Step.ANCESTOR=0,Step.ANCESTORORSELF=1,Step.ATTRIBUTE=2,Step.CHILD=3,Step.DESCENDANT=4,Step.DESCENDANTORSELF=5,Step.FOLLOWING=6,Step.FOLLOWINGSIBLING=7,Step.NAMESPACE=8,Step.PARENT=9,Step.PRECEDING=10,Step.PRECEDINGSIBLING=11,Step.SELF=12,Step.STEPNAMES=reduce((function(acc,x){return acc[x[0]]=x[1],acc}),{},[[Step.ANCESTOR,"ancestor"],[Step.ANCESTORORSELF,"ancestor-or-self"],[Step.ATTRIBUTE,"attribute"],[Step.CHILD,"child"],[Step.DESCENDANT,"descendant"],[Step.DESCENDANTORSELF,"descendant-or-self"],[Step.FOLLOWING,"following"],[Step.FOLLOWINGSIBLING,"following-sibling"],[Step.NAMESPACE,"namespace"],[Step.PARENT,"parent"],[Step.PRECEDING,"preceding"],[Step.PRECEDINGSIBLING,"preceding-sibling"],[Step.SELF,"self"]]),NodeTest.prototype=new Object,NodeTest.prototype.constructor=NodeTest,NodeTest.superclass=Object.prototype,NodeTest.prototype.init=function(type,value){this.type=type,this.value=value},NodeTest.prototype.toString=function(){return"<unknown nodetest type>"},NodeTest.prototype.matches=function(n,xpc){console.warn("unknown node test type")},NodeTest.NAMETESTANY=0,NodeTest.NAMETESTPREFIXANY=1,NodeTest.NAMETESTQNAME=2,NodeTest.COMMENT=3,NodeTest.TEXT=4,NodeTest.PI=5,NodeTest.NODE=6,NodeTest.isNodeType=function(types){return function(node){return function(values,value){for(var i=0;i<values.length;i+=1)if(values[i]===value)return!0;return!1}(types,node.nodeType)}},NodeTest.makeNodeTestType=function(type,members,ctor){var newType=ctor||function(){};return newType.prototype=new NodeTest(type),newType.prototype.constructor=newType,assign(newType.prototype,members),newType},NodeTest.makeNodeTypeTest=function(type,nodeTypes,stringVal){return new(NodeTest.makeNodeTestType(type,{matches:NodeTest.isNodeType(nodeTypes),toString:(value=stringVal,function(){return value})}));var value},NodeTest.hasPrefix=function(node){return node.prefix||-1!==(node.nodeName||node.tagName).indexOf(":")},NodeTest.isElementOrAttribute=NodeTest.isNodeType([1,2]),NodeTest.nameSpaceMatches=function(prefix,xpc,n){var nNamespace=n.namespaceURI||"";if(!prefix)return!nNamespace||xpc.allowAnyNamespaceForNoPrefix&&!NodeTest.hasPrefix(n);var ns=xpc.namespaceResolver.getNamespace(prefix,xpc.expressionContextNode);if(null==ns)throw new Error("Cannot resolve QName "+prefix);return ns===nNamespace},NodeTest.localNameMatches=function(localName,xpc,n){var nLocalName=n.localName||n.nodeName;return xpc.caseInsensitive?localName.toLowerCase()===nLocalName.toLowerCase():localName===nLocalName},NodeTest.NameTestPrefixAny=NodeTest.makeNodeTestType(NodeTest.NAMETESTPREFIXANY,{matches:function(n,xpc){return NodeTest.isElementOrAttribute(n)&&NodeTest.nameSpaceMatches(this.prefix,xpc,n)},toString:function(){return this.prefix+":*"}},(function NameTestPrefixAny(prefix){this.prefix=prefix})),NodeTest.NameTestQName=NodeTest.makeNodeTestType(NodeTest.NAMETESTQNAME,{matches:function(n,xpc){return NodeTest.isNodeType([NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,XPathNamespace.XPATH_NAMESPACE_NODE])(n)&&NodeTest.nameSpaceMatches(this.prefix,xpc,n)&&NodeTest.localNameMatches(this.localName,xpc,n)},toString:function(){return this.name}},(function NameTestQName(name){var nameParts=name.split(":");this.name=name,this.prefix=nameParts.length>1?nameParts[0]:null,this.localName=nameParts[nameParts.length>1?1:0]})),NodeTest.PITest=NodeTest.makeNodeTestType(NodeTest.PI,{matches:function(n,xpc){return NodeTest.isNodeType([NodeTypes_PROCESSING_INSTRUCTION_NODE])(n)&&(n.target||n.nodeName)===this.name},toString:function(){return wrap('processing-instruction("','")',this.name)}},(function(name){this.name=name})),NodeTest.nameTestAny=NodeTest.makeNodeTypeTest(NodeTest.NAMETESTANY,[NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,XPathNamespace.XPATH_NAMESPACE_NODE],"*"),NodeTest.textTest=NodeTest.makeNodeTypeTest(NodeTest.TEXT,[NodeTypes_TEXT_NODE,NodeTypes_CDATA_SECTION_NODE],"text()"),NodeTest.commentTest=NodeTest.makeNodeTypeTest(NodeTest.COMMENT,[NodeTypes_COMMENT_NODE],"comment()"),NodeTest.nodeTest=NodeTest.makeNodeTypeTest(NodeTest.NODE,[NodeTypes_ELEMENT_NODE,NodeTypes_ATTRIBUTE_NODE,NodeTypes_TEXT_NODE,NodeTypes_CDATA_SECTION_NODE,NodeTypes_PROCESSING_INSTRUCTION_NODE,NodeTypes_COMMENT_NODE,NodeTypes_DOCUMENT_NODE],"node()"),NodeTest.anyPiTest=NodeTest.makeNodeTypeTest(NodeTest.PI,[NodeTypes_PROCESSING_INSTRUCTION_NODE],"processing-instruction()"),VariableReference.prototype=new Expression,VariableReference.prototype.constructor=VariableReference,VariableReference.superclass=Expression.prototype,VariableReference.prototype.init=function(v){this.variable=v},VariableReference.prototype.toString=function(){return"$"+this.variable},VariableReference.prototype.evaluate=function(c){var parts=Utilities.resolveQName(this.variable,c.namespaceResolver,c.contextNode,!1);if(null==parts[0])throw new Error("Cannot resolve QName "+fn);var result=c.variableResolver.getVariable(parts[1],parts[0]);if(!result)throw XPathException.fromMessage("Undeclared variable: "+this.toString());return result},FunctionCall.prototype=new Expression,FunctionCall.prototype.constructor=FunctionCall,FunctionCall.superclass=Expression.prototype,FunctionCall.prototype.init=function(fn,args){this.functionName=fn,this.arguments=args},FunctionCall.prototype.toString=function(){for(var s=this.functionName+"(",i=0;i<this.arguments.length;i++)i>0&&(s+=", "),s+=this.arguments[i].toString();return s+")"},FunctionCall.prototype.evaluate=function(c){var f=FunctionResolver.getFunctionFromContext(this.functionName,c);if(!f)throw new Error("Unknown function "+this.functionName);var a=[c].concat(this.arguments);return f.apply(c.functionResolver.thisArg,a)};var Operators=new Object;function XString(s){arguments.length>0&&this.init(s)}function XNumber(n){arguments.length>0&&this.init(n)}function XBoolean(b){arguments.length>0&&this.init(b)}function AVLTree(n){this.init(n)}function XNodeSet(){this.init()}function XPathNamespace(pre,ns,p){this.isXPathNamespace=!0,this.ownerDocument=p.ownerDocument,this.nodeName="#namespace",this.prefix=pre,this.localName=pre,this.namespaceURI=ns,this.nodeValue=ns,this.ownerElement=p,this.nodeType=XPathNamespace.XPATH_NAMESPACE_NODE}function XPathContext(vr,nr,fr){this.variableResolver=null!=vr?vr:new VariableResolver,this.namespaceResolver=null!=nr?nr:new NamespaceResolver,this.functionResolver=null!=fr?fr:new FunctionResolver}function VariableResolver(){}function FunctionResolver(thisArg){this.thisArg=null!=thisArg?thisArg:Functions,this.functions=new Object,this.addStandardFunctions()}function NamespaceResolver(){}Operators.equals=function(l,r){return l.equals(r)},Operators.notequal=function(l,r){return l.notequal(r)},Operators.lessthan=function(l,r){return l.lessthan(r)},Operators.greaterthan=function(l,r){return l.greaterthan(r)},Operators.lessthanorequal=function(l,r){return l.lessthanorequal(r)},Operators.greaterthanorequal=function(l,r){return l.greaterthanorequal(r)},XString.prototype=new Expression,XString.prototype.constructor=XString,XString.superclass=Expression.prototype,XString.prototype.init=function(s){this.str=String(s)},XString.prototype.toString=function(){return this.str},XString.prototype.evaluate=function(c){return this},XString.prototype.string=function(){return this},XString.prototype.number=function(){return new XNumber(this.str)},XString.prototype.bool=function(){return new XBoolean(this.str)},XString.prototype.nodeset=function(){throw new Error("Cannot convert string to nodeset")},XString.prototype.stringValue=function(){return this.str},XString.prototype.numberValue=function(){return this.number().numberValue()},XString.prototype.booleanValue=function(){return this.bool().booleanValue()},XString.prototype.equals=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().equals(r):Utilities.instance_of(r,XNumber)?this.number().equals(r):Utilities.instance_of(r,XNodeSet)?r.compareWithString(this,Operators.equals):new XBoolean(this.str==r.str)},XString.prototype.notequal=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().notequal(r):Utilities.instance_of(r,XNumber)?this.number().notequal(r):Utilities.instance_of(r,XNodeSet)?r.compareWithString(this,Operators.notequal):new XBoolean(this.str!=r.str)},XString.prototype.lessthan=function(r){return this.number().lessthan(r)},XString.prototype.greaterthan=function(r){return this.number().greaterthan(r)},XString.prototype.lessthanorequal=function(r){return this.number().lessthanorequal(r)},XString.prototype.greaterthanorequal=function(r){return this.number().greaterthanorequal(r)},XNumber.prototype=new Expression,XNumber.prototype.constructor=XNumber,XNumber.superclass=Expression.prototype,XNumber.prototype.init=function(n){this.num="string"==typeof n?this.parse(n):Number(n)},XNumber.prototype.numberFormat=/^\s*-?[0-9]*\.?[0-9]+\s*$/,XNumber.prototype.parse=function(s){return this.numberFormat.test(s)?parseFloat(s):Number.NaN},XNumber.prototype.toString=function(){var strValue=this.num.toString();return-1!==strValue.indexOf("e-")?function padSmallNumber(numberStr){for(var parts=numberStr.split("e-"),base=parts[0].replace(".",""),exponent=Number(parts[1]),i=0;i<exponent-1;i+=1)base="0"+base;return"0."+base}(strValue):-1!==strValue.indexOf("e")?function padLargeNumber(numberStr){for(var parts=numberStr.split("e"),base=parts[0].replace(".",""),zerosToAppend=Number(parts[1])+1-base.length,i=0;i<zerosToAppend;i+=1)base+="0";return base}(strValue):strValue},XNumber.prototype.evaluate=function(c){return this},XNumber.prototype.string=function(){return new XString(this.toString())},XNumber.prototype.number=function(){return this},XNumber.prototype.bool=function(){return new XBoolean(this.num)},XNumber.prototype.nodeset=function(){throw new Error("Cannot convert number to nodeset")},XNumber.prototype.stringValue=function(){return this.string().stringValue()},XNumber.prototype.numberValue=function(){return this.num},XNumber.prototype.booleanValue=function(){return this.bool().booleanValue()},XNumber.prototype.negate=function(){return new XNumber(-this.num)},XNumber.prototype.equals=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().equals(r):Utilities.instance_of(r,XString)?this.equals(r.number()):Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.equals):new XBoolean(this.num==r.num)},XNumber.prototype.notequal=function(r){return Utilities.instance_of(r,XBoolean)?this.bool().notequal(r):Utilities.instance_of(r,XString)?this.notequal(r.number()):Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.notequal):new XBoolean(this.num!=r.num)},XNumber.prototype.lessthan=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.greaterthan):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.lessthan(r.number()):new XBoolean(this.num<r.num)},XNumber.prototype.greaterthan=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.lessthan):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.greaterthan(r.number()):new XBoolean(this.num>r.num)},XNumber.prototype.lessthanorequal=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.greaterthanorequal):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.lessthanorequal(r.number()):new XBoolean(this.num<=r.num)},XNumber.prototype.greaterthanorequal=function(r){return Utilities.instance_of(r,XNodeSet)?r.compareWithNumber(this,Operators.lessthanorequal):Utilities.instance_of(r,XBoolean)||Utilities.instance_of(r,XString)?this.greaterthanorequal(r.number()):new XBoolean(this.num>=r.num)},XNumber.prototype.plus=function(r){return new XNumber(this.num+r.num)},XNumber.prototype.minus=function(r){return new XNumber(this.num-r.num)},XNumber.prototype.multiply=function(r){return new XNumber(this.num*r.num)},XNumber.prototype.div=function(r){return new XNumber(this.num/r.num)},XNumber.prototype.mod=function(r){return new XNumber(this.num%r.num)},XBoolean.prototype=new Expression,XBoolean.prototype.constructor=XBoolean,XBoolean.superclass=Expression.prototype,XBoolean.prototype.init=function(b){this.b=Boolean(b)},XBoolean.prototype.toString=function(){return this.b.toString()},XBoolean.prototype.evaluate=function(c){return this},XBoolean.prototype.string=function(){return new XString(this.b)},XBoolean.prototype.number=function(){return new XNumber(this.b)},XBoolean.prototype.bool=function(){return this},XBoolean.prototype.nodeset=function(){throw new Error("Cannot convert boolean to nodeset")},XBoolean.prototype.stringValue=function(){return this.string().stringValue()},XBoolean.prototype.numberValue=function(){return this.number().numberValue()},XBoolean.prototype.booleanValue=function(){return this.b},XBoolean.prototype.not=function(){return new XBoolean(!this.b)},XBoolean.prototype.equals=function(r){return Utilities.instance_of(r,XString)||Utilities.instance_of(r,XNumber)?this.equals(r.bool()):Utilities.instance_of(r,XNodeSet)?r.compareWithBoolean(this,Operators.equals):new XBoolean(this.b==r.b)},XBoolean.prototype.notequal=function(r){return Utilities.instance_of(r,XString)||Utilities.instance_of(r,XNumber)?this.notequal(r.bool()):Utilities.instance_of(r,XNodeSet)?r.compareWithBoolean(this,Operators.notequal):new XBoolean(this.b!=r.b)},XBoolean.prototype.lessthan=function(r){return this.number().lessthan(r)},XBoolean.prototype.greaterthan=function(r){return this.number().greaterthan(r)},XBoolean.prototype.lessthanorequal=function(r){return this.number().lessthanorequal(r)},XBoolean.prototype.greaterthanorequal=function(r){return this.number().greaterthanorequal(r)},XBoolean.true_=new XBoolean(!0),XBoolean.false_=new XBoolean(!1),AVLTree.prototype=new Object,AVLTree.prototype.constructor=AVLTree,AVLTree.superclass=Object.prototype,AVLTree.prototype.init=function(n){this.left=null,this.right=null,this.node=n,this.depth=1},AVLTree.prototype.balance=function(){var ldepth=null==this.left?0:this.left.depth,rdepth=null==this.right?0:this.right.depth;if(ldepth>rdepth+1)(null==this.left.left?0:this.left.left.depth)<(null==this.left.right?0:this.left.right.depth)&&this.left.rotateRR(),this.rotateLL();else if(ldepth+1<rdepth){var rrdepth=null==this.right.right?0:this.right.right.depth;(null==this.right.left?0:this.right.left.depth)>rrdepth&&this.right.rotateLL(),this.rotateRR()}},AVLTree.prototype.rotateLL=function(){var nodeBefore=this.node,rightBefore=this.right;this.node=this.left.node,this.right=this.left,this.left=this.left.left,this.right.left=this.right.right,this.right.right=rightBefore,this.right.node=nodeBefore,this.right.updateInNewLocation(),this.updateInNewLocation()},AVLTree.prototype.rotateRR=function(){var nodeBefore=this.node,leftBefore=this.left;this.node=this.right.node,this.left=this.right,this.right=this.right.right,this.left.right=this.left.left,this.left.left=leftBefore,this.left.node=nodeBefore,this.left.updateInNewLocation(),this.updateInNewLocation()},AVLTree.prototype.updateInNewLocation=function(){this.getDepthFromChildren()},AVLTree.prototype.getDepthFromChildren=function(){this.depth=null==this.node?0:1,null!=this.left&&(this.depth=this.left.depth+1),null!=this.right&&this.depth<=this.right.depth&&(this.depth=this.right.depth+1)},AVLTree.prototype.add=function(n){if(n===this.node)return!1;var o=function nodeOrder(n1,n2){if(n1===n2)return 0;if(n1.compareDocumentPosition){var cpos=n1.compareDocumentPosition(n2);return 1&cpos||10&cpos?1:20&cpos?-1:0}for(var d1=0,d2=0,m1=n1;null!=m1;m1=m1.parentNode||m1.ownerElement)d1++;for(var m2=n2;null!=m2;m2=m2.parentNode||m2.ownerElement)d2++;if(d1>d2){for(;d1>d2;)n1=n1.parentNode||n1.ownerElement,d1--;if(n1===n2)return 1}else if(d2>d1){for(;d2>d1;)n2=n2.parentNode||n2.ownerElement,d2--;if(n1===n2)return-1}for(var n1Par=n1.parentNode||n1.ownerElement,n2Par=n2.parentNode||n2.ownerElement;n1Par!==n2Par;)n2=n2Par,n1Par=(n1=n1Par).parentNode||n1.ownerElement,n2Par=n2.parentNode||n2.ownerElement;var n1isAttr=Utilities.isAttribute(n1),n2isAttr=Utilities.isAttribute(n2);if(n1isAttr&&!n2isAttr)return-1;if(!n1isAttr&&n2isAttr)return 1;if(n1Par)for(var cn=n1isAttr?n1Par.attributes:n1Par.childNodes,len=cn.length,i=0;i<len;i+=1){var n=cn[i];if(n===n1)return-1;if(n===n2)return 1}throw new Error("Unexpected: could not determine node order")}(n,this.node),ret=!1;return-1==o?null==this.left?(this.left=new AVLTree(n),ret=!0):(ret=this.left.add(n))&&this.balance():1==o&&(null==this.right?(this.right=new AVLTree(n),ret=!0):(ret=this.right.add(n))&&this.balance()),ret&&this.getDepthFromChildren(),ret},XNodeSet.prototype=new Expression,XNodeSet.prototype.constructor=XNodeSet,XNodeSet.superclass=Expression.prototype,XNodeSet.prototype.init=function(){this.tree=null,this.nodes=[],this.size=0},XNodeSet.prototype.toString=function(){var p=this.first();return null==p?"":this.stringForNode(p)},XNodeSet.prototype.evaluate=function(c){return this},XNodeSet.prototype.string=function(){return new XString(this.toString())},XNodeSet.prototype.stringValue=function(){return this.toString()},XNodeSet.prototype.number=function(){return new XNumber(this.string())},XNodeSet.prototype.numberValue=function(){return Number(this.string())},XNodeSet.prototype.bool=function(){return new XBoolean(this.booleanValue())},XNodeSet.prototype.booleanValue=function(){return!!this.size},XNodeSet.prototype.nodeset=function(){return this},XNodeSet.prototype.stringForNode=function(n){return n.nodeType==NodeTypes_DOCUMENT_NODE||n.nodeType==NodeTypes_ELEMENT_NODE||n.nodeType===NodeTypes_DOCUMENT_FRAGMENT_NODE?this.stringForContainerNode(n):n.nodeType===NodeTypes_ATTRIBUTE_NODE?n.value||n.nodeValue:n.isNamespaceNode?n.namespace:n.nodeValue},XNodeSet.prototype.stringForContainerNode=function(n){for(var s="",n2=n.firstChild;null!=n2;n2=n2.nextSibling){var nt=n2.nodeType;1!==nt&&3!==nt&&4!==nt&&9!==nt&&11!==nt||(s+=this.stringForNode(n2))}return s},XNodeSet.prototype.buildTree=function(){if(!this.tree&&this.nodes.length){this.tree=new AVLTree(this.nodes[0]);for(var i=1;i<this.nodes.length;i+=1)this.tree.add(this.nodes[i])}return this.tree},XNodeSet.prototype.first=function(){var p=this.buildTree();if(null==p)return null;for(;null!=p.left;)p=p.left;return p.node},XNodeSet.prototype.add=function(n){for(var i=0;i<this.nodes.length;i+=1)if(n===this.nodes[i])return;this.tree=null,this.nodes.push(n),this.size+=1},XNodeSet.prototype.addArray=function(ns){var self=this;forEach((function(x){self.add(x)}),ns)},XNodeSet.prototype.toArray=function(){var a=[];return this.toArrayRec(this.buildTree(),a),a},XNodeSet.prototype.toArrayRec=function(t,a){null!=t&&(this.toArrayRec(t.left,a),a.push(t.node),this.toArrayRec(t.right,a))},XNodeSet.prototype.toUnsortedArray=function(){return this.nodes.slice()},XNodeSet.prototype.compareWithString=function(r,o){for(var a=this.toUnsortedArray(),i=0;i<a.length;i++){var n=a[i],res=o(new XString(this.stringForNode(n)),r);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.prototype.compareWithNumber=function(r,o){for(var a=this.toUnsortedArray(),i=0;i<a.length;i++){var n=a[i],res=o(new XNumber(this.stringForNode(n)),r);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.prototype.compareWithBoolean=function(r,o){return o(this.bool(),r)},XNodeSet.prototype.compareWithNodeSet=function(r,o){for(var arr=this.toUnsortedArray(),oInvert=function(lop,rop){return o(rop,lop)},i=0;i<arr.length;i++){var l=new XString(this.stringForNode(arr[i])),res=r.compareWithString(l,oInvert);if(res.booleanValue())return res}return new XBoolean(!1)},XNodeSet.compareWith=function curry(func){var slice=Array.prototype.slice,totalargs=func.length,fn=function(){var args=slice.call(arguments);return args.length<totalargs?function(args,fn){return function(){return fn.apply(this,args.concat(slice.call(arguments)))}}(args,fn):func.apply(this,slice.apply(arguments,[0,totalargs]))};return fn}((function(o,r){return Utilities.instance_of(r,XString)?this.compareWithString(r,o):Utilities.instance_of(r,XNumber)?this.compareWithNumber(r,o):Utilities.instance_of(r,XBoolean)?this.compareWithBoolean(r,o):this.compareWithNodeSet(r,o)})),XNodeSet.prototype.equals=XNodeSet.compareWith(Operators.equals),XNodeSet.prototype.notequal=XNodeSet.compareWith(Operators.notequal),XNodeSet.prototype.lessthan=XNodeSet.compareWith(Operators.lessthan),XNodeSet.prototype.greaterthan=XNodeSet.compareWith(Operators.greaterthan),XNodeSet.prototype.lessthanorequal=XNodeSet.compareWith(Operators.lessthanorequal),XNodeSet.prototype.greaterthanorequal=XNodeSet.compareWith(Operators.greaterthanorequal),XNodeSet.prototype.union=function(r){var ns=new XNodeSet;return ns.addArray(this.toUnsortedArray()),ns.addArray(r.toUnsortedArray()),ns},XPathNamespace.prototype=new Object,XPathNamespace.prototype.constructor=XPathNamespace,XPathNamespace.superclass=Object.prototype,XPathNamespace.prototype.toString=function(){return'{ "'+this.prefix+'", "'+this.namespaceURI+'" }'},XPathContext.prototype=new Object,XPathContext.prototype.constructor=XPathContext,XPathContext.superclass=Object.prototype,XPathContext.prototype.extend=function(newProps){return assign(new XPathContext,this,newProps)},VariableResolver.prototype=new Object,VariableResolver.prototype.constructor=VariableResolver,VariableResolver.superclass=Object.prototype,VariableResolver.prototype.getVariable=function(ln,ns){return null},FunctionResolver.prototype=new Object,FunctionResolver.prototype.constructor=FunctionResolver,FunctionResolver.superclass=Object.prototype,FunctionResolver.prototype.addStandardFunctions=function(){this.functions["{}last"]=Functions.last,this.functions["{}position"]=Functions.position,this.functions["{}count"]=Functions.count,this.functions["{}id"]=Functions.id,this.functions["{}local-name"]=Functions.localName,this.functions["{}namespace-uri"]=Functions.namespaceURI,this.functions["{}name"]=Functions.name,this.functions["{}string"]=Functions.string,this.functions["{}concat"]=Functions.concat,this.functions["{}starts-with"]=Functions.startsWith,this.functions["{}contains"]=Functions.contains,this.functions["{}substring-before"]=Functions.substringBefore,this.functions["{}substring-after"]=Functions.substringAfter,this.functions["{}substring"]=Functions.substring,this.functions["{}string-length"]=Functions.stringLength,this.functions["{}normalize-space"]=Functions.normalizeSpace,this.functions["{}translate"]=Functions.translate,this.functions["{}boolean"]=Functions.boolean_,this.functions["{}not"]=Functions.not,this.functions["{}true"]=Functions.true_,this.functions["{}false"]=Functions.false_,this.functions["{}lang"]=Functions.lang,this.functions["{}number"]=Functions.number,this.functions["{}sum"]=Functions.sum,this.functions["{}floor"]=Functions.floor,this.functions["{}ceiling"]=Functions.ceiling,this.functions["{}round"]=Functions.round},FunctionResolver.prototype.addFunction=function(ns,ln,f){this.functions["{"+ns+"}"+ln]=f},FunctionResolver.getFunctionFromContext=function(qName,context){var parts=Utilities.resolveQName(qName,context.namespaceResolver,context.contextNode,!1);if(null===parts[0])throw new Error("Cannot resolve QName "+name);return context.functionResolver.getFunction(parts[1],parts[0])},FunctionResolver.prototype.getFunction=function(localName,namespace){return this.functions["{"+namespace+"}"+localName]},NamespaceResolver.prototype=new Object,NamespaceResolver.prototype.constructor=NamespaceResolver,NamespaceResolver.superclass=Object.prototype,NamespaceResolver.prototype.getNamespace=function(prefix,n){if("xml"==prefix)return XPath.XML_NAMESPACE_URI;if("xmlns"==prefix)return XPath.XMLNS_NAMESPACE_URI;for(n.nodeType==NodeTypes_DOCUMENT_NODE?n=n.documentElement:n.nodeType==NodeTypes_ATTRIBUTE_NODE?n=PathExpr.getOwnerElement(n):n.nodeType!=NodeTypes_ELEMENT_NODE&&(n=n.parentNode);null!=n&&n.nodeType==NodeTypes_ELEMENT_NODE;){for(var nnm=n.attributes,i=0;i<nnm.length;i++){var a=nnm.item(i),aname=a.name||a.nodeName;if("xmlns"===aname&&""===prefix||aname==="xmlns:"+prefix)return String(a.value||a.nodeValue)}n=n.parentNode}return null};var Functions=new Object;Functions.last=function(c){if(1!=arguments.length)throw new Error("Function last expects ()");return new XNumber(c.contextSize)},Functions.position=function(c){if(1!=arguments.length)throw new Error("Function position expects ()");return new XNumber(c.contextPosition)},Functions.count=function(){var ns,c=arguments[0];if(2!=arguments.length||!Utilities.instance_of(ns=arguments[1].evaluate(c),XNodeSet))throw new Error("Function count expects (node-set)");return new XNumber(ns.size)},Functions.id=function(){var id,c=arguments[0];if(2!=arguments.length)throw new Error("Function id expects (object)");id=arguments[1].evaluate(c);for(var ids=(id=Utilities.instance_of(id,XNodeSet)?id.toArray().join(" "):id.stringValue()).split(/[\x0d\x0a\x09\x20]+/),ns=new XNodeSet,doc=c.contextNode.nodeType==NodeTypes_DOCUMENT_NODE?c.contextNode:c.contextNode.ownerDocument,i=0;i<ids.length;i++){var n;null!=(n=doc.getElementById?doc.getElementById(ids[i]):Utilities.getElementById(doc,ids[i]))&&ns.add(n)}return ns},Functions.localName=function(c,eNode){var n;if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function local-name expects (node-set?)");n=eNode.evaluate(c).first()}return new XString(null==n?"":n.localName||n.baseName||n.target||n.nodeName||"")},Functions.namespaceURI=function(){var n,c=arguments[0];if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function namespace-uri expects (node-set?)");n=arguments[1].evaluate(c).first()}return new XString(null==n?"":n.namespaceURI)},Functions.name=function(){var n,c=arguments[0];if(1==arguments.length)n=c.contextNode;else{if(2!=arguments.length)throw new Error("Function name expects (node-set?)");n=arguments[1].evaluate(c).first()}return null==n?new XString(""):n.nodeType==NodeTypes_ELEMENT_NODE?new XString(n.nodeName):n.nodeType==NodeTypes_ATTRIBUTE_NODE?new XString(n.name||n.nodeName):n.nodeType===NodeTypes_PROCESSING_INSTRUCTION_NODE?new XString(n.target||n.nodeName):null==n.localName?new XString(""):new XString(n.localName)},Functions.string=function(){var c=arguments[0];if(1==arguments.length)return new XString(XNodeSet.prototype.stringForNode(c.contextNode));if(2==arguments.length)return arguments[1].evaluate(c).string();throw new Error("Function string expects (object?)")},Functions.concat=function(c){if(arguments.length<3)throw new Error("Function concat expects (string, string[, string]*)");for(var s="",i=1;i<arguments.length;i++)s+=arguments[i].evaluate(c).stringValue();return new XString(s)},Functions.startsWith=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function startsWith expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XBoolean(s1.substring(0,s2.length)==s2)},Functions.contains=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function contains expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XBoolean(-1!==s1.indexOf(s2))},Functions.substringBefore=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function substring-before expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();return new XString(s1.substring(0,s1.indexOf(s2)))},Functions.substringAfter=function(){var c=arguments[0];if(3!=arguments.length)throw new Error("Function substring-after expects (string, string)");var s1=arguments[1].evaluate(c).stringValue(),s2=arguments[2].evaluate(c).stringValue();if(0==s2.length)return new XString(s1);var i=s1.indexOf(s2);return new XString(-1==i?"":s1.substring(i+s2.length))},Functions.substring=function(){var c=arguments[0];if(3!=arguments.length&&4!=arguments.length)throw new Error("Function substring expects (string, number, number?)");var s=arguments[1].evaluate(c).stringValue(),n1=Math.round(arguments[2].evaluate(c).numberValue())-1,n2=4==arguments.length?n1+Math.round(arguments[3].evaluate(c).numberValue()):void 0;return new XString(s.substring(n1,n2))},Functions.stringLength=function(){var s,c=arguments[0];if(1==arguments.length)s=XNodeSet.prototype.stringForNode(c.contextNode);else{if(2!=arguments.length)throw new Error("Function string-length expects (string?)");s=arguments[1].evaluate(c).stringValue()}return new XNumber(s.length)},Functions.normalizeSpace=function(){var s,c=arguments[0];if(1==arguments.length)s=XNodeSet.prototype.stringForNode(c.contextNode);else{if(2!=arguments.length)throw new Error("Function normalize-space expects (string?)");s=arguments[1].evaluate(c).stringValue()}for(var i=0,j=s.length-1;Utilities.isSpace(s.charCodeAt(j));)j--;for(var t="";i<=j&&Utilities.isSpace(s.charCodeAt(i));)i++;for(;i<=j;)if(Utilities.isSpace(s.charCodeAt(i)))for(t+=" ";i<=j&&Utilities.isSpace(s.charCodeAt(i));)i++;else t+=s.charAt(i),i++;return new XString(t)},Functions.translate=function(c,eValue,eFrom,eTo){if(4!=arguments.length)throw new Error("Function translate expects (string, string, string)");var value=eValue.evaluate(c).stringValue(),from=eFrom.evaluate(c).stringValue(),to=eTo.evaluate(c).stringValue(),cMap=reduce((function(acc,ch,i){return ch in acc||(acc[ch]=i>to.length?"":to[i]),acc}),{},from);return new XString(join("",map((function(ch){return ch in cMap?cMap[ch]:ch}),value)))},Functions.boolean_=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function boolean expects (object)");return arguments[1].evaluate(c).bool()},Functions.not=function(c,eValue){if(2!=arguments.length)throw new Error("Function not expects (object)");return eValue.evaluate(c).bool().not()},Functions.true_=function(){if(1!=arguments.length)throw new Error("Function true expects ()");return XBoolean.true_},Functions.false_=function(){if(1!=arguments.length)throw new Error("Function false expects ()");return XBoolean.false_},Functions.lang=function(){var lang,c=arguments[0];if(2!=arguments.length)throw new Error("Function lang expects (string)");for(var n=c.contextNode;null!=n&&n.nodeType!=NodeTypes_DOCUMENT_NODE;n=n.parentNode){var a=n.getAttributeNS(XPath.XML_NAMESPACE_URI,"lang");if(null!=a){lang=String(a);break}}if(null==lang)return XBoolean.false_;var s=arguments[1].evaluate(c).stringValue();return new XBoolean(lang.substring(0,s.length)==s&&(lang.length==s.length||"-"==lang.charAt(s.length)))},Functions.number=function(){var c=arguments[0];if(1!=arguments.length&&2!=arguments.length)throw new Error("Function number expects (object?)");return 1==arguments.length?new XNumber(XNodeSet.prototype.stringForNode(c.contextNode)):arguments[1].evaluate(c).number()},Functions.sum=function(){var ns,c=arguments[0];if(2!=arguments.length||!Utilities.instance_of(ns=arguments[1].evaluate(c),XNodeSet))throw new Error("Function sum expects (node-set)");ns=ns.toUnsortedArray();for(var n=0,i=0;i<ns.length;i++)n+=new XNumber(XNodeSet.prototype.stringForNode(ns[i])).numberValue();return new XNumber(n)},Functions.floor=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function floor expects (number)");return new XNumber(Math.floor(arguments[1].evaluate(c).numberValue()))},Functions.ceiling=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function ceiling expects (number)");return new XNumber(Math.ceil(arguments[1].evaluate(c).numberValue()))},Functions.round=function(){var c=arguments[0];if(2!=arguments.length)throw new Error("Function round expects (number)");return new XNumber(Math.round(arguments[1].evaluate(c).numberValue()))};var Utilities=new Object;Utilities.isAttribute=function(val){return val&&(val.nodeType===NodeTypes_ATTRIBUTE_NODE||val.ownerElement)},Utilities.splitQName=function(qn){var i=qn.indexOf(":");return-1==i?[null,qn]:[qn.substring(0,i),qn.substring(i+1)]},Utilities.resolveQName=function(qn,nr,n,useDefault){var parts=Utilities.splitQName(qn);return null!=parts[0]?parts[0]=nr.getNamespace(parts[0],n):useDefault?(parts[0]=nr.getNamespace("",n),null==parts[0]&&(parts[0]="")):parts[0]="",parts},Utilities.isSpace=function(c){return 9==c||13==c||10==c||32==c},Utilities.isLetter=function(c){return c>=65&&c<=90||c>=97&&c<=122||c>=192&&c<=214||c>=216&&c<=246||c>=248&&c<=255||c>=256&&c<=305||c>=308&&c<=318||c>=321&&c<=328||c>=330&&c<=382||c>=384&&c<=451||c>=461&&c<=496||c>=500&&c<=501||c>=506&&c<=535||c>=592&&c<=680||c>=699&&c<=705||902==c||c>=904&&c<=906||908==c||c>=910&&c<=929||c>=931&&c<=974||c>=976&&c<=982||986==c||988==c||990==c||992==c||c>=994&&c<=1011||c>=1025&&c<=1036||c>=1038&&c<=1103||c>=1105&&c<=1116||c>=1118&&c<=1153||c>=1168&&c<=1220||c>=1223&&c<=1224||c>=1227&&c<=1228||c>=1232&&c<=1259||c>=1262&&c<=1269||c>=1272&&c<=1273||c>=1329&&c<=1366||1369==c||c>=1377&&c<=1414||c>=1488&&c<=1514||c>=1520&&c<=1522||c>=1569&&c<=1594||c>=1601&&c<=1610||c>=1649&&c<=1719||c>=1722&&c<=1726||c>=1728&&c<=1742||c>=1744&&c<=1747||1749==c||c>=1765&&c<=1766||c>=2309&&c<=2361||2365==c||c>=2392&&c<=2401||c>=2437&&c<=2444||c>=2447&&c<=2448||c>=2451&&c<=2472||c>=2474&&c<=2480||2482==c||c>=2486&&c<=2489||c>=2524&&c<=2525||c>=2527&&c<=2529||c>=2544&&c<=2545||c>=2565&&c<=2570||c>=2575&&c<=2576||c>=2579&&c<=2600||c>=2602&&c<=2608||c>=2610&&c<=2611||c>=2613&&c<=2614||c>=2616&&c<=2617||c>=2649&&c<=2652||2654==c||c>=2674&&c<=2676||c>=2693&&c<=2699||2701==c||c>=2703&&c<=2705||c>=2707&&c<=2728||c>=2730&&c<=2736||c>=2738&&c<=2739||c>=2741&&c<=2745||2749==c||2784==c||c>=2821&&c<=2828||c>=2831&&c<=2832||c>=2835&&c<=2856||c>=2858&&c<=2864||c>=2866&&c<=2867||c>=2870&&c<=2873||2877==c||c>=2908&&c<=2909||c>=2911&&c<=2913||c>=2949&&c<=2954||c>=2958&&c<=2960||c>=2962&&c<=2965||c>=2969&&c<=2970||2972==c||c>=2974&&c<=2975||c>=2979&&c<=2980||c>=2984&&c<=2986||c>=2990&&c<=2997||c>=2999&&c<=3001||c>=3077&&c<=3084||c>=3086&&c<=3088||c>=3090&&c<=3112||c>=3114&&c<=3123||c>=3125&&c<=3129||c>=3168&&c<=3169||c>=3205&&c<=3212||c>=3214&&c<=3216||c>=3218&&c<=3240||c>=3242&&c<=3251||c>=3253&&c<=3257||3294==c||c>=3296&&c<=3297||c>=3333&&c<=3340||c>=3342&&c<=3344||c>=3346&&c<=3368||c>=3370&&c<=3385||c>=3424&&c<=3425||c>=3585&&c<=3630||3632==c||c>=3634&&c<=3635||c>=3648&&c<=3653||c>=3713&&c<=3714||3716==c||c>=3719&&c<=3720||3722==c||3725==c||c>=3732&&c<=3735||c>=3737&&c<=3743||c>=3745&&c<=3747||3749==c||3751==c||c>=3754&&c<=3755||c>=3757&&c<=3758||3760==c||c>=3762&&c<=3763||3773==c||c>=3776&&c<=3780||c>=3904&&c<=3911||c>=3913&&c<=3945||c>=4256&&c<=4293||c>=4304&&c<=4342||4352==c||c>=4354&&c<=4355||c>=4357&&c<=4359||4361==c||c>=4363&&c<=4364||c>=4366&&c<=4370||4412==c||4414==c||4416==c||4428==c||4430==c||4432==c||c>=4436&&c<=4437||4441==c||c>=4447&&c<=4449||4451==c||4453==c||4455==c||4457==c||c>=4461&&c<=4462||c>=4466&&c<=4467||4469==c||4510==c||4520==c||4523==c||c>=4526&&c<=4527||c>=4535&&c<=4536||4538==c||c>=4540&&c<=4546||4587==c||4592==c||4601==c||c>=7680&&c<=7835||c>=7840&&c<=7929||c>=7936&&c<=7957||c>=7960&&c<=7965||c>=7968&&c<=8005||c>=8008&&c<=8013||c>=8016&&c<=8023||8025==c||8027==c||8029==c||c>=8031&&c<=8061||c>=8064&&c<=8116||c>=8118&&c<=8124||8126==c||c>=8130&&c<=8132||c>=8134&&c<=8140||c>=8144&&c<=8147||c>=8150&&c<=8155||c>=8160&&c<=8172||c>=8178&&c<=8180||c>=8182&&c<=8188||8486==c||c>=8490&&c<=8491||8494==c||c>=8576&&c<=8578||c>=12353&&c<=12436||c>=12449&&c<=12538||c>=12549&&c<=12588||c>=44032&&c<=55203||c>=19968&&c<=40869||12295==c||c>=12321&&c<=12329},Utilities.isNCNameChar=function(c){return c>=48&&c<=57||c>=1632&&c<=1641||c>=1776&&c<=1785||c>=2406&&c<=2415||c>=2534&&c<=2543||c>=2662&&c<=2671||c>=2790&&c<=2799||c>=2918&&c<=2927||c>=3047&&c<=3055||c>=3174&&c<=3183||c>=3302&&c<=3311||c>=3430&&c<=3439||c>=3664&&c<=3673||c>=3792&&c<=3801||c>=3872&&c<=3881||46==c||45==c||95==c||Utilities.isLetter(c)||c>=768&&c<=837||c>=864&&c<=865||c>=1155&&c<=1158||c>=1425&&c<=1441||c>=1443&&c<=1465||c>=1467&&c<=1469||1471==c||c>=1473&&c<=1474||1476==c||c>=1611&&c<=1618||1648==c||c>=1750&&c<=1756||c>=1757&&c<=1759||c>=1760&&c<=1764||c>=1767&&c<=1768||c>=1770&&c<=1773||c>=2305&&c<=2307||2364==c||c>=2366&&c<=2380||2381==c||c>=2385&&c<=2388||c>=2402&&c<=2403||c>=2433&&c<=2435||2492==c||2494==c||2495==c||c>=2496&&c<=2500||c>=2503&&c<=2504||c>=2507&&c<=2509||2519==c||c>=2530&&c<=2531||2562==c||2620==c||2622==c||2623==c||c>=2624&&c<=2626||c>=2631&&c<=2632||c>=2635&&c<=2637||c>=2672&&c<=2673||c>=2689&&c<=2691||2748==c||c>=2750&&c<=2757||c>=2759&&c<=2761||c>=2763&&c<=2765||c>=2817&&c<=2819||2876==c||c>=2878&&c<=2883||c>=2887&&c<=2888||c>=2891&&c<=2893||c>=2902&&c<=2903||c>=2946&&c<=2947||c>=3006&&c<=3010||c>=3014&&c<=3016||c>=3018&&c<=3021||3031==c||c>=3073&&c<=3075||c>=3134&&c<=3140||c>=3142&&c<=3144||c>=3146&&c<=3149||c>=3157&&c<=3158||c>=3202&&c<=3203||c>=3262&&c<=3268||c>=3270&&c<=3272||c>=3274&&c<=3277||c>=3285&&c<=3286||c>=3330&&c<=3331||c>=3390&&c<=3395||c>=3398&&c<=3400||c>=3402&&c<=3405||3415==c||3633==c||c>=3636&&c<=3642||c>=3655&&c<=3662||3761==c||c>=3764&&c<=3769||c>=3771&&c<=3772||c>=3784&&c<=3789||c>=3864&&c<=3865||3893==c||3895==c||3897==c||3902==c||3903==c||c>=3953&&c<=3972||c>=3974&&c<=3979||c>=3984&&c<=3989||3991==c||c>=3993&&c<=4013||c>=4017&&c<=4023||4025==c||c>=8400&&c<=8412||8417==c||c>=12330&&c<=12335||12441==c||12442==c||183==c||720==c||721==c||903==c||1600==c||3654==c||3782==c||12293==c||c>=12337&&c<=12341||c>=12445&&c<=12446||c>=12540&&c<=12542},Utilities.coalesceText=function(n){for(var m=n.firstChild;null!=m;m=m.nextSibling)if(m.nodeType==NodeTypes_TEXT_NODE||m.nodeType==NodeTypes_CDATA_SECTION_NODE){var s=m.nodeValue,first=m;for(m=m.nextSibling;null!=m&&(m.nodeType==NodeTypes_TEXT_NODE||m.nodeType==NodeTypes_CDATA_SECTION_NODE);){s+=m.nodeValue;var del=m;m=m.nextSibling,del.parentNode.removeChild(del)}if(first.nodeType==NodeTypes_CDATA_SECTION_NODE){var p=first.parentNode;if(null==first.nextSibling)p.removeChild(first),p.appendChild(p.ownerDocument.createTextNode(s));else{var next=first.nextSibling;p.removeChild(first),p.insertBefore(p.ownerDocument.createTextNode(s),next)}}else first.nodeValue=s;if(null==m)break}else m.nodeType==NodeTypes_ELEMENT_NODE&&Utilities.coalesceText(m)},Utilities.instance_of=function(o,c){for(;null!=o;){if(o.constructor===c)return!0;if(o===Object)return!1;o=o.constructor.superclass}return!1},Utilities.getElementById=function(n,id){if(n.nodeType==NodeTypes_ELEMENT_NODE&&(n.getAttribute("id")==id||n.getAttributeNS(null,"id")==id))return n;for(var m=n.firstChild;null!=m;m=m.nextSibling){var res=Utilities.getElementById(m,id);if(null!=res)return res}return null};var XPathException=function(){function XPathException(code,error,message){var err=Error.call(this,function getMessage(code,exception){var msg=exception?": "+exception.toString():"";switch(code){case XPathException.INVALID_EXPRESSION_ERR:return"Invalid expression"+msg;case XPathException.TYPE_ERR:return"Type error"+msg}return null}(code,error)||message);return err.code=code,err.exception=error,err}return XPathException.prototype=Object.create(Error.prototype),XPathException.prototype.constructor=XPathException,XPathException.superclass=Error,XPathException.prototype.toString=function(){return this.message},XPathException.fromMessage=function(message,error){return new XPathException(null,error,message)},XPathException.INVALID_EXPRESSION_ERR=51,XPathException.TYPE_ERR=52,XPathException}();function XPathExpression(e,r,p){this.xpath=p.parse(e),this.context=new XPathContext,this.context.namespaceResolver=new XPathNSResolverWrapper(r)}function XPathNSResolverWrapper(r){this.xpathNSResolver=r}function NodeXPathNSResolver(n){this.node=n,this.namespaceResolver=new NamespaceResolver}function XPathResult(v,t){switch(t==XPathResult.ANY_TYPE&&(v.constructor===XString?t=XPathResult.STRING_TYPE:v.constructor===XNumber?t=XPathResult.NUMBER_TYPE:v.constructor===XBoolean?t=XPathResult.BOOLEAN_TYPE:v.constructor===XNodeSet&&(t=XPathResult.UNORDERED_NODE_ITERATOR_TYPE)),this.resultType=t,t){case XPathResult.NUMBER_TYPE:return void(this.numberValue=v.numberValue());case XPathResult.STRING_TYPE:return void(this.stringValue=v.stringValue());case XPathResult.BOOLEAN_TYPE:return void(this.booleanValue=v.booleanValue());case XPathResult.ANY_UNORDERED_NODE_TYPE:case XPathResult.FIRST_ORDERED_NODE_TYPE:if(v.constructor===XNodeSet)return void(this.singleNodeValue=v.first());break;case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:case XPathResult.ORDERED_NODE_ITERATOR_TYPE:if(v.constructor===XNodeSet)return this.invalidIteratorState=!1,this.nodes=v.toArray(),void(this.iteratorIndex=0);break;case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:if(v.constructor===XNodeSet)return this.nodes=v.toArray(),void(this.snapshotLength=this.nodes.length)}throw new XPathException(XPathException.TYPE_ERR)}function installDOM3XPathSupport(doc,p){doc.createExpression=function(e,r){try{return new XPathExpression(e,r,p)}catch(e){throw new XPathException(XPathException.INVALID_EXPRESSION_ERR,e)}},doc.createNSResolver=function(n){return new NodeXPathNSResolver(n)},doc.evaluate=function(e,cn,r,t,res){if(t<0||t>9)throw{code:0,toString:function(){return"Request type not supported"}};return doc.createExpression(e,r,p).evaluate(cn,t,res)}}XPathExpression.prototype={},XPathExpression.prototype.constructor=XPathExpression,XPathExpression.superclass=Object.prototype,XPathExpression.getOwnerDocument=function(n){return n.nodeType===NodeTypes_DOCUMENT_NODE?n:n.ownerDocument},XPathExpression.detectHtmlDom=function(n){if(!n)return!1;var doc=XPathExpression.getOwnerDocument(n);try{return doc.implementation.hasFeature("HTML","2.0")}catch(e){return!0}},XPathExpression.prototype.evaluate=function(n,t,res){return this.context.expressionContextNode=n,this.context.caseInsensitive=XPathExpression.detectHtmlDom(n),new XPathResult(this.xpath.evaluate(this.context),t)},XPathNSResolverWrapper.prototype={},XPathNSResolverWrapper.prototype.constructor=XPathNSResolverWrapper,XPathNSResolverWrapper.superclass=Object.prototype,XPathNSResolverWrapper.prototype.getNamespace=function(prefix,n){return null==this.xpathNSResolver?null:this.xpathNSResolver.lookupNamespaceURI(prefix)},NodeXPathNSResolver.prototype={},NodeXPathNSResolver.prototype.constructor=NodeXPathNSResolver,NodeXPathNSResolver.superclass=Object.prototype,NodeXPathNSResolver.prototype.lookupNamespaceURI=function(prefix){return this.namespaceResolver.getNamespace(prefix,this.node)},XPathResult.prototype={},XPathResult.prototype.constructor=XPathResult,XPathResult.superclass=Object.prototype,XPathResult.prototype.iterateNext=function(){if(this.resultType!=XPathResult.UNORDERED_NODE_ITERATOR_TYPE&&this.resultType!=XPathResult.ORDERED_NODE_ITERATOR_TYPE)throw new XPathException(XPathException.TYPE_ERR);return this.nodes[this.iteratorIndex++]},XPathResult.prototype.snapshotItem=function(i){if(this.resultType!=XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE&&this.resultType!=XPathResult.ORDERED_NODE_SNAPSHOT_TYPE)throw new XPathException(XPathException.TYPE_ERR);return this.nodes[i]},XPathResult.ANY_TYPE=0,XPathResult.NUMBER_TYPE=1,XPathResult.STRING_TYPE=2,XPathResult.BOOLEAN_TYPE=3,XPathResult.UNORDERED_NODE_ITERATOR_TYPE=4,XPathResult.ORDERED_NODE_ITERATOR_TYPE=5,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE=6,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE=7,XPathResult.ANY_UNORDERED_NODE_TYPE=8,XPathResult.FIRST_ORDERED_NODE_TYPE=9;try{var shouldInstall=!0;try{document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null)&&(shouldInstall=!1)}catch(e){}shouldInstall&&installDOM3XPathSupport(document,new XPathParser)}catch(e){}installDOM3XPathSupport(exports,new XPathParser),function(){var parser=new XPathParser,defaultNSResolver=new NamespaceResolver,defaultFunctionResolver=new FunctionResolver,defaultVariableResolver=new VariableResolver;function makeNSResolverFromFunction(func){return{getNamespace:function(prefix,node){return func(prefix,node)||defaultNSResolver.getNamespace(prefix,node)}}}function makeNSResolver(resolver){return resolver&&"function"==typeof resolver.getNamespace?function makeNSResolverFromObject(obj){return makeNSResolverFromFunction(obj.getNamespace.bind(obj))}(resolver):"function"==typeof resolver?makeNSResolverFromFunction(resolver):"object"==typeof resolver?function makeNSResolverFromMap(map){return makeNSResolverFromFunction((function(prefix){return map[prefix]}))}(resolver):defaultNSResolver}function convertValue(value){if(null==value||value instanceof XString||value instanceof XBoolean||value instanceof XNumber||value instanceof XNodeSet)return value;switch(typeof value){case"string":return new XString(value);case"boolean":return new XBoolean(value);case"number":return new XNumber(value)}var ns=new XNodeSet;return ns.addArray([].concat(value)),ns}function makeFunctionResolverFromFunction(func){return{getFunction:function(name,namespace){var found=func(name,namespace);return found?function makeEvaluator(func){return function(context){var args=Array.prototype.slice.call(arguments,1).map((function(arg){return arg.evaluate(context)}));return convertValue(func.apply(this,[].concat(context,args)))}}(found):defaultFunctionResolver.getFunction(name,namespace)}}}function makeFunctionResolver(resolver){return resolver&&"function"==typeof resolver.getFunction?function makeFunctionResolverFromObject(obj){return makeFunctionResolverFromFunction(obj.getFunction.bind(obj))}(resolver):"function"==typeof resolver?makeFunctionResolverFromFunction(resolver):"object"==typeof resolver?function makeFunctionResolverFromMap(map){return makeFunctionResolverFromFunction((function(name){return map[name]}))}(resolver):defaultFunctionResolver}function makeVariableResolverFromFunction(func){return{getVariable:function(name,namespace){return convertValue(func(name,namespace))}}}function copyIfPresent(prop,dest,source){prop in source&&(dest[prop]=source[prop])}function makeContext(options){var context=new XPathContext;return options?(context.namespaceResolver=makeNSResolver(options.namespaces),context.functionResolver=makeFunctionResolver(options.functions),context.variableResolver=function makeVariableResolver(resolver){if(resolver){if("function"==typeof resolver.getVariable)return makeVariableResolverFromFunction(resolver.getVariable.bind(resolver));if("function"==typeof resolver)return makeVariableResolverFromFunction(resolver);if("object"==typeof resolver)return makeVariableResolverFromFunction((function(name){return resolver[name]}))}return defaultVariableResolver}(options.variables),context.expressionContextNode=options.node,copyIfPresent("allowAnyNamespaceForNoPrefix",context,options),copyIfPresent("isHtml",context,options)):context.namespaceResolver=defaultNSResolver,context}var evaluatorPrototype={evaluate:function(options){return function evaluate(parsedExpression,options){var context=makeContext(options);return parsedExpression.evaluate(context)}(this.expression,options)},evaluateNumber:function(options){return this.evaluate(options).numberValue()},evaluateString:function(options){return this.evaluate(options).stringValue()},evaluateBoolean:function(options){return this.evaluate(options).booleanValue()},evaluateNodeSet:function(options){return this.evaluate(options).nodeset()},select:function(options){return this.evaluateNodeSet(options).toArray()},select1:function(options){return this.select(options)[0]}};exports.parse=function parse(xpath){var parsed=parser.parse(xpath);return Object.create(evaluatorPrototype,{expression:{value:parsed}})}}(),assign(exports,{XPath:XPath,XPathParser:XPathParser,XPathResult:XPathResult,Step:Step,PathExpr:PathExpr,NodeTest:NodeTest,LocationPath:LocationPath,OrOperation:OrOperation,AndOperation:AndOperation,BarOperation:BarOperation,EqualsOperation:EqualsOperation,NotEqualOperation:NotEqualOperation,LessThanOperation:LessThanOperation,GreaterThanOperation:GreaterThanOperation,LessThanOrEqualOperation:LessThanOrEqualOperation,GreaterThanOrEqualOperation:GreaterThanOrEqualOperation,PlusOperation:PlusOperation,MinusOperation:MinusOperation,MultiplyOperation:MultiplyOperation,DivOperation:DivOperation,ModOperation:ModOperation,UnaryMinusOperation:UnaryMinusOperation,FunctionCall:FunctionCall,VariableReference:VariableReference,XPathContext:XPathContext,XNodeSet:XNodeSet,XBoolean:XBoolean,XString:XString,XNumber:XNumber,NamespaceResolver:NamespaceResolver,FunctionResolver:FunctionResolver,VariableResolver:VariableResolver,Utilities:Utilities}),exports.select=function(e,doc,single){return exports.selectWithResolver(e,doc,null,single)},exports.useNamespaces=function(mappings){var resolver={mappings:mappings||{},lookupNamespaceURI:function(prefix){return this.mappings[prefix]}};return function(e,doc,single){return exports.selectWithResolver(e,doc,resolver,single)}},exports.selectWithResolver=function(e,doc,resolver,single){var expression=new XPathExpression(e,resolver,new XPathParser),type=XPathResult.ANY_TYPE,result=expression.evaluate(doc,type,null);return result.resultType==XPathResult.STRING_TYPE?result=result.stringValue:result.resultType==XPathResult.NUMBER_TYPE?result=result.numberValue:result.resultType==XPathResult.BOOLEAN_TYPE?result=result.booleanValue:(result=result.nodes,single&&(result=result[0])),result},exports.select1=function(e,doc){return exports.select(e,doc,!0)};var isNodeLike=function(value){return value&&"number"==typeof value.nodeType&&Number.isInteger(value.nodeType)&&value.nodeType>=1&&value.nodeType<=11&&"string"==typeof value.nodeName},isNodeOfType=function(type){return function(value){return isNodeLike(value)&&value.nodeType===type}};assign(exports,{isNodeLike:isNodeLike,isArrayOfNodes:function(value){return Array.isArray(value)&&value.every(isNodeLike)},isElement:isNodeOfType(NodeTypes_ELEMENT_NODE),isAttribute:isNodeOfType(NodeTypes_ATTRIBUTE_NODE),isTextNode:isNodeOfType(NodeTypes_TEXT_NODE),isCDATASection:isNodeOfType(NodeTypes_CDATA_SECTION_NODE),isProcessingInstruction:isNodeOfType(NodeTypes_PROCESSING_INSTRUCTION_NODE),isComment:isNodeOfType(NodeTypes_COMMENT_NODE),isDocumentNode:isNodeOfType(NodeTypes_DOCUMENT_NODE),isDocumentTypeNode:isNodeOfType(NodeTypes_DOCUMENT_TYPE_NODE),isDocumentFragment:isNodeOfType(NodeTypes_DOCUMENT_FRAGMENT_NODE)})}(exports)}(xpath)),xpath}var hasRequiredConventions,hasRequiredDom,lib$1={},dom={},conventions={};function requireConventions(){if(hasRequiredConventions)return conventions;function freeze(object,oc){return void 0===oc&&(oc=Object),oc&&"function"==typeof oc.freeze?oc.freeze(object):object}hasRequiredConventions=1;var MIME_TYPE=freeze({HTML:"text/html",isHTML:function(value){return value===MIME_TYPE.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),NAMESPACE=freeze({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(uri){return uri===NAMESPACE.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});return conventions.assign=function assign(target,source){if(null===target||"object"!=typeof target)throw new TypeError("target is not an object");for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key]);return target},conventions.find=function find(list,predicate,ac){if(void 0===ac&&(ac=Array.prototype),list&&"function"==typeof ac.find)return ac.find.call(list,predicate);for(var i=0;i<list.length;i++)if(Object.prototype.hasOwnProperty.call(list,i)){var item=list[i];if(predicate.call(void 0,item,i,list))return item}},conventions.freeze=freeze,conventions.MIME_TYPE=MIME_TYPE,conventions.NAMESPACE=NAMESPACE,conventions}function requireDom(){if(hasRequiredDom)return dom;hasRequiredDom=1;var conventions=requireConventions(),find=conventions.find,NAMESPACE=conventions.NAMESPACE;function notEmptyString(input){return""!==input}function orderedSetReducer(current,element){return current.hasOwnProperty(element)||(current[element]=!0),current}function toOrderedSet(input){if(!input)return[];var list=function splitOnASCIIWhitespace(input){return input?input.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}(input);return Object.keys(list.reduce(orderedSetReducer,{}))}function copy(src,dest){for(var p in src)Object.prototype.hasOwnProperty.call(src,p)&&(dest[p]=src[p])}function _extends(Class,Super){var pt=Class.prototype;if(!(pt instanceof Super)){function t(){}t.prototype=Super.prototype,copy(pt,t=new t),Class.prototype=pt=t}pt.constructor!=Class&&("function"!=typeof Class&&console.error("unknown Class:"+Class),pt.constructor=Class)}var NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={};ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]="Index size error",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]="DOMString size error",2);var HIERARCHY_REQUEST_ERR=ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]="Hierarchy request error",3);ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]="Wrong document",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]="Invalid character",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]="No data allowed",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]="No modification allowed",7);var NOT_FOUND_ERR=ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]="Not found",8);ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]="Not supported",9);var INUSE_ATTRIBUTE_ERR=ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]="Attribute in use",10);function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+": "+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!==inc){var ls=list._refresh(list._node);if(__set__(list,"length",ls.length),!list.$$length||ls.length<list.$$length)for(var i=ls.length;i in list;i++)Object.prototype.hasOwnProperty.call(list,i)&&delete list[i];copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&(el._nsMap[newAttr.prefix?newAttr.localName:""]=newAttr.value)}(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw new DOMException(NOT_FOUND_ERR,new Error(el.tagName+"@"+attr));for(var lastIndex=list.length-1;i<lastIndex;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(){}function Node(){}function _xmlEncoder(c){return("<"==c?"&lt;":">"==c&&"&gt;")||"&"==c&&"&amp;"||'"'==c&&"&quot;"||"&#"+c.charCodeAt()+";"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do{if(_visitNode(node,callback))return!0}while(node=node.nextSibling)}function Document(){this.ownerDocument=this}function _onRemoveAttribute(doc,el,newAttr,remove){doc&&doc._inc++,newAttr.namespaceURI===NAMESPACE.XMLNS&&delete el._nsMap[newAttr.prefix?newAttr.localName:""]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i,delete cs[cs.length]}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,child.parentNode=null,child.previousSibling=null,child.nextSibling=null,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function isDocTypeNode(node){return node&&node.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(node){return node&&node.nodeType===Node.ELEMENT_NODE}function isTextNode(node){return node&&node.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,isElementNode)||isDocTypeNode(child))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function isElementReplacementPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,(function hasElementChildThatIsNotChild(node){return isElementNode(node)&&node!==child})))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function assertPreInsertionValidity1to5(parent,node,child){if(!function hasValidParentNodeType(node){return node&&(node.nodeType===Node.DOCUMENT_NODE||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.ELEMENT_NODE)}(parent))throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+parent.nodeType);if(child&&child.parentNode!==parent)throw new DOMException(NOT_FOUND_ERR,"child not in parent");if(!function hasInsertableNodeType(node){return node&&(isElementNode(node)||isTextNode(node)||isDocTypeNode(node)||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.COMMENT_NODE||node.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}(node)||isDocTypeNode(node)&&parent.nodeType!==Node.DOCUMENT_NODE)throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected node type "+node.nodeType+" for parent node type "+parent.nodeType)}function assertPreInsertionValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,isDocTypeNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)<parentChildNodes.indexOf(child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element");if(!child&&parentElementChild)throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can not be appended since element is present")}}function assertPreReplacementValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){function hasDoctypeChildThatIsNotChild(node){return isDocTypeNode(node)&&node!==child}if(find(parentChildNodes,hasDoctypeChildThatIsNotChild))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)<parentChildNodes.indexOf(child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element")}}function _insertBefore(parent,node,child,_inDocumentAssertion){assertPreInsertionValidity1to5(parent,node,child),parent.nodeType===Node.DOCUMENT_NODE&&(_inDocumentAssertion||assertPreInsertionValidityInDocument)(parent,node,child);var cp=node.parentNode;if(cp&&cp.removeChild(node),node.nodeType===DOCUMENT_FRAGMENT_NODE){var newFirst=node.firstChild;if(null==newFirst)return node;var newLast=node.lastChild}else newFirst=newLast=node;var pre=child?child.previousSibling:parent.lastChild;newFirst.previousSibling=pre,newLast.nextSibling=child,pre?pre.nextSibling=newFirst:parent.firstChild=newFirst,null==child?parent.lastChild=newLast:child.previousSibling=newLast;do{newFirst.parentNode=parent}while(newFirst!==newLast&&(newFirst=newFirst.nextSibling));return _onUpdateChild(parent.ownerDocument||parent,parent),node.nodeType==DOCUMENT_FRAGMENT_NODE&&(node.firstChild=node.lastChild=null),node}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function nodeSerializeToString(isHtml,nodeFilter){var buf=[],refNode=9==this.nodeType&&this.documentElement||this,prefix=refNode.prefix,uri=refNode.namespaceURI;if(uri&&null==prefix&&null==(prefix=refNode.lookupPrefix(uri)))var visibleNamespaces=[{namespace:uri,prefix:null}];return serializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces),buf.join("")}function needNamespaceDefine(node,isHTML,visibleNamespaces){var prefix=node.prefix||"",uri=node.namespaceURI;if(!uri)return!1;if("xml"===prefix&&uri===NAMESPACE.XML||uri===NAMESPACE.XMLNS)return!1;for(var i=visibleNamespaces.length;i--;){var ns=visibleNamespaces[i];if(ns.prefix===prefix)return ns.namespace!==uri}return!0}function addSerializedAttribute(buf,qualifiedName,value){buf.push(" ",qualifiedName,'="',value.replace(/[<>&"\t\n\r]/g,_xmlEncoder),'"')}function serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){if(visibleNamespaces||(visibleNamespaces=[]),nodeFilter){if(!(node=nodeFilter(node)))return;if("string"==typeof node)return void buf.push(node)}switch(node.nodeType){case ELEMENT_NODE:var attrs=node.attributes,len=attrs.length,child=node.firstChild,nodeName=node.tagName,prefixedNodeName=nodeName;if(!(isHTML=NAMESPACE.isHTML(node.namespaceURI)||isHTML)&&!node.prefix&&node.namespaceURI){for(var defaultNS,ai=0;ai<attrs.length;ai++)if("xmlns"===attrs.item(ai).name){defaultNS=attrs.item(ai).value;break}if(!defaultNS)for(var nsi=visibleNamespaces.length-1;nsi>=0;nsi--){if(""===(namespace=visibleNamespaces[nsi]).prefix&&namespace.namespace===node.namespaceURI){defaultNS=namespace.namespace;break}}if(defaultNS!==node.namespaceURI)for(nsi=visibleNamespaces.length-1;nsi>=0;nsi--){var namespace;if((namespace=visibleNamespaces[nsi]).namespace===node.namespaceURI){namespace.prefix&&(prefixedNodeName=namespace.prefix+":"+nodeName);break}}}buf.push("<",prefixedNodeName);for(var i=0;i<len;i++){"xmlns"==(attr=attrs.item(i)).prefix?visibleNamespaces.push({prefix:attr.localName,namespace:attr.value}):"xmlns"==attr.nodeName&&visibleNamespaces.push({prefix:"",namespace:attr.value})}for(i=0;i<len;i++){var attr,prefix,uri;if(needNamespaceDefine(attr=attrs.item(i),0,visibleNamespaces))addSerializedAttribute(buf,(prefix=attr.prefix||"")?"xmlns:"+prefix:"xmlns",uri=attr.namespaceURI),visibleNamespaces.push({prefix:prefix,namespace:uri});serializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces)}if(nodeName===prefixedNodeName&&needNamespaceDefine(node,0,visibleNamespaces))addSerializedAttribute(buf,(prefix=node.prefix||"")?"xmlns:"+prefix:"xmlns",uri=node.namespaceURI),visibleNamespaces.push({prefix:prefix,namespace:uri});if(child||isHTML&&!/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){if(buf.push(">"),isHTML&&/^script$/i.test(nodeName))for(;child;)child.data?buf.push(child.data):serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;else for(;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;buf.push("</",prefixedNodeName,">")}else buf.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(child=node.firstChild;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;return;case ATTRIBUTE_NODE:return addSerializedAttribute(buf,node.name,node.value);case TEXT_NODE:return buf.push(node.data.replace(/[<&>]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push("<![CDATA[",node.data,"]]>");case COMMENT_NODE:return buf.push("\x3c!--",node.data,"--\x3e");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push("<!DOCTYPE ",node.name),pubid)buf.push(" PUBLIC ",pubid),sysid&&"."!=sysid&&buf.push(" ",sysid),buf.push(">");else if(sysid&&"."!=sysid)buf.push(" SYSTEM ",sysid,">");else{var sub=node.internalSubset;sub&&buf.push(" [",sub,"]"),buf.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push("<?",node.target," ",node.data,"?>");case ENTITY_REFERENCE_NODE:return buf.push("&",node.nodeName,";");default:buf.push("??",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:(node2=node.cloneNode(!1)).ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node)if(Object.prototype.hasOwnProperty.call(node,n)){var v=node[n];"object"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;i<len;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]="Invalid state",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]="Syntax error",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]="Invalid modification",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]="Invalid namespace",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]="Invalid access",15),DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return index>=0&&index<this.length?this[index]:null},toString:function(isHTML,nodeFilter){for(var buf=[],i=0;i<this.length;i++)serializeToString(this[i],buf,isHTML,nodeFilter);return buf.join("")},filter:function(predicate){return Array.prototype.filter.call(this,predicate)},indexOf:function(item){return Array.prototype.indexOf.call(this,item)}},LiveNodeList.prototype.item=function(i){return _updateLiveList(this),this[i]||null},_extends(LiveNodeList,NodeList),NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(key){for(var i=this.length;i--;){var attr=this[i];if(attr.nodeName==key)return attr}},setNamedItem:function(attr){var el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);var oldAttr=this.getNamedItem(attr.nodeName);return _addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},setNamedItemNS:function(attr){var oldAttr,el=attr.ownerElement;if(el&&el!=this._ownerElement)throw new DOMException(INUSE_ATTRIBUTE_ERR);return oldAttr=this.getNamedItemNS(attr.namespaceURI,attr.localName),_addNamedNode(this._ownerElement,this,attr,oldAttr),oldAttr},removeNamedItem:function(key){var attr=this.getNamedItem(key);return _removeNamedNode(this._ownerElement,this,attr),attr},removeNamedItemNS:function(namespaceURI,localName){var attr=this.getNamedItemNS(namespaceURI,localName);return _removeNamedNode(this._ownerElement,this,attr),attr},getNamedItemNS:function(namespaceURI,localName){for(var i=this.length;i--;){var node=this[i];if(node.localName==localName&&node.namespaceURI==namespaceURI)return node}return null}},DOMImplementation.prototype={hasFeature:function(feature,version){return!0},createDocument:function(namespaceURI,qualifiedName,doctype){var doc=new Document;if(doc.implementation=this,doc.childNodes=new NodeList,doc.doctype=doctype||null,doctype&&doc.appendChild(doctype),qualifiedName){var root=doc.createElementNS(namespaceURI,qualifiedName);doc.appendChild(root)}return doc},createDocumentType:function(qualifiedName,publicId,systemId){var node=new DocumentType;return node.name=qualifiedName,node.nodeName=qualifiedName,node.publicId=publicId||"",node.systemId=systemId||"",node}},Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(newChild,refChild){return _insertBefore(this,newChild,refChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),oldChild&&this.removeChild(oldChild)},removeChild:function(oldChild){return _removeChild(this,oldChild)},appendChild:function(newChild){return this.insertBefore(newChild,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(deep){return cloneNode(this.ownerDocument||this,this,deep)},normalize:function(){for(var child=this.firstChild;child;){var next=child.nextSibling;next&&next.nodeType==TEXT_NODE&&child.nodeType==TEXT_NODE?(this.removeChild(next),child.appendData(next.data)):(child.normalize(),child=next)}},isSupported:function(feature,version){return this.ownerDocument.implementation.hasFeature(feature,version)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(Object.prototype.hasOwnProperty.call(map,n)&&map[n]===namespaceURI)return n;el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&Object.prototype.hasOwnProperty.call(map,prefix))return map[prefix];el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){return null==this.lookupPrefix(namespaceURI)}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return _insertBefore(this,newChild,refChild),newChild.ownerDocument=this,null===this.documentElement&&newChild.nodeType===ELEMENT_NODE&&(this.documentElement=newChild),newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),newChild.ownerDocument=this,oldChild&&this.removeChild(oldChild),isElementNode(newChild)&&(this.documentElement=newChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,(function(node){if(node.nodeType==ELEMENT_NODE&&node.getAttribute("id")==id)return rtv=node,!0})),rtv},getElementsByClassName:function(classNames){var classNamesSet=toOrderedSet(classNames);return new LiveNodeList(this,(function(base){var ls=[];return classNamesSet.length>0&&_visitNode(base.documentElement,(function(node){if(node!==base&&node.nodeType===ELEMENT_NODE){var nodeClassNames=node.getAttribute("class");if(nodeClassNames){var matches=classNames===nodeClassNames;if(!matches){var nodeClassNamesSet=toOrderedSet(nodeClassNames);matches=classNamesSet.every(function arrayIncludes(list){return function(element){return list&&-1!==list.indexOf(element)}}(nodeClassNamesSet))}matches&&ls.push(node)}}})),ls}))},createElement:function(tagName){var node=new Element;return node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.localName=tagName,node.childNodes=new NodeList,(node.attributes=new NamedNodeMap)._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.nodeName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(":"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(":");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||""},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):function _appendSingleChild(parentNode,newChild){return newChild.parentNode&&newChild.parentNode.removeChild(newChild),newChild.parentNode=parentNode,newChild.previousSibling=parentNode.lastChild,newChild.nextSibling=null,newChild.previousSibling?newChild.previousSibling.nextSibling=newChild:parentNode.firstChild=newChild,parentNode.lastChild=newChild,_onUpdateChild(parentNode.ownerDocument,parentNode,newChild),newChild}(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||""},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,(function(base){var ls=[];return _visitNode(base,(function(node){node===base||node.nodeType!=ELEMENT_NODE||"*"!==tagName&&node.tagName!=tagName||ls.push(node)})),ls}))},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,(function(base){var ls=[];return _visitNode(base,(function(node){node===base||node.nodeType!==ELEMENT_NODE||"*"!==namespaceURI&&node.namespaceURI!==namespaceURI||"*"!==localName&&node.localName!=localName||ls.push(node)})),ls}))}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(newChild){throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])},deleteData:function(offset,count){this.replaceData(offset,count,"")},replaceData:function(offset,count,text){text=this.data.substring(0,offset)+text+this.data.substring(offset+count),this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node,isHtml,nodeFilter){return nodeSerializeToString.call(node,isHtml,nodeFilter)},Node.prototype.toString=nodeSerializeToString;try{if(Object.defineProperty){function getTextContent(node){switch(node.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join("");default:return node.nodeValue}}Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(data||String(data))&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=data,this.nodeValue=data}}}),__set__=function(object,key,value){object["$$"+key]=value}}}catch(e){}return dom.DocumentType=DocumentType,dom.DOMException=DOMException,dom.DOMImplementation=DOMImplementation,dom.Element=Element,dom.Node=Node,dom.NodeList=NodeList,dom.XMLSerializer=XMLSerializer,dom}var hasRequiredEntities,domParser={},entities={};function requireEntities(){return hasRequiredEntities||(hasRequiredEntities=1,function(exports){var freeze=requireConventions().freeze;exports.XML_ENTITIES=freeze({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),exports.HTML_ENTITIES=freeze({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),exports.entityMap=exports.HTML_ENTITIES}(entities)),entities}var hasRequiredSax,hasRequiredDomParser,hasRequiredLib$2,sax={};function requireSax(){if(hasRequiredSax)return sax;hasRequiredSax=1;var NAMESPACE=requireConventions().NAMESPACE,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]/,nameChar=new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),tagNamePattern=new RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$");function ParseError(message,locator){this.message=message,this.locator=locator,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}function XMLReader(){}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){function addAttribute(qname,value,startIndex){el.attributeNames.hasOwnProperty(qname)&&errorHandler.fatalError("Attribute "+qname+" redefined"),el.addValue(qname,value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,entityReplacer),startIndex)}for(var attrName,p=++start,s=0;;){var c=source.charAt(p);switch(c){case"=":if(1===s)attrName=source.slice(start,p),s=3;else{if(2!==s)throw new Error("attribute equal must after attrName");s=3}break;case"'":case'"':if(3===s||1===s){if(1===s&&(errorHandler.warning('attribute value must after "="'),attrName=source.slice(start,p)),start=p+1,!((p=source.indexOf(c,start))>0))throw new Error("attribute value no end '"+c+"' match");addAttribute(attrName,value=source.slice(start,p),start-1),s=5}else{if(4!=s)throw new Error('attribute value must after "="');addAttribute(attrName,value=source.slice(start,p),start),errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+")!!"),start=p+1,s=5}break;case"/":switch(s){case 0:el.setTagName(source.slice(start,p));case 5:case 6:case 7:s=7,el.closed=!0;case 4:case 1:break;case 2:el.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return errorHandler.error("unexpected end of input"),0==s&&el.setTagName(source.slice(start,p)),p;case">":switch(s){case 0:el.setTagName(source.slice(start,p));case 5:case 6:case 7:break;case 4:case 1:"/"===(value=source.slice(start,p)).slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case 2:2===s&&(value=attrName),4==s?(errorHandler.warning('attribute "'+value+'" missed quot(")!'),addAttribute(attrName,value,start)):(NAMESPACE.isHTML(currentNSMap[""])&&value.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!'),addAttribute(value,value,start));break;case 3:throw new Error("attribute value missed!!")}return p;case"€":c=" ";default:if(c<=" ")switch(s){case 0:el.setTagName(source.slice(start,p)),s=6;break;case 1:attrName=source.slice(start,p),s=2;break;case 4:var value=source.slice(start,p);errorHandler.warning('attribute "'+value+'" missed quot(")!!'),addAttribute(attrName,value,start);case 5:s=6}else switch(s){case 2:el.tagName,NAMESPACE.isHTML(currentNSMap[""])&&attrName.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead2!!'),addAttribute(attrName,attrName,start),start=p,s=1;break;case 5:errorHandler.warning('attribute space is required"'+attrName+'"!!');case 6:s=1,start=p;break;case 3:s=4,start=p;break;case 7:throw new Error("elements closed character '/' and '>' must be connected to")}}p++}}function appendElement(el,domBuilder,currentNSMap){for(var tagName=el.tagName,localNSMap=null,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value;if((nsp=qName.indexOf(":"))>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,!1!==nsPrefix&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=NAMESPACE.XMLNS,domBuilder.startPrefixMapping(nsPrefix,value))}for(i=el.length;i--;){(prefix=(a=el[i]).prefix)&&("xml"===prefix&&(a.uri=NAMESPACE.XML),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix||""]))}var nsp;(nsp=tagName.indexOf(":"))>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),!el.closed)return el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,!0;if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("</"+tagName+">",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&((pos=source.lastIndexOf("</"+tagName+">"))<elStartEnd&&(pos=source.lastIndexOf("</"+tagName)),closeMap[tagName]=pos),pos<elStartEnd}function _copy(source,target){for(var n in source)Object.prototype.hasOwnProperty.call(source,n)&&(target[n]=source[n])}function parseDCC(source,start,domBuilder,errorHandler){if("-"===source.charAt(start+2))return"-"===source.charAt(start+3)?(end=source.indexOf("--\x3e",start+4))>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1):-1;if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=function split(source,start){var match,buf=[],reg=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;reg.lastIndex=start,reg.exec(source);for(;match=reg.exec(source);)if(buf.push(match),match[1])return buf}(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=!1,sysid=!1;len>3&&(/^public$/i.test(matchs[2][0])?(pubid=matchs[3][0],sysid=len>4&&matchs[4][0]):/^system$/i.test(matchs[2][0])&&(sysid=matchs[3][0]));var lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid,sysid),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){this.attributeNames={}}return ParseError.prototype=new Error,ParseError.prototype.name=ParseError.name,XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){var surrogate1=55296+((code-=65536)>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return Object.hasOwnProperty.call(entityMap,k)?entityMap[k]:"#"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace("x","0x"))):(errorHandler.error("entity not found:"+a),a)}function appendText(end){if(end>start){var xt=source.substring(start,end).replace(/&#?\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}}function position(p,m){for(;p>=lineEnd&&(m=linePattern.exec(source));)lineStart=m.index,lineEnd=lineStart+m[0].length,locator.lineNumber++;locator.columnNumber=p-lineStart+1}var lineStart=0,lineEnd=0,linePattern=/.*(?:\r\n?|\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;for(;;){try{var tagStart=source.indexOf("<",start);if(tagStart<0){if(!source.substr(start).match(/^\s*$/)){var doc=domBuilder.doc,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(tagStart>start&&appendText(tagStart),source.charAt(tagStart+1)){case"/":var end=source.indexOf(">",tagStart+3),tagName=source.substring(tagStart+2,end).replace(/[ \t\n\r]+$/g,""),config=parseStack.pop();end<0?(tagName=source.substring(tagStart+2).replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" is not complete:"+config.tagName),end=tagStart+1+tagName.length):tagName.match(/\s</)&&(tagName=tagName.replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" maybe not complete"),end=tagStart+1+tagName.length);var localNSMap=config.localNSMap,endMatch=config.tagName==tagName;if(endMatch||config.tagName&&config.tagName.toLowerCase()==tagName.toLowerCase()){if(domBuilder.endElement(config.uri,config.localName,tagName),localNSMap)for(var prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix);endMatch||errorHandler.fatalError("end tag name: "+tagName+" is not match the current start tagName:"+config.tagName)}else parseStack.push(config);end++;break;case"?":locator&&position(tagStart),end=parseInstruction(source,tagStart,domBuilder);break;case"!":locator&&position(tagStart),end=parseDCC(source,tagStart,domBuilder,errorHandler);break;default:locator&&position(tagStart);var el=new ElementAttributes,currentNSMap=parseStack[parseStack.length-1].currentNSMap,len=(end=parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler),el.length);if(!el.closed&&fixSelfClosed(source,end,el.tagName,closeMap)&&(el.closed=!0,entityMap.nbsp||errorHandler.warning("unclosed xml attribute")),locator&&len){for(var locator2=copyLocator(locator,{}),i=0;i<len;i++){var a=el[i];position(a.offset),a.locator=copyLocator(locator,{})}domBuilder.locator=locator2,appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el),domBuilder.locator=locator}else appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el);NAMESPACE.isHTML(el.uri)&&!el.closed?end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder):end++}}catch(e){if(e instanceof ParseError)throw e;errorHandler.error("element parse error: "+e),end=-1}end>start?start=end:appendText(Math.max(tagStart,start)+1)}}(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw new Error("invalid tagName:"+tagName);this.tagName=tagName},addValue:function(qName,value,offset){if(!tagNamePattern.test(qName))throw new Error("invalid attribute:"+qName);this.attributeNames[qName]=this.length,this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getLocator:function(i){return this[i].locator},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},sax.XMLReader=XMLReader,sax.ParseError=ParseError,sax}function requireDomParser(){if(hasRequiredDomParser)return domParser;hasRequiredDomParser=1;var conventions=requireConventions(),dom=requireDom(),entities=requireEntities(),sax=requireSax(),DOMImplementation=dom.DOMImplementation,NAMESPACE=conventions.NAMESPACE,ParseError=sax.ParseError,XMLReader=sax.XMLReader;function normalizeLineEndings(input){return input.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function DOMParser(options){this.options=options||{locator:{}}}function DOMHandler(){this.cdata=!1}function position(locator,node){node.lineNumber=locator.lineNumber,node.columnNumber=locator.columnNumber}function _locator(l){if(l)return"\n@"+(l.systemId||"")+"#[line:"+l.lineNumber+",col:"+l.columnNumber+"]"}function _toString(chars,start,length){return"string"==typeof chars?chars.substr(start,length):chars.length>=start+length||start?new java.lang.String(chars,start,length)+"":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.doc.appendChild(node)}return DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},isHTML=/\/x?html?$/.test(mimeType),entityMap=isHTML?entities.HTML_ENTITIES:entities.XML_ENTITIES;locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=function buildErrorHandler(errorImpl,domBuilder,locator){if(!errorImpl){if(domBuilder instanceof DOMHandler)return domBuilder;errorImpl=domBuilder}var errorHandler={},isCallback=errorImpl instanceof Function;function build(key){var fn=errorImpl[key];!fn&&isCallback&&(fn=2==errorImpl.length?function(msg){errorImpl(key,msg)}:errorImpl),errorHandler[key]=fn&&function(msg){fn("[xmldom "+key+"]\t"+msg+_locator(locator))}||function(){}}return locator=locator||{},build("warning"),build("error"),build("fatalError"),errorHandler}(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,isHTML&&(defaultNSMap[""]=NAMESPACE.HTML),defaultNSMap.xml=defaultNSMap.xml||NAMESPACE.XML;var normalize=options.normalizeLineEndings||normalizeLineEndings;return source&&"string"==typeof source?sax.parse(normalize(source),defaultNSMap,entityMap):sax.errorHandler.error("invalid doc source"),domBuilder.doc},DOMHandler.prototype={startDocument:function(){this.doc=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.doc,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;i<len;i++){namespaceURI=attrs.getURI(i);var value=attrs.getValue(i),attr=(qName=attrs.getQName(i),doc.createAttributeNS(namespaceURI,qName));this.locator&&position(attrs.getLocator(i),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(namespaceURI,localName,qName){var current=this.currentElement;current.tagName,this.currentElement=current.parentNode},startPrefixMapping:function(prefix,uri){},endPrefixMapping:function(prefix){},processingInstruction:function(target,data){var ins=this.doc.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(ch,start,length){},characters:function(chars,start,length){if(chars=_toString.apply(this,arguments)){if(this.cdata)var charNode=this.doc.createCDATASection(chars);else charNode=this.doc.createTextNode(chars);this.currentElement?this.currentElement.appendChild(charNode):/^\s*$/.test(chars)&&this.doc.appendChild(charNode),this.locator&&position(this.locator,charNode)}},skippedEntity:function(name){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars,start,length){chars=_toString.apply(this,arguments);var comm=this.doc.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.doc.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt),this.doc.doctype=dt}},warning:function(error){console.warn("[xmldom warning]\t"+error,_locator(this.locator))},error:function(error){console.error("[xmldom error]\t"+error,_locator(this.locator))},fatalError:function(error){throw new ParseError(error,this.locator)}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,(function(key){DOMHandler.prototype[key]=function(){return null}})),domParser.__DOMHandler=DOMHandler,domParser.normalizeLineEndings=normalizeLineEndings,domParser.DOMParser=DOMParser,domParser}var hasRequiredDist,hasRequiredUtils$2,utils$2={},dist={};function requireDist(){if(hasRequiredDist)return dist;var NodeTypes;function isNodeLike(value){return value&&"object"==typeof value&&Number.isInteger(value.nodeType)&&value.nodeType>=1&&value.nodeType<=11&&"string"==typeof value.nodeName&&"function"==typeof value.appendChild&&"function"==typeof value.removeChild}function isArrayOfNodes(value){return Array.isArray(value)&&value.every(isNodeLike)}function isNodeOfType(type,value){return isNodeLike(value)&&value.nodeType===type}function assertIsNodeOfType(type,value){const typeName=Object.keys(NodeTypes).find((key=>NodeTypes[key]===type));if(!isNodeOfType(type,value))throw new Error(`Value is not of type ${typeName}`)}hasRequiredDist=1,Object.defineProperty(dist,"__esModule",{value:!0}),dist.assertIsDocumentFragmentNode=dist.assertIsDocumentTypeNode=dist.assertIsDocumentNode=dist.assertIsCommentNode=dist.assertIsProcessingInstructionNode=dist.assertIsCDATASectionNode=dist.assertIsTextNode=dist.assertIsAttributeNode=dist.assertIsElementNode=dist.isDocumentFragmentNode=dist.isDocumentTypeNode=dist.isDocumentNode=dist.isCommentNode=dist.isProcessingInstructionNode=dist.isCDATASectionNode=dist.isTextNode=dist.isAttributeNode=dist.isElementNode=dist.assertIsArrayOfNodes=dist.isArrayOfNodes=dist.assertIsNodeLike=dist.isNodeLike=dist.NodeTypes=void 0,function(NodeTypes){NodeTypes[NodeTypes.ELEMENT_NODE=1]="ELEMENT_NODE",NodeTypes[NodeTypes.ATTRIBUTE_NODE=2]="ATTRIBUTE_NODE",NodeTypes[NodeTypes.TEXT_NODE=3]="TEXT_NODE",NodeTypes[NodeTypes.CDATA_SECTION_NODE=4]="CDATA_SECTION_NODE",NodeTypes[NodeTypes.PROCESSING_INSTRUCTION_NODE=7]="PROCESSING_INSTRUCTION_NODE",NodeTypes[NodeTypes.COMMENT_NODE=8]="COMMENT_NODE",NodeTypes[NodeTypes.DOCUMENT_NODE=9]="DOCUMENT_NODE",NodeTypes[NodeTypes.DOCUMENT_TYPE_NODE=10]="DOCUMENT_TYPE_NODE",NodeTypes[NodeTypes.DOCUMENT_FRAGMENT_NODE=11]="DOCUMENT_FRAGMENT_NODE"}(NodeTypes||(dist.NodeTypes=NodeTypes={})),dist.isNodeLike=isNodeLike,dist.assertIsNodeLike=function assertIsNodeLike(value){if(!isNodeLike(value))throw new Error(`Value is not a Node-like object. Received: ${value}`)},dist.isArrayOfNodes=isArrayOfNodes,dist.assertIsArrayOfNodes=function assertIsArrayOfNodes(value){if(!isArrayOfNodes(value))throw new Error("Value is not an array of Nodes")};dist.isElementNode=value=>isNodeOfType(NodeTypes.ELEMENT_NODE,value);dist.isAttributeNode=value=>isNodeOfType(NodeTypes.ATTRIBUTE_NODE,value);dist.isTextNode=value=>isNodeOfType(NodeTypes.TEXT_NODE,value);dist.isCDATASectionNode=value=>isNodeOfType(NodeTypes.CDATA_SECTION_NODE,value);dist.isProcessingInstructionNode=value=>isNodeOfType(NodeTypes.PROCESSING_INSTRUCTION_NODE,value);dist.isCommentNode=value=>isNodeOfType(NodeTypes.COMMENT_NODE,value);dist.isDocumentNode=value=>isNodeOfType(NodeTypes.DOCUMENT_NODE,value);dist.isDocumentTypeNode=value=>isNodeOfType(NodeTypes.DOCUMENT_TYPE_NODE,value);dist.isDocumentFragmentNode=value=>isNodeOfType(NodeTypes.DOCUMENT_FRAGMENT_NODE,value);dist.assertIsElementNode=value=>{assertIsNodeOfType(NodeTypes.ELEMENT_NODE,value)};dist.assertIsAttributeNode=value=>assertIsNodeOfType(NodeTypes.ATTRIBUTE_NODE,value);dist.assertIsTextNode=value=>assertIsNodeOfType(NodeTypes.TEXT_NODE,value);dist.assertIsCDATASectionNode=value=>assertIsNodeOfType(NodeTypes.CDATA_SECTION_NODE,value);dist.assertIsProcessingInstructionNode=value=>assertIsNodeOfType(NodeTypes.PROCESSING_INSTRUCTION_NODE,value);dist.assertIsCommentNode=value=>assertIsNodeOfType(NodeTypes.COMMENT_NODE,value);dist.assertIsDocumentNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_NODE,value);dist.assertIsDocumentTypeNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_TYPE_NODE,value);return dist.assertIsDocumentFragmentNode=value=>assertIsNodeOfType(NodeTypes.DOCUMENT_FRAGMENT_NODE,value),dist}function requireUtils$2(){return hasRequiredUtils$2||(hasRequiredUtils$2=1,function(exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateDigestValue=exports.findAncestorNs=exports.derToPem=exports.pemToDer=exports.normalizePem=exports.BASE64_REGEX=exports.EXTRACT_X509_CERTS=exports.PEM_FORMAT_REGEX=exports.encodeSpecialCharactersInText=exports.encodeSpecialCharactersInAttribute=exports.findChilds=exports.findChildren=exports.findAttr=exports.isArrayHasLength=void 0;const xpath=requireXpath(),isDomNode=requireDist();function isArrayHasLength(array){return Array.isArray(array)&&array.length>0}function attrEqualsExplicitly(attr,localName,namespace){return attr.localName===localName&&(attr.namespaceURI===namespace||null==namespace)}function attrEqualsImplicitly(attr,localName,namespace,node){return attr.localName===localName&&(!attr.namespaceURI&&node?.namespaceURI===namespace||null==namespace)}function findChildren(node,localName,namespace){const element=node.documentElement??node,res=[];for(let i=0;i<element.childNodes.length;i++){const child=element.childNodes[i];!isDomNode.isElementNode(child)||child.localName!==localName||child.namespaceURI!==namespace&&null!=namespace||res.push(child)}return res}exports.isArrayHasLength=isArrayHasLength,exports.findAttr=function findAttr(element,localName,namespace){for(let i=0;i<element.attributes.length;i++){const attr=element.attributes[i];if(attrEqualsExplicitly(attr,localName,namespace)||attrEqualsImplicitly(attr,localName,namespace,element))return attr}return null},exports.findChildren=findChildren,exports.findChilds=function findChilds(node,localName,namespace){return findChildren(node,localName,namespace)};const xml_special_to_encoded_attribute={"&":"&amp;","<":"&lt;",'"':"&quot;","\r":"&#xD;","\n":"&#xA;","\t":"&#x9;"},xml_special_to_encoded_text={"&":"&amp;","<":"&lt;",">":"&gt;","\r":"&#xD;"};function normalizePem(pem){return`${(pem.trim().replace(/(\r\n|\r)/g,"\n").match(/.{1,64}/g)??[]).join("\n")}\n`}function collectAncestorNamespaces(node,nsArray=[]){if(!isDomNode.isElementNode(node.parentNode))return nsArray;const parent=node.parentNode;if(!parent)return nsArray;if(parent.attributes&&parent.attributes.length>0)for(let i=0;i<parent.attributes.length;i++){const attr=parent.attributes[i];attr&&attr.nodeName&&-1!==attr.nodeName.search(/^xmlns:?/)&&nsArray.push({prefix:attr.nodeName.replace(/^xmlns:?/,""),namespaceURI:attr.nodeValue||""})}return collectAncestorNamespaces(parent,nsArray)}exports.encodeSpecialCharactersInAttribute=function encodeSpecialCharactersInAttribute(attributeValue){return attributeValue.replace(/([&<"\r\n\t])/g,(function(str,item){return xml_special_to_encoded_attribute[item]}))},exports.encodeSpecialCharactersInText=function encodeSpecialCharactersInText(text){return text.replace(/([&<>\r])/g,(function(str,item){return xml_special_to_encoded_text[item]}))},exports.PEM_FORMAT_REGEX=new RegExp("^-----BEGIN [A-Z ]{1,48}-----([^-]*)-----END [A-Z ]{1,48}-----$","s"),exports.EXTRACT_X509_CERTS=new RegExp("-----BEGIN CERTIFICATE-----[^-]*-----END CERTIFICATE-----","g"),exports.BASE64_REGEX=new RegExp("^(?:[A-Za-z0-9\\+\\/]{4}\\n{0,1})*(?:[A-Za-z0-9\\+\\/]{2}==|[A-Za-z0-9\\+\\/]{3}=)?$","s"),exports.normalizePem=normalizePem,exports.pemToDer=function pemToDer(pem){if(!exports.PEM_FORMAT_REGEX.test(pem.trim()))throw new Error("Invalid PEM format.");return Buffer.from(pem.replace(/(\r\n|\r)/g,"").replace(/-----BEGIN [A-Z\x20]{1,48}-----\n?/,"").replace(/-----END [A-Z\x20]{1,48}-----\n?/,""),"base64")},exports.derToPem=function derToPem(der,pemLabel){const base64Der=Buffer.isBuffer(der)?der.toString("base64").trim():der.replace(/(\r\n|\r)/g,"").trim();if(exports.PEM_FORMAT_REGEX.test(base64Der))return normalizePem(base64Der);if(exports.BASE64_REGEX.test(base64Der.replace(/ /g,""))){if(null==pemLabel)throw new Error("PEM label is required when DER is given.");return normalizePem(`-----BEGIN ${pemLabel}-----\n${base64Der.replace(/ /g,"")}\n-----END ${pemLabel}-----`)}throw new Error("Unknown DER format.")},exports.findAncestorNs=function findAncestorNs(doc,docSubsetXpath,namespaceResolver){if(null==docSubsetXpath)return[];const docSubset=xpath.selectWithResolver(docSubsetXpath,doc,namespaceResolver);if(!isArrayHasLength(docSubset))return[];if(!function isElementSubset(docSubset){return docSubset.every((node=>isDomNode.isElementNode(node)))}(docSubset))throw new Error("Document subset must be list of elements");const ancestorNs=collectAncestorNamespaces(docSubset[0]),ancestorNsWithoutDuplicate=[];for(let i=0;i<ancestorNs.length;i++){let notOnTheList=!0;for(const v in ancestorNsWithoutDuplicate)if(ancestorNsWithoutDuplicate[v].prefix===ancestorNs[i].prefix){notOnTheList=!1;break}notOnTheList&&ancestorNsWithoutDuplicate.push(ancestorNs[i])}const returningNs=[],subsetNsPrefix=function findNSPrefix(subset){const subsetAttributes=subset.attributes;for(let k=0;k<subsetAttributes.length;k++){const nodeName=subsetAttributes[k].nodeName;if(-1!==nodeName.search(/^xmlns:?/))return nodeName.replace(/^xmlns:?/,"")}return subset.prefix||""}(docSubset[0]);for(const ancestorNs of ancestorNsWithoutDuplicate)ancestorNs.prefix!==subsetNsPrefix&&returningNs.push(ancestorNs);return returningNs},exports.validateDigestValue=function validateDigestValue(digest,expectedDigest){const buffer=Buffer.from(digest,"base64"),expectedBuffer=Buffer.from(expectedDigest,"base64");if("function"==typeof buffer.equals)return buffer.equals(expectedBuffer);if(buffer.length!==expectedBuffer.length)return!1;for(let i=0;i<buffer.length;i++)if(buffer[i]!==expectedBuffer[i])return!1;return!0}}(utils$2)),utils$2}var hasRequiredC14nCanonicalization,c14nCanonicalization={};var hasRequiredExclusiveCanonicalization,exclusiveCanonicalization={};var hasRequiredEnvelopedSignature,envelopedSignature={};var hasRequiredHashAlgorithms,hashAlgorithms={};function requireHashAlgorithms(){if(hasRequiredHashAlgorithms)return hashAlgorithms;hasRequiredHashAlgorithms=1,Object.defineProperty(hashAlgorithms,"__esModule",{value:!0}),hashAlgorithms.Sha512=hashAlgorithms.Sha256=hashAlgorithms.Sha1=void 0;const crypto=require$$0__default$1.default;hashAlgorithms.Sha1=class Sha1{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha1");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2000/09/xmldsig#sha1"}}};hashAlgorithms.Sha256=class Sha256{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha256");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2001/04/xmlenc#sha256"}}};return hashAlgorithms.Sha512=class Sha512{constructor(){this.getHash=function(xml){const shasum=crypto.createHash("sha512");shasum.update(xml,"utf8");return shasum.digest("base64")},this.getAlgorithmName=function(){return"http://www.w3.org/2001/04/xmlenc#sha512"}}},hashAlgorithms}var hasRequiredTypes,hasRequiredSignatureAlgorithms,hasRequiredSignedXml,hasRequiredLib$1,signatureAlgorithms={},types={};function requireTypes(){if(hasRequiredTypes)return types;return hasRequiredTypes=1,Object.defineProperty(types,"__esModule",{value:!0}),types.createOptionalCallbackFunction=void 0,types.createOptionalCallbackFunction=function createOptionalCallbackFunction(syncVersion){return(...args)=>{const possibleCallback=args[args.length-1];if(!function isErrorFirstCallback(possibleCallback){return"function"==typeof possibleCallback}(possibleCallback))return syncVersion(...args);try{possibleCallback(null,syncVersion(...args.slice(0,-1)))}catch(err){possibleCallback(err instanceof Error?err:new Error("Unknown error"))}}},types}function requireSignatureAlgorithms(){if(hasRequiredSignatureAlgorithms)return signatureAlgorithms;hasRequiredSignatureAlgorithms=1,Object.defineProperty(signatureAlgorithms,"__esModule",{value:!0}),signatureAlgorithms.HmacSha1=signatureAlgorithms.RsaSha512=signatureAlgorithms.RsaSha256=signatureAlgorithms.RsaSha1=void 0;const crypto=require$$0__default$1.default,types_1=requireTypes();signatureAlgorithms.RsaSha1=class RsaSha1{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA1");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA1");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2000/09/xmldsig#rsa-sha1"}};signatureAlgorithms.RsaSha256=class RsaSha256{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA256");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA256");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"}};signatureAlgorithms.RsaSha512=class RsaSha512{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createSign("RSA-SHA512");signer.update(signedInfo);return signer.sign(privateKey,"base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createVerify("RSA-SHA512");verifier.update(material);return verifier.verify(key,signatureValue,"base64")})),this.getAlgorithmName=()=>"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"}};return signatureAlgorithms.HmacSha1=class HmacSha1{constructor(){this.getSignature=(0,types_1.createOptionalCallbackFunction)(((signedInfo,privateKey)=>{const signer=crypto.createHmac("SHA1",privateKey);signer.update(signedInfo);return signer.digest("base64")})),this.verifySignature=(0,types_1.createOptionalCallbackFunction)(((material,key,signatureValue)=>{const verifier=crypto.createHmac("SHA1",key);verifier.update(material);return verifier.digest("base64")===signatureValue})),this.getAlgorithmName=()=>"http://www.w3.org/2000/09/xmldsig#hmac-sha1"}},signatureAlgorithms}function requireSignedXml(){if(hasRequiredSignedXml)return signedXml;hasRequiredSignedXml=1,Object.defineProperty(signedXml,"__esModule",{value:!0}),signedXml.SignedXml=void 0;const xpath=requireXpath(),xmldom=function requireLib$2(){if(hasRequiredLib$2)return lib$1;hasRequiredLib$2=1;var dom=requireDom();return lib$1.DOMImplementation=dom.DOMImplementation,lib$1.XMLSerializer=dom.XMLSerializer,lib$1.DOMParser=requireDomParser().DOMParser,lib$1}(),utils=requireUtils$2(),c14n=function requireC14nCanonicalization(){if(hasRequiredC14nCanonicalization)return c14nCanonicalization;hasRequiredC14nCanonicalization=1,Object.defineProperty(c14nCanonicalization,"__esModule",{value:!0}),c14nCanonicalization.C14nCanonicalizationWithComments=c14nCanonicalization.C14nCanonicalization=void 0;const utils=requireUtils$2(),isDomNode=requireDist();class C14nCanonicalization{constructor(){this.includeComments=!1,this.includeComments=!1}attrCompare(a,b){if(!a.namespaceURI&&b.namespaceURI)return-1;if(!b.namespaceURI&&a.namespaceURI)return 1;const left=a.namespaceURI+a.localName,right=b.namespaceURI+b.localName;return left===right?0:left<right?-1:1}nsCompare(a,b){const attr1=a.prefix,attr2=b.prefix;return attr1===attr2?0:attr1.localeCompare(attr2)}renderAttrs(node){let i,attr;const attrListToRender=[];if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],0!==attr.name.indexOf("xmlns")&&attrListToRender.push(attr);attrListToRender.sort(this.attrCompare);const res=attrListToRender.map((attr=>` ${attr.name}="${utils.encodeSpecialCharactersInAttribute(attr.value)}"`));return res.join("")}renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces){let i,attr;const res=[];let newDefaultNs=defaultNs;const nsListToRender=[],currNs=node.namespaceURI||"";if(node.prefix?-1===prefixesInScope.indexOf(node.prefix)&&(nsListToRender.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]}),prefixesInScope.push(node.prefix)):defaultNs!==currNs&&(newDefaultNs=node.namespaceURI||"",res.push(' xmlns="',newDefaultNs,'"')),node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],"xmlns"===attr.prefix&&-1===prefixesInScope.indexOf(attr.localName)&&(nsListToRender.push({prefix:attr.localName,namespaceURI:attr.value}),prefixesInScope.push(attr.localName)),attr.prefix&&-1===prefixesInScope.indexOf(attr.prefix)&&"xmlns"!==attr.prefix&&"xml"!==attr.prefix&&(nsListToRender.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}),prefixesInScope.push(attr.prefix));if(utils.isArrayHasLength(ancestorNamespaces))for(const ancestorNamespace of ancestorNamespaces){let alreadyListed=!1;for(const nsToRender of nsListToRender)nsToRender.prefix===ancestorNamespace.prefix&&nsToRender.namespaceURI===ancestorNamespace.namespaceURI&&(alreadyListed=!0);alreadyListed||nsListToRender.push(ancestorNamespace)}return nsListToRender.sort(this.nsCompare),res.push(...nsListToRender.map((attr=>attr.prefix?` xmlns:${attr.prefix}="${attr.namespaceURI}"`:` xmlns="${attr.namespaceURI}"`))),{rendered:res.join(""),newDefaultNs:newDefaultNs}}processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces){if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.data)return utils.encodeSpecialCharactersInText(node.data);if(isDomNode.isElementNode(node)){let i,pfxCopy;const ns=this.renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces),res=["<",node.tagName,ns.rendered,this.renderAttrs(node),">"];for(i=0;i<node.childNodes.length;++i)pfxCopy=prefixesInScope.slice(0),res.push(this.processInner(node.childNodes[i],pfxCopy,ns.newDefaultNs,defaultNsForPrefix,[]));return res.push("</",node.tagName,">"),res.join("")}throw new Error(`Unable to canonicalize node type: ${node.nodeType}`)}renderComment(node){if(!this.includeComments)return"";let isBeforeDocument=!1,isAfterDocument=!1;if(node.ownerDocument===node.parentNode){let nextNode=node,previousNode=node;for(;null!==nextNode;){if(nextNode===node.ownerDocument.documentElement){isBeforeDocument=!0;break}nextNode=nextNode.nextSibling}for(;null!==previousNode;){if(previousNode===node.ownerDocument.documentElement){isAfterDocument=!0;break}previousNode=previousNode.previousSibling}}const beforeDocument=isBeforeDocument?"\n":"";return`${isAfterDocument?"\n":""}\x3c!--${utils.encodeSpecialCharactersInText(node.data)}--\x3e${beforeDocument}`}process(node,options){const defaultNs=(options=options||{}).defaultNs||"",defaultNsForPrefix=options.defaultNsForPrefix||{},ancestorNamespaces=options.ancestorNamespaces||[],prefixesInScope=[];for(let i=0;i<ancestorNamespaces.length;i++)prefixesInScope.push(ancestorNamespaces[i].prefix);return this.processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,ancestorNamespaces)}getAlgorithmName(){return"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"}}return c14nCanonicalization.C14nCanonicalization=C14nCanonicalization,c14nCanonicalization.C14nCanonicalizationWithComments=class C14nCanonicalizationWithComments extends C14nCanonicalization{constructor(){super(),this.includeComments=!0}getAlgorithmName(){return"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"}},c14nCanonicalization}(),execC14n=function requireExclusiveCanonicalization(){if(hasRequiredExclusiveCanonicalization)return exclusiveCanonicalization;hasRequiredExclusiveCanonicalization=1,Object.defineProperty(exclusiveCanonicalization,"__esModule",{value:!0}),exclusiveCanonicalization.ExclusiveCanonicalizationWithComments=exclusiveCanonicalization.ExclusiveCanonicalization=void 0;const utils=requireUtils$2(),isDomNode=requireDist();function isPrefixInScope(prefixesInScope,prefix,namespaceURI){let ret=!1;return prefixesInScope.forEach((function(pf){pf.prefix===prefix&&pf.namespaceURI===namespaceURI&&(ret=!0)})),ret}class ExclusiveCanonicalization{constructor(){this.includeComments=!1,this.includeComments=!1}attrCompare(a,b){if(!a.namespaceURI&&b.namespaceURI)return-1;if(!b.namespaceURI&&a.namespaceURI)return 1;const left=a.namespaceURI+a.localName,right=b.namespaceURI+b.localName;return left===right?0:left<right?-1:1}nsCompare(a,b){const attr1=a.prefix,attr2=b.prefix;return attr1===attr2?0:attr1.localeCompare(attr2)}renderAttrs(node){let i,attr;const res=[],attrListToRender=[];if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],0!==attr.name.indexOf("xmlns")&&attrListToRender.push(attr);for(attr of(attrListToRender.sort(this.attrCompare),attrListToRender))res.push(" ",attr.name,'="',utils.encodeSpecialCharactersInAttribute(attr.value),'"');return res.join("")}renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList){let i,attr;const res=[];let newDefaultNs=defaultNs;const nsListToRender=[],currNs=node.namespaceURI||"";if(node.prefix?isPrefixInScope(prefixesInScope,node.prefix,node.namespaceURI||defaultNsForPrefix[node.prefix])||(nsListToRender.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]}),prefixesInScope.push({prefix:node.prefix,namespaceURI:node.namespaceURI||defaultNsForPrefix[node.prefix]})):defaultNs!==currNs&&(newDefaultNs=node.namespaceURI,res.push(' xmlns="',newDefaultNs,'"')),node.attributes)for(i=0;i<node.attributes.length;++i)attr=node.attributes[i],attr.prefix&&!isPrefixInScope(prefixesInScope,attr.localName,attr.value)&&inclusiveNamespacesPrefixList.indexOf(attr.localName)>=0&&(nsListToRender.push({prefix:attr.localName,namespaceURI:attr.value}),prefixesInScope.push({prefix:attr.localName,namespaceURI:attr.value})),attr.prefix&&!isPrefixInScope(prefixesInScope,attr.prefix,attr.namespaceURI)&&"xmlns"!==attr.prefix&&"xml"!==attr.prefix&&(nsListToRender.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}),prefixesInScope.push({prefix:attr.prefix,namespaceURI:attr.namespaceURI}));nsListToRender.sort(this.nsCompare);for(const p of nsListToRender)res.push(" xmlns:",p.prefix,'="',p.namespaceURI,'"');return{rendered:res.join(""),newDefaultNs:newDefaultNs}}processInner(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList){if(isDomNode.isCommentNode(node))return this.renderComment(node);if(node.data)return utils.encodeSpecialCharactersInText(node.data);if(isDomNode.isElementNode(node)){let i,pfxCopy;const ns=this.renderNs(node,prefixesInScope,defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList),res=["<",node.tagName,ns.rendered,this.renderAttrs(node),">"];for(i=0;i<node.childNodes.length;++i)pfxCopy=prefixesInScope.slice(0),res.push(this.processInner(node.childNodes[i],pfxCopy,ns.newDefaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList));return res.push("</",node.tagName,">"),res.join("")}throw new Error(`Unable to exclusive canonicalize node type: ${node.nodeType}`)}renderComment(node){if(!this.includeComments)return"";let isBeforeDocument=!1,isAfterDocument=!1;if(node.ownerDocument===node.parentNode){let nextNode=node,previousNode=node;for(;null!=nextNode;){if(nextNode===node.ownerDocument.documentElement){isBeforeDocument=!0;break}nextNode=nextNode.nextSibling}for(;null!=previousNode;){if(previousNode===node.ownerDocument.documentElement){isAfterDocument=!0;break}previousNode=previousNode.previousSibling}}const beforeDocument=isBeforeDocument?"\n":"";return`${isAfterDocument?"\n":""}\x3c!--${utils.encodeSpecialCharactersInText(node.data)}--\x3e${beforeDocument}`}process(elem,options){let inclusiveNamespacesPrefixList=(options=options||{}).inclusiveNamespacesPrefixList||[];const defaultNs=options.defaultNs||"",defaultNsForPrefix=options.defaultNsForPrefix||{},ancestorNamespaces=options.ancestorNamespaces||[];if(!utils.isArrayHasLength(inclusiveNamespacesPrefixList)){const CanonicalizationMethod=utils.findChildren(elem,"CanonicalizationMethod");if(0!==CanonicalizationMethod.length){const inclusiveNamespaces=utils.findChildren(CanonicalizationMethod[0],"InclusiveNamespaces");0!==inclusiveNamespaces.length&&(inclusiveNamespacesPrefixList=(inclusiveNamespaces[0].getAttribute("PrefixList")||"").split(" "))}}return utils.isArrayHasLength(inclusiveNamespacesPrefixList)&&inclusiveNamespacesPrefixList.forEach((function(prefix){ancestorNamespaces&&ancestorNamespaces.forEach((function(ancestorNamespace){prefix===ancestorNamespace.prefix&&elem.setAttributeNS("http://www.w3.org/2000/xmlns/",`xmlns:${prefix}`,ancestorNamespace.namespaceURI)}))})),this.processInner(elem,[],defaultNs,defaultNsForPrefix,inclusiveNamespacesPrefixList)}getAlgorithmName(){return"http://www.w3.org/2001/10/xml-exc-c14n#"}}return exclusiveCanonicalization.ExclusiveCanonicalization=ExclusiveCanonicalization,exclusiveCanonicalization.ExclusiveCanonicalizationWithComments=class ExclusiveCanonicalizationWithComments extends ExclusiveCanonicalization{constructor(){super(),this.includeComments=!0}getAlgorithmName(){return"http://www.w3.org/2001/10/xml-exc-c14n#WithComments"}},exclusiveCanonicalization}(),envelopedSignatures=function requireEnvelopedSignature(){if(hasRequiredEnvelopedSignature)return envelopedSignature;hasRequiredEnvelopedSignature=1,Object.defineProperty(envelopedSignature,"__esModule",{value:!0}),envelopedSignature.EnvelopedSignature=void 0;const xpath=requireXpath(),isDomNode=requireDist();return envelopedSignature.EnvelopedSignature=class EnvelopedSignature{constructor(){this.includeComments=!1,this.includeComments=!1}process(node,options){if(null==options.signatureNode){const signature=xpath.select1("./*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",node);return isDomNode.isNodeLike(signature)&&signature.parentNode&&signature.parentNode.removeChild(signature),node}const signatureNode=options.signatureNode,expectedSignatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",signatureNode);if(isDomNode.isTextNode(expectedSignatureValue)){const expectedSignatureValueData=expectedSignatureValue.data,signatures=xpath.select(".//*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",node);for(const nodeSignature of Array.isArray(signatures)?signatures:[]){const signatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",nodeSignature);isDomNode.isTextNode(signatureValue)&&expectedSignatureValueData===signatureValue.data&&nodeSignature.parentNode&&nodeSignature.parentNode.removeChild(nodeSignature)}}return node}getAlgorithmName(){return"http://www.w3.org/2000/09/xmldsig#enveloped-signature"}},envelopedSignature}(),hashAlgorithms=requireHashAlgorithms(),signatureAlgorithms=requireSignatureAlgorithms(),isDomNode=requireDist();class SignedXml{constructor(options={}){this.signatureAlgorithm=void 0,this.canonicalizationAlgorithm=void 0,this.inclusiveNamespacesPrefixList=[],this.namespaceResolver={lookupNamespaceURI:function(){throw new Error("Not implemented")}},this.implicitTransforms=[],this.keyInfoAttributes={},this.getKeyInfoContent=SignedXml.getKeyInfoContent,this.getCertFromKeyInfo=SignedXml.getCertFromKeyInfo,this.id=0,this.signedXml="",this.signatureXml="",this.signatureNode=null,this.signatureValue="",this.originalXmlWithIds="",this.keyInfo=null,this.references=[],this.CanonicalizationAlgorithms={"http://www.w3.org/TR/2001/REC-xml-c14n-20010315":c14n.C14nCanonicalization,"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments":c14n.C14nCanonicalizationWithComments,"http://www.w3.org/2001/10/xml-exc-c14n#":execC14n.ExclusiveCanonicalization,"http://www.w3.org/2001/10/xml-exc-c14n#WithComments":execC14n.ExclusiveCanonicalizationWithComments,"http://www.w3.org/2000/09/xmldsig#enveloped-signature":envelopedSignatures.EnvelopedSignature},this.HashAlgorithms={"http://www.w3.org/2000/09/xmldsig#sha1":hashAlgorithms.Sha1,"http://www.w3.org/2001/04/xmlenc#sha256":hashAlgorithms.Sha256,"http://www.w3.org/2001/04/xmlenc#sha512":hashAlgorithms.Sha512},this.SignatureAlgorithms={"http://www.w3.org/2000/09/xmldsig#rsa-sha1":signatureAlgorithms.RsaSha1,"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256":signatureAlgorithms.RsaSha256,"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512":signatureAlgorithms.RsaSha512};const{idMode:idMode,idAttribute:idAttribute,privateKey:privateKey,publicCert:publicCert,signatureAlgorithm:signatureAlgorithm,canonicalizationAlgorithm:canonicalizationAlgorithm,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,implicitTransforms:implicitTransforms,keyInfoAttributes:keyInfoAttributes,getKeyInfoContent:getKeyInfoContent,getCertFromKeyInfo:getCertFromKeyInfo}=options;this.idMode=idMode,this.idAttributes=["Id","ID","id"],idAttribute&&this.idAttributes.unshift(idAttribute),this.privateKey=privateKey,this.publicCert=publicCert,this.signatureAlgorithm=signatureAlgorithm??this.signatureAlgorithm,this.canonicalizationAlgorithm=canonicalizationAlgorithm,"string"==typeof inclusiveNamespacesPrefixList?this.inclusiveNamespacesPrefixList=inclusiveNamespacesPrefixList.split(" "):utils.isArrayHasLength(inclusiveNamespacesPrefixList)&&(this.inclusiveNamespacesPrefixList=inclusiveNamespacesPrefixList),this.implicitTransforms=implicitTransforms??this.implicitTransforms,this.keyInfoAttributes=keyInfoAttributes??this.keyInfoAttributes,this.getKeyInfoContent=getKeyInfoContent??this.getKeyInfoContent,this.getCertFromKeyInfo=getCertFromKeyInfo??SignedXml.noop,this.CanonicalizationAlgorithms,this.HashAlgorithms,this.SignatureAlgorithms}enableHMAC(){this.SignatureAlgorithms={"http://www.w3.org/2000/09/xmldsig#hmac-sha1":signatureAlgorithms.HmacSha1},this.getKeyInfoContent=SignedXml.noop}static getKeyInfoContent({publicCert:publicCert,prefix:prefix}){if(null==publicCert)return null;prefix=prefix?`${prefix}:`:"";let x509Certs="";Buffer.isBuffer(publicCert)&&(publicCert=publicCert.toString("latin1"));let publicCertMatches=[];return"string"==typeof publicCert&&(publicCertMatches=publicCert.match(utils.EXTRACT_X509_CERTS)||[]),publicCertMatches.length>0&&(x509Certs=publicCertMatches.map((c=>`<${prefix}X509Certificate>${utils.pemToDer(c).toString("base64")}</${prefix}X509Certificate>`)).join("")),`<${prefix}X509Data>${x509Certs}</${prefix}X509Data>`}static getCertFromKeyInfo(keyInfo){if(null!=keyInfo){const cert=xpath.select1(".//*[local-name(.)='X509Certificate']",keyInfo);if(isDomNode.isNodeLike(cert))return utils.derToPem(cert.textContent??"","CERTIFICATE")}return null}checkSignature(xml,callback){if(null!=callback&&"function"!=typeof callback)throw new Error("Last parameter must be a callback function");this.signedXml=xml;const doc=(new xmldom.DOMParser).parseFromString(xml);if(!this.getReferences().every((ref=>this.validateReference(ref,doc))))return!!callback&&void callback(new Error("Could not validate all references"));const signedInfoCanon=this.getCanonSignedInfoXml(doc),signer=this.findSignatureAlgorithm(this.signatureAlgorithm),key=this.getCertFromKeyInfo(this.keyInfo)||this.publicCert||this.privateKey;if(null==key)throw new Error("KeyInfo or publicCert or privateKey is required to validate signature");if(!callback){if(!1===signer.verifySignature(signedInfoCanon,key,this.signatureValue))throw new Error(`invalid signature: the signature value ${this.signatureValue} is incorrect`);return!0}signer.verifySignature(signedInfoCanon,key,this.signatureValue,callback)}getCanonSignedInfoXml(doc){if(null==this.signatureNode)throw new Error("No signature found.");if("string"!=typeof this.canonicalizationAlgorithm)throw new Error("Missing canonicalizationAlgorithm when trying to get signed info for XML");const signedInfo=utils.findChildren(this.signatureNode,"SignedInfo");if(0===signedInfo.length)throw new Error("could not find SignedInfo element in the message");if(!("http://www.w3.org/TR/2001/REC-xml-c14n-20010315"!==this.canonicalizationAlgorithm&&"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"!==this.canonicalizationAlgorithm||doc&&"object"==typeof doc))throw new Error("When canonicalization method is non-exclusive, whole xml dom must be provided as an argument");const c14nOptions={ancestorNamespaces:utils.findAncestorNs(doc,"//*[local-name()='SignedInfo']")};return this.getCanonXml([this.canonicalizationAlgorithm],signedInfo[0],c14nOptions)}getCanonReferenceXml(doc,ref,node){Array.isArray(ref.transforms)&&(ref.ancestorNamespaces=utils.findAncestorNs(doc,ref.xpath,this.namespaceResolver));const c14nOptions={inclusiveNamespacesPrefixList:ref.inclusiveNamespacesPrefixList,ancestorNamespaces:ref.ancestorNamespaces};return this.getCanonXml(ref.transforms,node,c14nOptions)}calculateSignatureValue(doc,callback){const signedInfoCanon=this.getCanonSignedInfoXml(doc),signer=this.findSignatureAlgorithm(this.signatureAlgorithm);if(null==this.privateKey)throw new Error("Private key is required to compute signature");"function"==typeof callback?signer.getSignature(signedInfoCanon,this.privateKey,callback):this.signatureValue=signer.getSignature(signedInfoCanon,this.privateKey)}findSignatureAlgorithm(name){if(null==name)throw new Error("signatureAlgorithm is required");const algo=this.SignatureAlgorithms[name];if(algo)return new algo;throw new Error(`signature algorithm '${name}' is not supported`)}findCanonicalizationAlgorithm(name){if(null!=name){const algo=this.CanonicalizationAlgorithms[name];if(algo)return new algo}throw new Error(`canonicalization algorithm '${name}' is not supported`)}findHashAlgorithm(name){const algo=this.HashAlgorithms[name];if(algo)return new algo;throw new Error(`hash algorithm '${name}' is not supported`)}validateElementAgainstReferences(elemOrXpath,doc){let elem;if("string"==typeof elemOrXpath){const firstElem=xpath.select1(elemOrXpath,doc);isDomNode.assertIsElementNode(firstElem),elem=firstElem}else elem=elemOrXpath;for(const ref of this.getReferences()){const uri="#"===ref.uri?.[0]?ref.uri.substring(1):ref.uri;for(const attr of this.idAttributes){if(uri===elem.getAttribute(attr)){ref.xpath=`//*[@*[local-name(.)='${attr}']='${uri}']`;break}}const canonXml=this.getCanonReferenceXml(doc,ref,elem),digest=this.findHashAlgorithm(ref.digestAlgorithm).getHash(canonXml);if(utils.validateDigestValue(digest,ref.digestValue))return ref}throw new Error("No references passed validation")}validateReference(ref,doc){const uri="#"===ref.uri?.[0]?ref.uri.substring(1):ref.uri;let elem=null;if(""===uri)elem=xpath.select1("//*",doc);else{if(-1!==uri?.indexOf("'"))throw new Error("Cannot validate a uri with quotes inside it");{let num_elements_for_id=0;for(const attr of this.idAttributes){const tmp_elemXpath=`//*[@*[local-name(.)='${attr}']='${uri}']`,tmp_elem=xpath.select(tmp_elemXpath,doc);if(utils.isArrayHasLength(tmp_elem)){if(num_elements_for_id+=tmp_elem.length,num_elements_for_id>1)throw new Error("Cannot validate a document which contains multiple elements with the same value for the ID / Id / Id attributes, in order to prevent signature wrapping attack.");elem=tmp_elem[0],ref.xpath=tmp_elemXpath}}}}if(ref.getValidatedNode=xpathSelector=>{if("string"!=typeof(xpathSelector=xpathSelector||ref.xpath)||null!=ref.validationError)return null;const selectedValue=xpath.select1(xpathSelector,doc);return isDomNode.isNodeLike(selectedValue)?selectedValue:null},!isDomNode.isNodeLike(elem)){const validationError=new Error(`invalid signature: the signature references an element with uri ${ref.uri} but could not find such element in the xml`);return ref.validationError=validationError,!1}const canonXml=this.getCanonReferenceXml(doc,ref,elem),digest=this.findHashAlgorithm(ref.digestAlgorithm).getHash(canonXml);if(!utils.validateDigestValue(digest,ref.digestValue)){const validationError=new Error(`invalid signature: for uri ${ref.uri} calculated digest is ${digest} but the xml to validate supplies digest ${ref.digestValue}`);return ref.validationError=validationError,!1}return!0}findSignatures(doc){const nodes=xpath.select("//*[local-name(.)='Signature' and namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#']",doc);return isDomNode.isArrayOfNodes(nodes)?nodes:[]}loadSignature(signatureNode){this.signatureNode="string"==typeof signatureNode?signatureNode=(new xmldom.DOMParser).parseFromString(signatureNode):signatureNode,this.signatureXml=signatureNode.toString();const node=xpath.select1(".//*[local-name(.)='CanonicalizationMethod']/@Algorithm",signatureNode);if(!isDomNode.isNodeLike(node))throw new Error("could not find CanonicalizationMethod/@Algorithm element");isDomNode.isAttributeNode(node)&&(this.canonicalizationAlgorithm=node.value);const signatureAlgorithm=xpath.select1(".//*[local-name(.)='SignatureMethod']/@Algorithm",signatureNode);isDomNode.isAttributeNode(signatureAlgorithm)&&(this.signatureAlgorithm=signatureAlgorithm.value),this.references=[];const references=xpath.select(".//*[local-name(.)='SignedInfo']/*[local-name(.)='Reference']",signatureNode);if(!utils.isArrayHasLength(references))throw new Error("could not find any Reference elements");for(const reference of references)this.loadReference(reference);const signatureValue=xpath.select1(".//*[local-name(.)='SignatureValue']/text()",signatureNode);isDomNode.isTextNode(signatureValue)&&(this.signatureValue=signatureValue.data.replace(/\r?\n/g,""));const keyInfo=xpath.select1(".//*[local-name(.)='KeyInfo']",signatureNode);isDomNode.isNodeLike(keyInfo)&&(this.keyInfo=keyInfo)}loadReference(refNode){let nodes=utils.findChildren(refNode,"DigestMethod");if(0===nodes.length)throw new Error(`could not find DigestMethod in reference ${refNode.toString()}`);const digestAlgoNode=nodes[0],attr=utils.findAttr(digestAlgoNode,"Algorithm");if(!attr)throw new Error(`could not find Algorithm attribute in node ${digestAlgoNode.toString()}`);const digestAlgo=attr.value;if(nodes=utils.findChildren(refNode,"DigestValue"),0===nodes.length)throw new Error(`could not find DigestValue node in reference ${refNode.toString()}`);const firstChild=nodes[0].firstChild;if(!firstChild||!("data"in firstChild))throw new Error(`could not find the value of DigestValue in ${nodes[0].toString()}`);const digestValue=firstChild.data,transforms=[];let inclusiveNamespacesPrefixList=[];if(nodes=utils.findChildren(refNode,"Transforms"),0!==nodes.length){const transformsNode=nodes[0],transformsAll=utils.findChildren(transformsNode,"Transform");for(const transform of transformsAll){const transformAttr=utils.findAttr(transform,"Algorithm");transformAttr&&transforms.push(transformAttr.value)}const inclusiveNamespaces=utils.findChildren(transformsAll[transformsAll.length-1],"InclusiveNamespaces");utils.isArrayHasLength(inclusiveNamespaces)&&(inclusiveNamespacesPrefixList=inclusiveNamespaces.flatMap((namespace=>(namespace.getAttribute("PrefixList")??"").split(" "))).filter((value=>value.length>0)))}utils.isArrayHasLength(this.implicitTransforms)&&this.implicitTransforms.forEach((function(t){transforms.push(t)})),0!==transforms.length&&"http://www.w3.org/2000/09/xmldsig#enveloped-signature"!==transforms[transforms.length-1]||transforms.push("http://www.w3.org/TR/2001/REC-xml-c14n-20010315"),this.addReference({transforms:transforms,digestAlgorithm:digestAlgo,uri:isDomNode.isElementNode(refNode)?utils.findAttr(refNode,"URI")?.value:void 0,digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,isEmptyUri:!1})}addReference({xpath:xpath,transforms:transforms,digestAlgorithm:digestAlgorithm,uri:uri="",digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList=[],isEmptyUri:isEmptyUri=!1}){if(null==digestAlgorithm)throw new Error("digestAlgorithm is required");if(!utils.isArrayHasLength(transforms))throw new Error("transforms must contain at least one transform algorithm");this.references.push({xpath:xpath,transforms:transforms,digestAlgorithm:digestAlgorithm,uri:uri,digestValue:digestValue,inclusiveNamespacesPrefixList:inclusiveNamespacesPrefixList,isEmptyUri:isEmptyUri,getValidatedNode:()=>{throw new Error("Reference has not been validated yet; Did you call `sig.checkSignature()`?")}})}getReferences(){return this.references}computeSignature(xml,options,callbackParam){let callback;"function"==typeof options&&null==callbackParam?(callback=options,options={}):(callback=callbackParam,options=options??{});const doc=(new xmldom.DOMParser).parseFromString(xml);let xmlNsAttr="xmlns";const signatureAttrs=[];let currentPrefix;const validActions=["append","prepend","before","after"],prefix=options.prefix,attrs=options.attrs||{},location=options.location||{},existingPrefixes=options.existingPrefixes||{};if(this.namespaceResolver={lookupNamespaceURI:function(prefix){return prefix?existingPrefixes[prefix]:null}},location.reference=location.reference||"/*",location.action=location.action||"append",-1===validActions.indexOf(location.action)){const err=new Error(`location.action option has an invalid action: ${location.action}, must be any of the following values: ${validActions.join(", ")}`);if(callback)return void callback(err);throw err}prefix?(xmlNsAttr+=`:${prefix}`,currentPrefix=`${prefix}:`):currentPrefix="",Object.keys(attrs).forEach((function(name){"xmlns"!==name&&name!==xmlNsAttr&&signatureAttrs.push(`${name}="${attrs[name]}"`)})),signatureAttrs.push(`${xmlNsAttr}="http://www.w3.org/2000/09/xmldsig#"`);let signatureXml=`<${currentPrefix}Signature ${signatureAttrs.join(" ")}>`;signatureXml+=this.createSignedInfo(doc,prefix),signatureXml+=this.getKeyInfo(prefix),signatureXml+=`</${currentPrefix}Signature>`,this.originalXmlWithIds=doc.toString();let existingPrefixesString="";Object.keys(existingPrefixes).forEach((function(key){existingPrefixesString+=`xmlns:${key}="${existingPrefixes[key]}" `}));const dummySignatureWrapper=`<Dummy ${existingPrefixesString}>${signatureXml}</Dummy>`,signatureDoc=(new xmldom.DOMParser).parseFromString(dummySignatureWrapper).documentElement.firstChild,referenceNode=xpath.select1(location.reference,doc);if(!isDomNode.isNodeLike(referenceNode)){const err2=new Error(`the following xpath cannot be used because it was not found: ${location.reference}`);if(callback)return void callback(err2);throw err2}if("append"===location.action)referenceNode.appendChild(signatureDoc);else if("prepend"===location.action)referenceNode.insertBefore(signatureDoc,referenceNode.firstChild);else if("before"===location.action){if(null==referenceNode.parentNode)throw new Error("`location.reference` refers to the root node (by default), so we can't insert `before`");referenceNode.parentNode.insertBefore(signatureDoc,referenceNode)}else if("after"===location.action){if(null==referenceNode.parentNode)throw new Error("`location.reference` refers to the root node (by default), so we can't insert `after`");referenceNode.parentNode.insertBefore(signatureDoc,referenceNode.nextSibling)}this.signatureNode=signatureDoc;const signedInfoNodes=utils.findChildren(this.signatureNode,"SignedInfo");if(0===signedInfoNodes.length){const err3=new Error("could not find SignedInfo element in the message");if(callback)return void callback(err3);throw err3}const signedInfoNode=signedInfoNodes[0];"function"==typeof callback?this.calculateSignatureValue(doc,((err,signature)=>{err?callback(err):(this.signatureValue=signature||"",signatureDoc.insertBefore(this.createSignature(prefix),signedInfoNode.nextSibling),this.signatureXml=signatureDoc.toString(),this.signedXml=doc.toString(),callback(null,this))})):(this.calculateSignatureValue(doc),signatureDoc.insertBefore(this.createSignature(prefix),signedInfoNode.nextSibling),this.signatureXml=signatureDoc.toString(),this.signedXml=doc.toString())}getKeyInfo(prefix){const currentPrefix=prefix?`${prefix}:`:"";let keyInfoAttrs="";this.keyInfoAttributes&&Object.keys(this.keyInfoAttributes).forEach((name=>{keyInfoAttrs+=` ${name}="${this.keyInfoAttributes[name]}"`}));const keyInfoContent=this.getKeyInfoContent({publicCert:this.publicCert,prefix:prefix});return keyInfoAttrs||keyInfoContent?`<${currentPrefix}KeyInfo${keyInfoAttrs}>${keyInfoContent}</${currentPrefix}KeyInfo>`:""}createReferences(doc,prefix){let res="";prefix=(prefix=prefix||"")?`${prefix}:`:prefix;for(const ref of this.getReferences()){const nodes=xpath.selectWithResolver(ref.xpath??"",doc,this.namespaceResolver);if(!utils.isArrayHasLength(nodes))throw new Error(`the following xpath cannot be signed because it was not found: ${ref.xpath}`);for(const node of nodes){if(ref.isEmptyUri)res+=`<${prefix}Reference URI="">`;else{const id=this.ensureHasId(node);ref.uri=id,res+=`<${prefix}Reference URI="#${id}">`}res+=`<${prefix}Transforms>`;for(const trans of ref.transforms||[]){const transform=this.findCanonicalizationAlgorithm(trans);res+=`<${prefix}Transform Algorithm="${transform.getAlgorithmName()}"`,utils.isArrayHasLength(ref.inclusiveNamespacesPrefixList)?(res+=">",res+=`<InclusiveNamespaces PrefixList="${ref.inclusiveNamespacesPrefixList.join(" ")}" xmlns="${transform.getAlgorithmName()}"/>`,res+=`</${prefix}Transform>`):res+=" />"}const canonXml=this.getCanonReferenceXml(doc,ref,node),digestAlgorithm=this.findHashAlgorithm(ref.digestAlgorithm);res+=`</${prefix}Transforms><${prefix}DigestMethod Algorithm="${digestAlgorithm.getAlgorithmName()}" /><${prefix}DigestValue>${digestAlgorithm.getHash(canonXml)}</${prefix}DigestValue></${prefix}Reference>`}}return res}getCanonXml(transforms,node,options={}){options.defaultNsForPrefix=options.defaultNsForPrefix??SignedXml.defaultNsForPrefix,options.signatureNode=this.signatureNode;let transformedXml=node.cloneNode(!0);return transforms.forEach((transformName=>{if(isDomNode.isNodeLike(transformedXml)){const transform=this.findCanonicalizationAlgorithm(transformName);transformedXml=transform.process(transformedXml,options)}})),transformedXml.toString()}ensureHasId(node){let attr;if("wssecurity"===this.idMode?attr=utils.findAttr(node,"Id","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"):this.idAttributes.some((idAttribute=>(attr=utils.findAttr(node,idAttribute),!!attr))),attr)return attr.value;const id="_"+this.id++;return"wssecurity"===this.idMode?(node.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:wsu","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"),node.setAttributeNS("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd","wsu:Id",id)):node.setAttribute("Id",id),id}createSignedInfo(doc,prefix){if("string"!=typeof this.canonicalizationAlgorithm)throw new Error("Missing canonicalizationAlgorithm when trying to create signed info for XML");const transform=this.findCanonicalizationAlgorithm(this.canonicalizationAlgorithm),algo=this.findSignatureAlgorithm(this.signatureAlgorithm);let currentPrefix;currentPrefix=prefix||"",currentPrefix=currentPrefix?`${currentPrefix}:`:currentPrefix;let res=`<${currentPrefix}SignedInfo>`;return res+=`<${currentPrefix}CanonicalizationMethod Algorithm="${transform.getAlgorithmName()}"`,utils.isArrayHasLength(this.inclusiveNamespacesPrefixList)?(res+=">",res+=`<InclusiveNamespaces PrefixList="${this.inclusiveNamespacesPrefixList.join(" ")}" xmlns="${transform.getAlgorithmName()}"/>`,res+=`</${currentPrefix}CanonicalizationMethod>`):res+=" />",res+=`<${currentPrefix}SignatureMethod Algorithm="${algo.getAlgorithmName()}" />`,res+=this.createReferences(doc,prefix),res+=`</${currentPrefix}SignedInfo>`,res}createSignature(prefix){let xmlNsAttr="xmlns";prefix?(xmlNsAttr+=`:${prefix}`,prefix+=":"):prefix="";const dummySignatureWrapper=`<${prefix}Signature ${xmlNsAttr}="http://www.w3.org/2000/09/xmldsig#">${`<${prefix}SignatureValue>${this.signatureValue}</${prefix}SignatureValue>`}</${prefix}Signature>`;return(new xmldom.DOMParser).parseFromString(dummySignatureWrapper).documentElement.firstChild}getSignatureXml(){return this.signatureXml}getOriginalXmlWithIds(){return this.originalXmlWithIds}getSignedXml(){return this.signedXml}}return signedXml.SignedXml=SignedXml,SignedXml.defaultNsForPrefix={ds:"http://www.w3.org/2000/09/xmldsig#"},SignedXml.noop=()=>null,signedXml}var libExports$1=function requireLib$1(){return hasRequiredLib$1||(hasRequiredLib$1=1,function(exports){var __createBinding=lib$2&&lib$2.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=lib$2&&lib$2.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SignedXml=void 0;var signed_xml_1=requireSignedXml();Object.defineProperty(exports,"SignedXml",{enumerable:!0,get:function(){return signed_xml_1.SignedXml}}),__exportStar(requireUtils$2(),exports),__exportStar(requireTypes(),exports)}(lib$2)),lib$2}();class XmlBuilder{constructor(environment){this.environment=environment}assinarXML(xml,tagAssinar){const signedXmlObj=new libExports$1.SignedXml({publicCert:this.environment.getCert(),privateKey:this.environment.getCertKey(),canonicalizationAlgorithm:"http://www.w3.org/TR/2001/REC-xml-c14n-20010315",implicitTransforms:["http://www.w3.org/TR/2001/REC-xml-c14n-20010315"]});return signedXmlObj.addReference({xpath:`//*[local-name(.)='${tagAssinar}']`,digestAlgorithm:"http://www.w3.org/2000/09/xmldsig#sha1",transforms:["http://www.w3.org/2000/09/xmldsig#enveloped-signature","http://www.w3.org/TR/2001/REC-xml-c14n-20010315"]}),signedXmlObj.signatureAlgorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1",signedXmlObj.computeSignature(xml),signedXmlObj.getSignedXml()}serializeXml(obj,rootTag){return new xml2js.Builder({rootName:rootTag,headless:!0,renderOpts:{pretty:!1}}).buildObject(obj)}gerarXml(xmlObject,rootTag){return this.serializeXml(xmlObject,rootTag)}buildSoapEnvelope(xml,soapMethod,soapVersion="soap12",rootTagObj=null){const soapNamespaces={soap12:"http://www.w3.org/2003/05/soap-envelope",soap:"http://schemas.xmlsoap.org/soap/envelope/"},soapNamespace=soapNamespaces[soapVersion]||soapNamespaces.soap12;let soapEnvelopeObj={$:{[`xmlns:${soapVersion}`]:soapNamespace,"xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:xsd":"http://www.w3.org/2001/XMLSchema"},[`${soapVersion}:Body`]:{}};if(rootTagObj&&rootTagObj.tag){let bodyContent={nfeDadosMsg:{$:{xmlns:soapMethod},_:"[XML]"}};rootTagObj.namespace&&(bodyContent.$={xmlns:rootTagObj.namespace}),soapEnvelopeObj[`${soapVersion}:Body`][rootTagObj.tag]=bodyContent}else soapEnvelopeObj[`${soapVersion}:Body`]={nfeDadosMsg:{$:{xmlns:soapMethod},_:"[XML]"}};return this.serializeXml(soapEnvelopeObj,`${soapVersion}:Envelope`).replace("[XML]",xml)}}class NFERetornoAutorizacao$1 extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFERetornoAutorizacao",axios)}gerarXml(data){try{const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe",versao:"4.00"},tpAmb:ambiente,nRec:data};return this.xmlBuilder.gerarXml(xmlObject,"consReciNFe")}catch(error){throw new Error(error.message)}}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async getRetornoRecibo(nRec,xmlNFe){try{const xmlConsulta=this.gerarXml(nRec),{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const{protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno.data);if(!protNFe)throw new Error("Não foi possível encontrar a tag 'protNFe'. Talvez a NFe ainda não tenha sido processada.");return this.getXmlRetornoAutorizacao(protNFe,xmlNFe)}catch(error){throw new Error(error.message)}}getXmlRetornoAutorizacao(protNFe,xmlNFe){try{const XMLs=[];for(let i=0;i<protNFe.length;i++){const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},_:"[XML]"};let xml=this.xmlBuilder.gerarXml(baseXML,"nfeProc");const formatedProtNFe=protNFe,xmlCompleto=xmlNFe.find((item=>-1!==item.indexOf(formatedProtNFe[i].infProt[0].chNFe[0])));if(xmlCompleto){const protTag=this.xmlBuilder.gerarXml(protNFe[i],"protNFe"),xmlFinal=[xmlCompleto];xmlFinal.push(protTag),xml=xml.replace("[XML]",xmlFinal.join("")),xml=`<?xml version="1.0" encoding="UTF-8"?>${xml}`,XMLs.push(xml)}}return{success:!0,message:"xMotivo",data:XMLs}}catch(error){throw new Error(error.message)}}async getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:xmlNFe}){try{if(1===tipoEmissao&&protNFe)return this.getXmlRetornoAutorizacao(protNFe,xmlNFe);if(0===tipoEmissao&&nRec)return this.getRetornoRecibo(nRec,xmlNFe);throw new Error("Não foi possível buscar o retorno da autorização.")}catch(error){throw new Error(error.message)}}}class NFEAutorizacaoHandler$1{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}}function filterFieldsByType(source,requiredFields){const result={};for(const key of requiredFields)key in source&&""!==source[key]&&(result[key]=source[key]);return result}const COFINSMap={"01":"COFINSAliq","02":"COFINSAliq","03":"COFINSQtde","04":"COFINSNT","05":"COFINSNT","06":"COFINSNT","07":"COFINSNT","08":"COFINSNT","09":"COFINSNT",49:"COFINSOutr",50:"COFINSOutr",51:"COFINSOutr",52:"COFINSOutr",53:"COFINSOutr",54:"COFINSOutr",55:"COFINSOutr",56:"COFINSOutr",60:"COFINSOutr",61:"COFINSOutr",62:"COFINSOutr",63:"COFINSOutr",64:"COFINSOutr",65:"COFINSOutr",66:"COFINSOutr",67:"COFINSOutr",70:"COFINSOutr",71:"COFINSOutr",72:"COFINSOutr",73:"COFINSOutr",74:"COFINSOutr",75:"COFINSOutr",98:"COFINSOutr",99:"COFINSOutr"},PISMap={"01":"PISAliq","02":"PISAliq","03":"PISQtde","04":"PISNT","05":"PISNT","06":"PISNT","07":"PISNT","08":"PISNT","09":"PISNT",49:"PISOutr",50:"PISOutr",51:"PISOutr",52:"PISOutr",53:"PISOutr",54:"PISOutr",55:"PISOutr",56:"PISOutr",60:"PISOutr",61:"PISOutr",62:"PISOutr",63:"PISOutr",64:"PISOutr",65:"PISOutr",66:"PISOutr",67:"PISOutr",70:"PISOutr",71:"PISOutr",72:"PISOutr",73:"PISOutr",74:"PISOutr",75:"PISOutr",98:"PISOutr",99:"PISOutr"},ICMSMap={"00":"ICMS00","02":"ICMS02",10:"ICMS10",20:"ICMS20",30:"ICMS30",40:"ICMS40",41:"ICMS40",50:"ICMS40",51:"ICMS51",60:"ICMS60",70:"ICMS70",90:"ICMS90",101:"ICMSSN101",102:"ICMSSN102",103:"ICMSSN102",201:"ICMSSN201",202:"ICMSSN202",203:"ICMSSN202",500:"ICMSSN500",900:"ICMSSN900"},mountCOFINS=cofins=>{const{CST:CST}=cofins,cst_cofins=CST;let cofinsKey=COFINSMap[CST];cofinsKey||(console.warn(`Código de situação tributária do COFINS ${cst_cofins} não é reconhecido. Alterado para padrão 'COFINSAliq'.`),cofinsKey="COFINSAliq");const requiredFields={COFINSAliq:["CST","vBC","pCOFINS","vCOFINS"],COFINSQtde:["CST","qBCProd","vAliqProd","vCOFINS"],COFINSNT:["CST"],COFINSOutr:["CST","vBC","pCOFINS","qBCProd","vAliqProd","vCOFINS"]};if(cofinsKey in requiredFields){const cofinsProperties=filterFieldsByType(cofins,requiredFields[cofinsKey]);return{[cofinsKey]:cofinsProperties}}return console.warn(`Chave COFINS '${cofinsKey}' não reconhecida.`),{}},mountPIS=pis=>{const{CST:CST}=pis,cst_pis=CST;let pisKey=PISMap[cst_pis];pisKey||(console.warn(`Código de situação tributária do PIS ${cst_pis} não é reconhecido. Alterado para padrão 'PISAliq'.`),pisKey="PISAliq");const requiredFields={PISAliq:["CST","vBC","pPIS","vPIS"],PISQtde:["CST","qBCProd","vAliqProd","vPIS"],PISNT:["CST"],PISOutr:["CST","vBC","pPIS","qBCProd","vAliqProd","vPIS"]};if(pisKey in requiredFields){const pisProperties=filterFieldsByType(pis,requiredFields[pisKey]);return{[pisKey]:pisProperties}}return console.warn(`Chave PIS '${pisKey}' não reconhecida.`),{}},mountICMS=icms=>{const{CST:CST}=icms,cod_sit_trib=CST.length>2?CST.substring(1,3):CST;let icmsKey=ICMSMap[cod_sit_trib];icmsKey||(console.warn(`Código de situação tributária ${cod_sit_trib} não é reconhecido. Alterado para padrão 'ICMS00'.`),icmsKey="ICMS00");const requiredFields={ICMS00:["orig","CST","modBC","vBC","pICMS","vICMS","pFCP","vFCP"],ICMS02:["orig","CST","qBCMono","adRemICMS","vICMSMono"],ICMS10:["orig","CST","modBC","vBC","pICMS","vICMS","vBCFCP","pFCP","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vICMSSTDeson","motDesICMSST"],ICMS15:["orig","CST","qBCMono","adRemICMS","vICMSMono","qBCMonoReten","adRemICMSReten","vICMSMonoReten","pRedAdRem","motRedAdRem"],ICMS20:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCFCP","pFCP","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS30:["orig","CST","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vBCFCPST","pFCPST","vFCPST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS40:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS41:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS50:["orig","CST","vICMSDeson","motDesICMS","indDeduzDeson"],ICMS51:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vICMSOp","pDif","vICMSDif"],ICMS53:["orig","CST","qBCMono","adRemICMS","vICMSMonoOp","pDif","vICMSMonoDif","vICMSMono","qBCMonoDif","adRemICMSDif"],ICMS60:["orig","CST","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","pRedBCEfet","vBCEfet","pICMSEfet","vICMSEfet"],ICMS61:["orig","CST","qBCMonoRet","adRemICMSRet","vICMSMonoRet"],ICMS70:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCST","pICMSST","vICMSST","vICMSDeson","motDesICMS","indDeduzDeson","modBCST","pMVAST","pRedBCST"],ICMS90:["orig","CST","modBC","pRedBC","vBC","pICMS","vICMS","vBCST","pICMSST","vICMSST","vICMSDeson","motDesICMS","indDeduzDeson","modBCST","pMVAST","pRedBCST"],ICMSPart:["orig","CST","modBC","vBC","pRedBC","pICMS","vICMS","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","pBCOp","UFST","vBCFCPST","pFCPST","vFCPST"],ICMSST:["orig","CST","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","vBCSTDest","vICMSSTDest"],ICMSSN101:["orig","CSOSN","pCredSN","vCredICMSSN"],ICMSSN102:["orig","CSOSN"],ICMSSN201:["orig","CSOSN","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","pFCPST","vFCPST"],ICMSSN202:["orig","CSOSN","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vFCPST","vBCFCPST","pFCPST"],ICMSSN500:["orig","CSOSN","vBCSTRet","pST","vICMSSubstituto","vICMSSTRet","vBCFCPSTRet","pFCPSTRet","vFCPSTRet","pRedBCEfet","vBCEfet","pICMSEfet","vICMSEfet"],ICMSSN900:["orig","CSOSN","modBC","vBC","pRedBC","pICMS","vICMS","modBCST","pMVAST","pRedBCST","vBCST","pICMSST","vICMSST","vBCFCPST","pFCPST","vFCPST","pCredSN","vCredICMSSN"]};if(icmsKey in requiredFields){const icmsProperties=filterFieldsByType(icms,requiredFields[icmsKey]);return{[icmsKey]:icmsProperties}}return console.warn(`Chave ICMS '${icmsKey}' não reconhecida.`),{}};class NFEAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEAutorizacao",axios),this.xmlNFe=[]}gerarXml(data){return this.gerarXmlNFeAutorizacao(data)}salvaArquivos(xmlConsulta,responseInJson,xmlRetorno,options){const config=this.environment.getConfig();let dateAndTimeInFileName=config.dfe.incluirTimestampNoNomeDosArquivos;const createFileName=(prefix,includeMethodName)=>{const dtaTime=dateAndTimeInFileName?`-${format(new Date,"dd-MM-yyyy-HHmm")}`:"";return`${includeMethodName?`${this.metodo}`:""}${prefix?includeMethodName?`-${prefix}`:`${prefix}`:""}${responseInJson.chNFe?`-${responseInJson.chNFe}`:""}${dtaTime}`},salvarArquivo=(data,prefix,path,fileType,includeMethodName)=>{const fileName=createFileName(prefix,includeMethodName),method="xml"===fileType?"salvaXML":"salvaJSON";this.utility[method]({data:data,fileName:fileName,metodo:this.metodo,path:path})};let xmlAutorizacaoInJson={},xMotivoPorXml=[],xmlsInJson=[];if(options){const{xmlAutorizacao:xmlAutorizacao}=options,json=new Json;for(let i=0;i<xmlAutorizacao.length;i++){xmlAutorizacaoInJson=json.convertXmlToJson(xmlAutorizacao[i],"NFEAutorizacaoFinal"),xmlsInJson.push(xmlAutorizacaoInJson);const chNFe=xmlAutorizacaoInJson.protNFe.infProt.chNFe,xMotivo=xmlAutorizacaoInJson.protNFe.infProt.xMotivo,cStat=xmlAutorizacaoInJson.protNFe.infProt.cStat;xMotivoPorXml.push({chNFe:chNFe,xMotivo:xMotivo,cStat:cStat}),config.dfe.armazenarXMLAutorizacao&&(salvarArquivo(xmlAutorizacao[i],chNFe,config.dfe.pathXMLAutorizacao,"xml",!1),salvarArquivo(xmlAutorizacaoInJson,chNFe,config.dfe.pathXMLAutorizacao,"json",!1))}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}async trataRetorno(xmlRetorno,indSinc,responseInJson){try{const{nRec:nRec,protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno);let tipoEmissao=0;1===indSinc&&protNFe&&(tipoEmissao=1);const nfeRetornoAut=new NFERetornoAutorizacao$1(this.environment,this.utility,this.xmlBuilder,this.axios);return await nfeRetornoAut.getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:this.xmlNFe})}catch(error){throw new Error(error.message)}}anoMesEmissao(dhEmi){const dataAtual=new Date(dhEmi);return dataAtual.getFullYear().toString().slice(-2)+(dataAtual.getMonth()+1).toString().padStart(2,"0")}gerarCodigoNumerico(){return Math.floor(1e8*Math.random()).toString().padStart(8,"0")}calcularModulo11(sequencia){const pesos=[4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2];let somatoria=0;for(let i=0;i<sequencia.length;i++)somatoria+=parseInt(sequencia.charAt(i))*pesos[i];const restoDivisao=somatoria%11;return 0===restoDivisao||1===restoDivisao?0:11-restoDivisao}calcularDigitoVerificador(data){const{infNFe:{ide:{cUF:cUF,mod:mod,serie:serie,nNF:nNF,tpEmis:tpEmis,cNF:cNF,dhEmi:dhEmi},emit:{CNPJCPF:CNPJCPF}}}=data,sequencia=`${cUF}${this.anoMesEmissao(dhEmi)}${CNPJCPF}${mod}${String(serie).padStart(3,"0")}${String(nNF).padStart(9,"0")}${tpEmis}${cNF}`,dv=this.calcularModulo11(sequencia),chaveAcesso=`NFe${sequencia}`+dv;return this.chaveNfe=`${sequencia}${dv}`,{chaveAcesso:chaveAcesso,dv:dv}}validaDocumento(doc,campo){const nfeAutorizacaoHandler=new NFEAutorizacaoHandler$1,{documentoValido:documentoValido,tipoDoDocumento:tipoDoDocumento}=nfeAutorizacaoHandler.validarCpfCnpj(doc);if(!documentoValido||"Desconhecido"===tipoDoDocumento){throw new Error("Desconhecido"===tipoDoDocumento?`Documento do ${campo} ausente ou inválido`:`${tipoDoDocumento} do ${campo} é inválido`)}return tipoDoDocumento}gerarXmlNFeAutorizacao(data){const createXML=NFe=>{if(NFe?.infNFe?.det instanceof Array){const formatedItens=NFe.infNFe.det.map(((det,index)=>{if(det.imposto.ICMS.dadosICMS){const icms=mountICMS(det.imposto.ICMS.dadosICMS);det.imposto.ICMS=icms}if(det.imposto.PIS.dadosPIS){const pis=mountPIS(det.imposto.PIS.dadosPIS);det.imposto.PIS=pis}if(det.imposto.COFINS.dadosCOFINS){const cofins=mountCOFINS(det.imposto.COFINS.dadosCOFINS);det.imposto.COFINS=cofins}return{$:{nItem:index+1},...det}}));NFe.infNFe.det=formatedItens}const{chaveAcesso:chaveAcesso,dv:dv}=this.calcularDigitoVerificador(NFe);if(NFe.infNFe.ide.cDV=dv,NFe.infNFe.ide.verProc=NFe.infNFe.ide.verProc||"1.0.0.0",NFe.infNFe.emit=Object.assign({[this.validaDocumento(String(NFe.infNFe.emit.CNPJCPF),"emitente")]:NFe.infNFe.emit.CNPJCPF},NFe.infNFe.emit),delete NFe.infNFe.emit.CNPJCPF,NFe.infNFe.dest&&(NFe.infNFe.dest=Object.assign({[this.validaDocumento(String(NFe.infNFe.dest?.CNPJCPF||""),"destinatário")]:NFe.infNFe.dest?.CNPJCPF||""},NFe.infNFe.dest),delete NFe.infNFe.dest.CNPJCPF),NFe.infNFe.transp.transporta&&(NFe.infNFe.transp.transporta=Object.assign({[this.validaDocumento(String(NFe.infNFe.transp.transporta?.CNPJCPF),"transportador")]:NFe.infNFe.transp.transporta?.CNPJCPF},NFe.infNFe.transp.transporta),delete NFe.infNFe.transp.transporta?.CNPJCPF),NFe.infNFe?.NFref instanceof Array){const NFrefArray=NFe.infNFe.NFref;NFrefArray&&NFrefArray.length>0&&(NFe.infNFe.NFref=NFrefArray.map((NFref=>(NFref.refNFP&&(NFref.refNFP=Object.assign({[this.validaDocumento(String(NFref.refNFP.CNPJCPF),"produtor rural")]:NFref.refNFP.CNPJCPF},NFref.refNFP),delete NFref.refNFP.CNPJCPF),NFref))))}else NFe.infNFe.NFref&&NFe.infNFe.NFref.refNFP&&(NFe.infNFe.NFref.refNFP=Object.assign({[this.validaDocumento(String(NFe.infNFe.NFref.refNFP.CNPJCPF),"produtor rural")]:NFe.infNFe.NFref.refNFP.CNPJCPF},NFe.infNFe.NFref.refNFP));NFe.infNFe.dest&&2===NFe.infNFe.ide.tpAmb&&(NFe.infNFe.dest.xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");const xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe"},infNFe:{$:{versao:"4.00",Id:chaveAcesso},...NFe.infNFe}},eventoXML=this.xmlBuilder.gerarXml(xmlObject,"NFe"),xmlAssinado=this.xmlBuilder.assinarXML(eventoXML,"infNFe");this.xmlNFe.push(xmlAssinado)};if(data.NFe instanceof Array)for(let i=0;i<data.NFe.length;i++){createXML(data.NFe[i])}else createXML(data.NFe);const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},idLote:data.idLote,indSinc:data.indSinc,_:"[XML]"};return this.xmlBuilder.gerarXml(baseXML,"enviNFe").replace("[XML]",this.xmlNFe.join(""))}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async Exec(data){let xmlConsulta="",soapXML="";try{xmlConsulta=this.gerarXmlNFeAutorizacao(data);const{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);soapXML=xmlFormated,this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const retorno=await this.trataRetorno(xmlRetorno.data,data.indSinc,responseInJson),xmlFinal=this.salvaArquivos(xmlConsulta,responseInJson,xmlRetorno.data,{xmlAutorizacao:retorno.data,xMotivo:retorno.message});return{success:!0,xMotivo:xmlFinal.xMotivo,xmls:xmlFinal.response}}catch(error){throw this.utility.salvaConsulta(xmlConsulta,soapXML,this.metodo),new Error(error.message)}}}class NFEInutilizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEInutilizacao",axios)}gerarXml(chave){return this.gerarXmlNFeInutilizacao(chave)}criarId(codigoUF,ano,cnpj,modelo,serie,numeroInicial,numeroFinal){return`ID${codigoUF}${ano}${cnpj}${modelo}${serie}${numeroInicial}${numeroFinal}`}gerarXmlNFeInutilizacao(data){const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),{cUF:cUF,ano:ano,CNPJ:CNPJ,mod:mod,serie:serie,nNFIni:nNFIni,nNFFin:nNFFin,xJust:xJust}=data,anoFormatado=ano.toString().slice(-2),serieFormatada=serie.padStart(3,"0"),numNFIniFormatado=nNFIni.padStart(9,"0"),numNFFinFormatado=nNFFin.padStart(9,"0"),id=this.criarId(cUF,anoFormatado,CNPJ,mod,serieFormatada,numNFIniFormatado,numNFFinFormatado);if(-1===[55,65].indexOf(Number(mod)))throw new Error(`Modelo do documento para inutilização deve ser 55 ou 65. Modelo informado: ${mod}`);const xmlObject={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},infInut:{$:{Id:`${id}`},tpAmb:ambiente,xServ:"INUTILIZAR",cUF:cUF,ano:ano,CNPJ:CNPJ,mod:mod,serie:serie,nNFIni:nNFIni,nNFFin:nNFFin,xJust:xJust}},xml=this.xmlBuilder.gerarXml(xmlObject,"inutNFe");return this.xmlBuilder.assinarXML(xml,"infInut")}}class ValidaCPFCNPJ{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}mascaraCnpjCpf(cpfcnpj){return 11===(cpfcnpj=cpfcnpj.replace(/\D/g,"")).length?cpfcnpj.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/,"$1.$2.$3-$4"):14===cpfcnpj.length?cpfcnpj.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/,"$1.$2.$3/$4-$5"):cpfcnpj}}const baseDir$1=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class NFEGerarDanfe{constructor(props){const{data:data,chave:chave,outputPath:outputPath}=props;this.data=data,this.chave=chave.trim(),this.outputPath=outputPath,this.enviada=!1,this.barcodePath="../tmp",this.documento=new ValidaCPFCNPJ,this.protNFe=data.protNFe;const nfeData=Array.isArray(data.NFe)?data.NFe[0]:data.NFe,{det:det,ide:ide,emit:emit,dest:dest,total:total,transp:transp,infAdic:infAdic}=nfeData.infNFe;this.det=det,this.ide=ide,this.emit=emit,this.total=total,this.transp=transp,this.infAdic=infAdic,dest&&(this.dest=dest),this.protNFe?.infProt.nProt&&(this.enviada=!0),this.doc=new PDFDocument__default.default({margins:{top:22,right:22.68,bottom:12,left:5.67},size:"a4",bufferPages:!0,layout:"portrait",font:"Times-Roman"})}createDir(path){fs__default.default.existsSync(path)||fs__default.default.mkdirSync(path,{recursive:!0})}async generateBarcode(data){try{const barcode=(await bwipjs__default.default.toBuffer({bcid:"code128",text:data,scaleX:4,height:14,includetext:!1})).toString("base64"),barcodeDir=this.barcodePath,filePath=path__default.default.resolve(baseDir$1,this.barcodePath);this.createDir(barcodeDir),fs__default.default.writeFileSync(`${filePath}/barcode.png`,Buffer.from(barcode,"base64"))}catch(err){return console.error("Erro ao gerar código de barras:",err),null}}setLineStyle(lineWidth,strokeColor){this.doc.lineWidth(lineWidth).strokeColor(strokeColor).fill("black")}drawHeader(isFirstPage){isFirstPage?(this._buildGuia(),this._buildSeparator(),this._buildHeader(52)):this._buildHeader(0)}drawFooter(){this._buildFooter()}_buildGuia(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left,top,470,21).stroke(),this.doc.fontSize(5).text(`RECEBEMOS DE ${this.emit.xNome} OS PRODUTOS / SERVIÇOS CONSTANTES DA NOTA FISCAL INDICADO AO LADO`,10,26,{characterSpacing:.5}),this.doc.fontSize(6).text(`EMISSÃO: ${format(new Date(this.ide.dhEmi),"dd-MM-yyyy")} - DEST. / REM.: ${this.dest?.xNome||""} - VALOR TOTAL: R$ ${parseFloat(String(this.total.ICMSTot.vNF)).toFixed(2)}`,10,33.5,{characterSpacing:.5}),this.doc.rect(left+470,top,96.93,42).stroke(),this.doc.fontSize(11).text("NF-e",480,27,{characterSpacing:1.5,align:"center"}),this.doc.fontSize(8.8).font("Times-Bold").text(`Nº ${String(this.ide.nNF).padStart(2,"0")}`,480,40.5,{characterSpacing:1.5,align:"center"}),this.doc.fontSize(8.5).font("Times-Roman").text(`SÉRIE ${this.ide.serie.padStart(3,"0")}`,480,53,{characterSpacing:1.5,align:"center"}),this.doc.rect(left,top+21,75,21).stroke(),this.doc.fontSize(5).text("DATA DE RECEBIMENTO",10,46.5,{characterSpacing:.5}),this.doc.rect(left+75,top+21,395,21).stroke(),this.doc.fontSize(5).text("IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR",85,46.5,{characterSpacing:.5})}_buildSeparator(){const{left:left,right:right}=this.doc.page.margins,lineWidth=595.28-left-right;this.doc.moveTo(left,69).lineTo(left+lineWidth,69).lineWidth(1).dash(1.5,{space:1.5}).strokeColor("black").stroke(),this.doc.undash()}_buildHeader(pos){const{top:top,left:left}=this.doc.page.margins,page=this.doc.bufferedPageRange(),CNPJCPF=this.emit.CNPJCPF?.toString(),CNPJ=this.emit.CNPJ?.toString(),CPF=this.emit.CPF?.toString(),documento=this.documento.mascaraCnpjCpf(CNPJCPF||CNPJ||CPF||"");this.setLineStyle(.75,"#1c1c1c");const topIdentificacao_1=top+pos,identificationJoined=`\nCEP: ${this.emit.enderEmit.CEP} - ${this.emit.enderEmit.xBairro} - ${this.emit.enderEmit.UF}\nTEL: ${this.emit.enderEmit.fone} - FAX: ${this.emit.enderEmit.fone}`;(()=>{this.doc.rect(left,topIdentificacao_1,197.5,98).stroke(),this.doc.fontSize(5).text("IDENTIFICAÇÃO DO EMITENTE",10,topIdentificacao_1+3.5,{characterSpacing:.5}),this.doc.fontSize(8).font("Times-Bold").text(this.emit.xNome,35,topIdentificacao_1+14,{characterSpacing:1,width:170,lineBreak:!0,lineGap:4}),this.doc.fontSize(7).font("Times-Roman").text(`${this.emit.enderEmit.xLgr}, ${this.emit.enderEmit.nro} ${this.emit.xFant?`- ${this.emit.xFant}`:""}`,10,topIdentificacao_1+44,{characterSpacing:1,width:181,lineBreak:!0,lineGap:2,continued:!0}).text(identificationJoined)})(),(()=>{this.doc.rect(left+197.5,topIdentificacao_1,112.7,98).stroke(),this.doc.fontSize(12).font("Times-Bold").text("DANFE",203,topIdentificacao_1+8,{characterSpacing:1.5,width:112.7,align:"center"}),this.doc.fontSize(6).text("DOCUMENTO AUXILIAR DA NOTA FISCAL ELETRÔNICA",215,topIdentificacao_1+20,{characterSpacing:.5,width:95,align:"left",lineGap:2}),this.doc.fontSize(8).font("Times-Roman").text("0 - ENTRADA",217,topIdentificacao_1+40,{characterSpacing:.5,align:"left"}),this.doc.fontSize(8).text("1 - SAÍDA",217,topIdentificacao_1+50,{characterSpacing:.5,align:"left"}),this.doc.rect(left+275,topIdentificacao_1+38,18,18).stroke(),this.doc.fontSize(14).font("Times-Bold").text(String(this.ide.tpNF),left+280,topIdentificacao_1+42.5),this.doc.fontSize(8.8).text(`Nº ${String(this.ide.nNF).padStart(2,"0")}`,208,topIdentificacao_1+65,{characterSpacing:1}),this.doc.fontSize(10).font("Times-Roman").text(`fl. ${page.start+1}/${page.count}`,240,topIdentificacao_1+65,{characterSpacing:1.5,width:112.7,align:"center"}),this.doc.fontSize(8.8).text(`SÉRIE ${this.ide.serie.padStart(3,"0")}`,208,topIdentificacao_1+78,{characterSpacing:1.5,width:112.7,align:"center"})})(),(()=>{this.doc.rect(left+310.2,topIdentificacao_1,256.73,35).stroke();const filePath=path__default.default.resolve(baseDir$1,this.barcodePath);if(this.doc.image(`${filePath}/barcode.png`,left+323.5,topIdentificacao_1+3,{width:230,height:30}),2===Number(this.ide.tpAmb)||this.enviada||this.doc.fontSize(14).font("Times-Bold").fillColor("red").text("NF-E NÃO ENVIADA PARA SEFAZ",left+316,topIdentificacao_1+12,{characterSpacing:1,width:256.73}),this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left+310.2,topIdentificacao_1+35,256.73,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("CHAVE DE ACESSO",left+314,topIdentificacao_1+38,{characterSpacing:.5}),this.doc.fontSize(6).text(this.chave,left+310.2,topIdentificacao_1+47,{characterSpacing:1,width:256.73,align:"center"}),this.doc.rect(left+310.2,topIdentificacao_1+58,256.73,40).stroke(),(2===Number(this.ide.tpAmb)||this.enviada)&&(this.doc.fontSize(6.5).text("Consulta de autenticidade no portal nacional da NF-e",left+310.2,topIdentificacao_1+65,{characterSpacing:.5,width:256.73,align:"center"}),this.doc.fontSize(6.5).text("www.nfe.fazenda.gov.br/portal",left+310.2,topIdentificacao_1+75,{characterSpacing:.5,width:256.73,align:"center"}),this.doc.fontSize(6.5).text("ou no site da Sefaz Autorizadora",left+310.2,topIdentificacao_1+85,{characterSpacing:.5,width:256.73,align:"center"})),this.doc.rect(left,topIdentificacao_1+98,310.2,23).stroke(),this.doc.fontSize(5).text("NATUREZA DE OPERAÇÃO",left+4,topIdentificacao_1+102,{characterSpacing:.5}),this.doc.fontSize(8).text(this.ide.natOp,left+4,topIdentificacao_1+112,{characterSpacing:1}),this.doc.rect(left+310.2,topIdentificacao_1+98,256.73,23).stroke(),2===Number(this.ide.tpAmb)||this.enviada){let dhRecbto="";this.protNFe?.infProt.dhRecbto&&(dhRecbto=format(new Date(this.protNFe?.infProt.dhRecbto),"dd/MM/yyyy HH:mm:ss"));const xProtNfe=`${String(this.protNFe?.infProt.nProt||"")} ${dhRecbto}`;this.doc.fontSize(5).text("PROTOCOLO DE AUTORIZAÇÃO DE USO",left+314.2,topIdentificacao_1+102,{characterSpacing:.5}),this.doc.fontSize(8).text(xProtNfe,left+314.2,topIdentificacao_1+112,{characterSpacing:1})}})(),(()=>{this.doc.rect(left,topIdentificacao_1+121,189.5,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+4,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.emit.IE,left+5,topIdentificacao_1+135,{characterSpacing:1}),this.doc.rect(left+189.5,topIdentificacao_1+121,187.93,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL DO SUBST. TRIB.",left+193.5,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.emit.IEST||""),left+194.5,topIdentificacao_1+135,{characterSpacing:1}),this.doc.rect(left+377.43,topIdentificacao_1+121,189.5,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+381.43,topIdentificacao_1+125,{characterSpacing:.5}),this.doc.fontSize(8).text(documento,left+386.43,topIdentificacao_1+135,{characterSpacing:1})})()}_buildDestinatario(){const{top:top,left:left}=this.doc.page.margins,docDest=this.documento.mascaraCnpjCpf(this.dest?.CNPJCPF||this.dest?.CNPJ||this.dest?.CPF||"");this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+90;this.doc.fontSize(6).font("Times-Bold").text("DESTINATÁRIO / REMETENTE",left,topDestinatario+114,{characterSpacing:.5}),(()=>{this.doc.rect(left,topDestinatario+120,398,23).stroke();let xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";2!==Number(this.ide.tpAmb)&&(xNome=String(this.dest?.xNome||"")),this.doc.fontSize(5).font("Times-Roman").text("NOME / RAZÃO SOCIAL",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(xNome,left+5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+398,topDestinatario+120,94,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+402,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(docDest,left+403,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+120,74.3,23).stroke(),this.doc.fontSize(5).text("DATA DA EMISSÃO",left+496,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date(this.ide.dhEmi),"dd-MM-yyyy"),left+497,topDestinatario+135,{characterSpacing:1})})(),(()=>{this.doc.rect(left,topDestinatario+143,320,23).stroke(),this.doc.fontSize(5).text("ENDEREÇO",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(`${this.dest?.enderDest?.xLgr||""}, ${this.dest?.enderDest?.nro||""}`,left+5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+320,topDestinatario+143,118.5,23).stroke(),this.doc.fontSize(5).text("BAIRRO / DISTRITO",left+324,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.xBairro||""),left+326,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+438.5,topDestinatario+143,53.5,23).stroke(),this.doc.fontSize(5).text("CEP",left+442.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.CEP||""),left+443.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+143,74.3,23).stroke(),this.doc.fontSize(5).text("DATA SAÍDA / ENTRADA",left+496,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date,"dd-MM-yyyy"),left+497,topDestinatario+158,{characterSpacing:1})})(),(()=>{this.doc.rect(left,topDestinatario+166,246.5,23).stroke(),this.doc.fontSize(5).text("MUNICÍPIO",left+4,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.xMun||""),left+5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+246.5,topDestinatario+166,113,23).stroke(),this.doc.fontSize(5).text("FONE / FAX",left+250.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(this.dest?.enderDest?.fone||"",left+250.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+359.5,topDestinatario+166,40,23).stroke(),this.doc.fontSize(5).text("UF",left+363.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.enderDest?.UF||""),left+363.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+399.5,topDestinatario+166,92.5,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+403.5,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.dest?.indIEDest||""),left+403.5,topDestinatario+181,{characterSpacing:1}),this.doc.rect(left+492,topDestinatario+166,74.3,23).stroke(),this.doc.fontSize(5).text("HORA DA SAÍDA",left+496,topDestinatario+171,{characterSpacing:.5}),this.doc.fontSize(8).text(format(new Date,"HH:mm"),left+497,topDestinatario+181,{characterSpacing:1})})()}_builCalculoImposto(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+173;this.doc.fontSize(6).font("Times-Bold").text("CÁLCULO DO IMPOSTO",left,topDestinatario+114,{characterSpacing:.5}),(()=>{this.doc.rect(left,topDestinatario+120,86,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("BASE DE CÁLCULO DO ICMS",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vBC)).toFixed(2),left-8,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+86,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO ICMS",left+90,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vICMS)).toFixed(2),left+86-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+165,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("BASE CÁLC. ICMS SUBST",left+169,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vBCST)).toFixed(2),left+165-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+244,topDestinatario+120,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO ICMS SUBST.",left+248,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vST)).toFixed(2),left+244-16,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+323,topDestinatario+120,91,23).stroke(),this.doc.fontSize(5).text("VALOR APROX. DOS TRIBUTOS",left+327,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(this.total.ICMSTot.vTotTrib||"0").toFixed(2),left+323-6,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+414,topDestinatario+120,152.93,23).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(5).text("VALOR TOTAL DOS PRODUTOS",left+418,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vProd)).toFixed(2),left+480-8,topDestinatario+135,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left,topDestinatario+143,86,23).stroke(),this.doc.fontSize(5).text("VALOR DO FRETE",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vFrete)).toFixed(2),left-8,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+86,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("VALOR DO SEGURO",left+90,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vSeg)).toFixed(2),left+86-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+165,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("DESCONTO",left+169,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vDesc)).toFixed(2),left+165-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+244,topDestinatario+143,79,23).stroke(),this.doc.fontSize(5).text("OUTRAS DESP. ACESS.",left+248,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vOutro)).toFixed(2),left+244-16,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+323,topDestinatario+143,91,23).stroke(),this.doc.fontSize(5).text("VALOR DO IPI",left+327,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vIPI)).toFixed(2),left+323-6,topDestinatario+158,{characterSpacing:1,align:"right",width:86}),this.doc.rect(left+414,topDestinatario+143,152.93,23).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(5).text("VALOR TOTAL DA NOTA",left+418,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(parseFloat(String(this.total.ICMSTot.vNF)).toFixed(2),left+480-8,topDestinatario+158,{characterSpacing:1,align:"right",width:86})})()}_builTransporte(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");const topDestinatario=top+233,getModFrete=()=>{const modFrete=parseInt(String(this.transp.modFrete));switch(modFrete){case 0:case 3:return`${modFrete} - REMETENTE`;case 1:case 4:return`${modFrete} - DESTINATÁRIO`;case 2:return`${modFrete} - TERCEIROS`;default:return""}};this.doc.fontSize(6).font("Times-Bold").text("TRANSPORTADOR / VOLUMES TRANSPORTADOS",left,topDestinatario+114,{characterSpacing:.5}),(()=>{const documento=this.documento.mascaraCnpjCpf(this.transp.transporta?.CNPJCPF||this.transp.transporta?.CNPJ||this.transp.transporta?.CPF||"");this.doc.rect(left,topDestinatario+120,248.5,23).stroke(),this.doc.fontSize(5).font("Times-Roman").text("RAZÃO SOCIAL",left+4,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xNome||"",left+5,topDestinatario+135,{characterSpacing:1,width:246}),this.doc.rect(left+248.5,topDestinatario+120,90,23).stroke(),this.doc.fontSize(5).text("FRETE POR CONTA",left+252.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(getModFrete(),left+253.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+338.5,topDestinatario+120,50,23).stroke(),this.doc.fontSize(5).text("CÓDIGO ANTT",left+342.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.veicTransp?.RNTC||"",left+343.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+388.5,topDestinatario+120,62,23).stroke(),this.doc.fontSize(5).text("PLACA DO VEÍCULO",left+391.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.veicTransp?.placa||"",left+393.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+450.5,topDestinatario+120,22,23).stroke(),this.doc.fontSize(5).text("UF",left+454.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.UF||"",left+455.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left+472.5,topDestinatario+120,94.43,23).stroke(),this.doc.fontSize(5).text("CNPJ / CPF",left+476.5,topDestinatario+125,{characterSpacing:.5}),this.doc.fontSize(8).text(documento,left+477.5,topDestinatario+135,{characterSpacing:1}),this.doc.rect(left,topDestinatario+143,338.5,23).stroke(),this.doc.fontSize(5).text("ENDEREÇO",left+4,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xEnder||"",left+4,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+338.5,topDestinatario+143,112,23).stroke(),this.doc.fontSize(5).text("MUNICÍPIO",left+342.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp.transporta?.xMun||"",left+343.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+450.5,topDestinatario+143,22,23).stroke(),this.doc.fontSize(5).text("UF",left+454.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.UF||"",left+455.5,topDestinatario+158,{characterSpacing:1}),this.doc.rect(left+472.5,topDestinatario+143,94.43,23).stroke(),this.doc.fontSize(5).text("INSCRIÇÃO ESTADUAL",left+476.5,topDestinatario+148,{characterSpacing:.5}),this.doc.fontSize(8).text(this.transp?.transporta?.IE||"",left+476.5,topDestinatario+158,{characterSpacing:1})})(),(()=>{if(this.transp.vol){let topTrnasport=topDestinatario+166,topTrnasportTitle=topDestinatario+171,topTrnasportValue=topDestinatario+181;const createVolume=vol=>{this.doc.rect(left,topTrnasport,68.5,23).stroke(),this.doc.fontSize(5).text("QUANTIDADE",left+4,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.qVol||""),left-8,topTrnasportValue,{characterSpacing:1,align:"right",width:68.5}),this.doc.rect(left+68.5,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("ESPÉCIE",left+72.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.esp||""),left+73.5,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+169,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("MARCA",left+173,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.marca||""),left+174,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+269.5,topTrnasport,100.5,23).stroke(),this.doc.fontSize(5).text("NUMERAÇÃO",left+273.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+274.5,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+370,topTrnasport,102.6,23).stroke(),this.doc.fontSize(5).text("PESO BRUTO",left+374,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+375,topTrnasportValue,{characterSpacing:1}),this.doc.rect(left+472.5,topTrnasport,94.43,23).stroke(),this.doc.fontSize(5).text("PESO LÍQUIDO",left+474.5,topTrnasportTitle,{characterSpacing:.5}),this.doc.fontSize(8).text(String(vol?.nVol||""),left+475.5,topTrnasportValue,{characterSpacing:1}),topTrnasport+=23,topTrnasportTitle+=23,topTrnasportValue+=23};if(this.transp.vol instanceof Array)for(let vol of this.transp.vol)createVolume(vol);else createVolume(this.transp.vol)}})()}_buildProdutos(){const{top:top,left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c"),this.doc.fontSize(6).font("Times-Bold").fillColor("black").text("DADOS DO PRODUTO / SERVIÇOS",left,452,{characterSpacing:.5});let y=458,currentPage=0;const header=top=>{this.doc.rect(left,top,40,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.font("Times-Roman").fontSize(5.7).text("CÓDIGO DO PROD. / SERV",left,top+2.8,{width:40,align:"center"}),this.doc.rect(left+40,top,138,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("DESCRIÇÃO DO PRODUTO / SERVIÇO",left+40,top+5.9,{width:138,align:"center"}),this.doc.rect(left+178,top,30,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("NCM / SH",left+178,top+5.9,{width:30,align:"center"}),this.doc.rect(left+208,top,17,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("CST",left+208,top+5.9,{width:17,align:"center"}),this.doc.rect(left+225,top,28,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("CFOP",left+225,top+5.9,{width:28,align:"center"}),this.doc.rect(left+253,top,23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("UNID.",left+253,top+5.9,{width:23,align:"center"}),this.doc.rect(left+276,top,25,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("QUANT.",left+276,top+5.9,{width:25,align:"center"}),this.doc.rect(left+301,top,37.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR UNITÁRIO",left+301,top+2.9,{width:37.23,align:"center"}),this.doc.rect(left+338.23,top,39.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR DESCONTO",left+338.23,top+2.9,{width:39.23,align:"center"}),this.doc.rect(left+377.46,top,33.23,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR LIQUIDO",left+377.46,top+2.9,{width:33.23,align:"center"}),this.doc.rect(left+410.69,top,38,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("BASE CÁLC. ICMS",left+413.8,top+2.9,{width:32,align:"center"}),this.doc.rect(left+448.69,top,35,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR I.C.M.S.",left+448.69,top+2.9,{width:35,align:"center"}),this.doc.rect(left+483.69,top,38,15).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("VALOR I.P.I.",left+490.69,top+2.9,{width:25,align:"center"}),this.doc.rect(left+521.69,top,45.2,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("ALÍQUOTAS",left+521.69,top+2,{width:45,align:"center"}),this.doc.rect(left+521.69,top+7.5,22.5,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("ICMS",left+521.69,top+9.5,{width:22.5,align:"center"}),this.doc.rect(left+544.19,top+7.5,22.75,7.5).fillAndStroke("#DDDDDD","#1c1c1c"),this.setLineStyle(.75,"#1c1c1c"),this.doc.text("IPI",left+544.19,top+9.5,{width:22.5,align:"center"})},row=(top,item)=>{const CST=function getCST(ICMS){const chavesICMS=Object.keys(ICMS),icmsSemCST=["ICMSSN101","ICMSSN102","ICMSSN201","ICMSSN202","ICMSSN500","ICMSSN900"].includes(chavesICMS[0]);let CST="";if(chavesICMS.length>0){const tipoICMS=chavesICMS[0];icmsSemCST||(CST=ICMS[tipoICMS].CST)}return CST}(item.imposto.ICMS),{vIPI:vIPI,pIPI:pIPI}=function getValoresIPI(IPI){return IPI?{vIPI:parseFloat(String(IPI.IPITrib.vIPI)).toFixed(2),pIPI:parseFloat(String(IPI.IPITrib.pIPI)).toFixed(2)}:{vIPI:"0,00",pIPI:"0,00"}}(item.imposto.IPI),{vBC:vBC,vICMS:vICMS,pICMS:pICMS}=function getValoresItem(ICMS){const chavesICMS=Object.keys(ICMS),icmsSemvBC=["ICMS02","ICMS15","ICMS30","ICMS40","ICMS53","ICMS60","ICMS61","ICMSST","ICMSSN101","ICMSSN102","ICMSSN201","ICMSSN202","ICMSSN500"].includes(chavesICMS[0]);let vBC="0,00",vICMS="0,00",pICMS="0,00";if(chavesICMS.length>0){const tipoICMS=chavesICMS[0];if(!icmsSemvBC)return vBC=ICMS[tipoICMS].vBC,vICMS=ICMS[tipoICMS].vICMS,pICMS=ICMS[tipoICMS].pICMS,{vBC:parseFloat(vBC).toFixed(2),vICMS:parseFloat(vBC).toFixed(2),pICMS:parseFloat(pICMS).toFixed(2)}}return{vBC:vBC,vICMS:vICMS,pICMS:pICMS}}(item.imposto.ICMS),text=item.infAdProd?`${item.prod.xProd||""}\n${item.infAdProd}`:item.prod.xProd||"",textHeight=this.doc.heightOfString(text,{width:138,align:"center"}),itemHeight=Math.max(15,textHeight+10);this.setLineStyle(.75,"#1c1c1c"),this.doc.rect(left,top,40,itemHeight).stroke(),this.doc.font("Times-Roman").fontSize(6).text(item.prod.cProd||"",left+2,top+3,{width:40}),this.doc.rect(left+40,top,138,itemHeight).stroke(),this.doc.text(text,left+43,top+4,{width:137}),this.doc.rect(left+178,top,30,itemHeight).stroke(),this.doc.text(String(item.prod.NCM)||"",left+178,top+5.9,{width:30,align:"center"}),this.doc.rect(left+208,top,17,itemHeight).stroke(),this.doc.text(CST,left+208,top+5.9,{width:17,align:"center"}),this.doc.rect(left+225,top,28,itemHeight).stroke(),this.doc.text(String(item.prod.CFOP||""),left+225,top+5.9,{width:28,align:"center"}),this.doc.rect(left+253,top,23,itemHeight).stroke(),this.doc.text(item.prod.uCom||item.prod.uTrib||"",left+256,top+5.9,{width:23});const quant=parseFloat(String(item.prod.qCom||item.prod.qTrib)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.rect(left+276,top,25,itemHeight).stroke(),this.doc.text(String(quant||""),left+274.5,top+5.9,{width:25,align:"right"});const valUnit=parseFloat(String(item.prod.vUnCom||item.prod.vUnTrib||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});this.doc.rect(left+301,top,37.23,itemHeight).stroke(),this.doc.text(valUnit,left+299.5,top+5.9,{width:37.23,align:"right"});const valDesc=parseFloat(String(item.prod.vDesc||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});this.doc.rect(left+338.23,top,39.23,itemHeight).stroke(),this.doc.text(valDesc,left+336.73,top+5.9,{width:39.23,align:"right"});const valLiq=parseFloat(String(item.prod.vProd||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});return this.doc.rect(left+377.46,top,33.23,itemHeight).stroke(),this.doc.text(valLiq,left+375.96,top+5.9,{width:33.23,align:"right"}),this.doc.rect(left+410.69,top,38,itemHeight).stroke(),this.doc.text(vBC,left+409.19,top+5.9,{width:38,align:"right"}),this.doc.rect(left+448.69,top,35,itemHeight).stroke(),this.doc.text(vICMS,left+447.19,top+5.9,{width:35,align:"right"}),this.doc.rect(left+483.69,top,38,itemHeight).stroke(),this.doc.text(vIPI,left+482.19,top+5.9,{width:38,align:"right"}),this.doc.rect(left+521.69,top,22.5,itemHeight).stroke(),this.doc.text(pICMS,left+520.19,top+5.9,{width:22.5,align:"right"}),this.doc.rect(left+544.19,top,22.75,itemHeight).stroke(),this.doc.text(pIPI,left+542.69,top+5.9,{width:22.5,align:"right"}),itemHeight};header(458);const createTable=prod=>{y+15>this.doc.page.height-160&&(this.doc.addPage(),currentPage++,currentPage>0&&(y=185,this.doc.fontSize(6).font("Times-Bold").fillColor("black").text("DADOS DO PRODUTO / SERVIÇOS",left,175,{characterSpacing:.5}),header(185)));const itemHeight=row(y+15,prod);y+=itemHeight};if(this.det instanceof Array)for(let i=0;i<this.det.length;i++){createTable(this.det[i])}else createTable(this.det)}_buildFooter(){const{left:left}=this.doc.page.margins;this.setLineStyle(.75,"#1c1c1c");if(this.doc.fontSize(6).font("Times-Bold").text("DADOS ADICIONAIS",left,726.95,{characterSpacing:.5}),this.doc.rect(left,731.95,408,95).stroke(),this.doc.fontSize(5).font("Times-Roman").text("INFORMAÇÕES COMPLEMENTARES",10,736.45,{characterSpacing:.5}),this.doc.fontSize(8).text(this.infAdic?.infCpl||"",13,744.95,{characterSpacing:1,width:400}),this.doc.rect(left+408,731.95,158.93,95).stroke(),this.doc.fontSize(5).text("RESERVADO AO FISCO",418,736.45,{characterSpacing:.5}),this.doc.fontSize(8).text(String(this.infAdic?.infAdFisco||""),13,744.95,{characterSpacing:1,width:400}),this.exibirMarcaDaguaDanfe){const topPosition=2!==Number(Number(this.ide.tpAmb))?769.95:789.95,leftPosition=2!==Number(Number(this.ide.tpAmb))?left+150:left+100;this.doc.fontSize(26).font("Times-Bold").fillColor("#c7c7c7").text("NFeWizard-io",leftPosition,topPosition,{characterSpacing:.5})}2===Number(Number(this.ide.tpAmb))&&this.doc.fontSize(14).font("Times-Bold").fillColor("grey").text("AMBIENTE DE HOMOLOGAÇÃO - NF-E SEM VALOR FISCAL",left+100,776.95,{characterSpacing:1})}async generatePDF(exibirMarcaDaguaDanfe){try{this.exibirMarcaDaguaDanfe=exibirMarcaDaguaDanfe||!0;const chave=this.chave;return await this.generateBarcode(chave),this.doc.pipe(fs__default.default.createWriteStream(this.outputPath)),this.drawHeader(!0),this._buildDestinatario(),this._builCalculoImposto(),this._builTransporte(),this.doc.on("pageAdded",(()=>{this.drawHeader(!1)})),this.drawFooter(),this.doc.on("pageAdded",(()=>{this.drawFooter()})),this._buildProdutos(),this.doc.end(),{message:` DANFE Gerada em '${this.outputPath}'`,success:!0}}catch(error){throw new Error(`Erro ao gerar DANFE: ${error.message}`)}}}class NFEDistribuicaoDFePorUltNSU extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDistribuicaoDFePorNSU extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDistribuicaoDFePorChave extends NFEDistribuicaoDFe{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECancelamento extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECienciaDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEConfirmacaoDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEOperacaoNaoRealizada extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFECartaDeCorrecao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEDesconhecimentoDaOperacao extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}class NFEEpec extends NFERecepcaoEvento{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,axios)}}var cookies,hasRequiredCookies,nodemailer$1={},shared={exports:{}},fetch$1={exports:{}};var hasRequiredFetch,hasRequiredShared,mimeTypes_1,hasRequiredMimeTypes,punycode_1,hasRequiredPunycode,base64,hasRequiredBase64,qp,hasRequiredQp,mimeFuncs,hasRequiredMimeFuncs,addressparser_1,hasRequiredAddressparser,lastNewline,hasRequiredLastNewline,leWindows,hasRequiredLeWindows,leUnix,hasRequiredLeUnix,mimeNode,hasRequiredMimeNode,mailComposer,hasRequiredMailComposer,messageParser,hasRequiredMessageParser,relaxedBody,hasRequiredRelaxedBody,require$$9={name:"nodemailer",version:"6.9.14",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",lint:"eslint .",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install"},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-ses":"3.600.0",bunyan:"1.8.15",c8:"10.1.2",eslint:"8.57.0","eslint-config-nodemailer":"1.2.0","eslint-config-prettier":"9.1.0",libbase64:"1.3.0",libmime:"5.3.5",libqp:"2.1.0","nodemailer-ntlm-auth":"1.0.4",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.13.4"},engines:{node:">=6.0.0"}};function requireFetch(){if(hasRequiredFetch)return fetch$1.exports;hasRequiredFetch=1;const http=require$$3__default.default,https=https__default.default,urllib=require$$0__default$4.default,zlib=zlib__default.default,PassThrough=require$$0__default$2.default.PassThrough,Cookies=function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;const urllib=require$$0__default$4.default;return cookies=class Cookies{constructor(options){this.options=options||{},this.cookies=[]}set(cookieStr,url){let domain,urlparts=urllib.parse(url||""),cookie=this.parse(cookieStr);return cookie.domain?(domain=cookie.domain.replace(/^\./,""),(urlparts.hostname.length<domain.length||("."+urlparts.hostname).substr(1-domain.length)!=="."+domain)&&(cookie.domain=urlparts.hostname)):cookie.domain=urlparts.hostname,cookie.path||(cookie.path=this.getPath(urlparts.pathname)),cookie.expires||(cookie.expires=new Date(Date.now()+1e3*(Number(this.options.sessionTimeout||1800)||1800))),this.add(cookie)}get(url){return this.list(url).map((cookie=>cookie.name+"="+cookie.value)).join("; ")}list(url){let i,cookie,result=[];for(i=this.cookies.length-1;i>=0;i--)cookie=this.cookies[i],this.isExpired(cookie)?this.cookies.splice(i,i):this.match(cookie,url)&&result.unshift(cookie);return result}parse(cookieStr){let cookie={};return(cookieStr||"").toString().split(";").forEach((cookiePart=>{let domain,valueParts=cookiePart.split("="),key=valueParts.shift().trim().toLowerCase(),value=valueParts.join("=").trim();if(key)switch(key){case"expires":value=new Date(value),"Invalid Date"!==value.toString()&&(cookie.expires=value);break;case"path":cookie.path=value;break;case"domain":domain=value.toLowerCase(),domain.length&&"."!==domain.charAt(0)&&(domain="."+domain),cookie.domain=domain;break;case"max-age":cookie.expires=new Date(Date.now()+1e3*(Number(value)||0));break;case"secure":cookie.secure=!0;break;case"httponly":cookie.httponly=!0;break;default:cookie.name||(cookie.name=key,cookie.value=value)}})),cookie}match(cookie,url){let urlparts=urllib.parse(url||"");return(urlparts.hostname===cookie.domain||"."===cookie.domain.charAt(0)&&("."+urlparts.hostname).substr(-cookie.domain.length)===cookie.domain)&&this.getPath(urlparts.pathname).substr(0,cookie.path.length)===cookie.path&&(!cookie.secure||"https:"===urlparts.protocol)}add(cookie){let i,len;if(!cookie||!cookie.name)return!1;for(i=0,len=this.cookies.length;i<len;i++)if(this.compare(this.cookies[i],cookie))return this.isExpired(cookie)?(this.cookies.splice(i,1),!1):(this.cookies[i]=cookie,!0);return this.isExpired(cookie)||this.cookies.push(cookie),!0}compare(a,b){return a.name===b.name&&a.path===b.path&&a.domain===b.domain&&a.secure===b.secure&&a.httponly==a.httponly}isExpired(cookie){return cookie.expires&&cookie.expires<new Date||!cookie.value}getPath(pathname){let path=(pathname||"/").split("/");return path.pop(),path=path.join("/").trim(),"/"!==path.charAt(0)&&(path="/"+path),"/"!==path.substr(-1)&&(path+="/"),path}},cookies}(),packageData=require$$9,net=require$$7__default.default;function nmfetch(url,options){(options=options||{}).fetchRes=options.fetchRes||new PassThrough,options.cookies=options.cookies||new Cookies,options.redirects=options.redirects||0,options.maxRedirects=isNaN(options.maxRedirects)?5:options.maxRedirects,options.cookie&&([].concat(options.cookie||[]).forEach((cookie=>{options.cookies.set(cookie,url)})),options.cookie=!1);let cookies,body,req,fetchRes=options.fetchRes,parsed=urllib.parse(url),method=(options.method||"").toString().trim().toUpperCase()||"GET",finished=!1,handler="https:"===parsed.protocol?https:http,headers={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+packageData.version};if(Object.keys(options.headers||{}).forEach((key=>{headers[key.toLowerCase().trim()]=options.headers[key]})),options.userAgent&&(headers["user-agent"]=options.userAgent),parsed.auth&&(headers.Authorization="Basic "+Buffer.from(parsed.auth).toString("base64")),(cookies=options.cookies.get(url))&&(headers.cookie=cookies),options.body){if(!1!==options.contentType&&(headers["Content-Type"]=options.contentType||"application/x-www-form-urlencoded"),"function"==typeof options.body.pipe)headers["Transfer-Encoding"]="chunked",body=options.body,body.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err))}));else{if(options.body instanceof Buffer)body=options.body;else if("object"==typeof options.body)try{body=Buffer.from(Object.keys(options.body).map((key=>{let value=options.body[key].toString().trim();return encodeURIComponent(key)+"="+encodeURIComponent(value)})).join("&"))}catch(E){if(finished)return;return finished=!0,E.type="FETCH",E.sourceUrl=url,void fetchRes.emit("error",E)}else body=Buffer.from(options.body.toString().trim());headers["Content-Type"]=options.contentType||"application/x-www-form-urlencoded",headers["Content-Length"]=body.length}method=(options.method||"").toString().trim().toUpperCase()||"POST"}let reqOptions={method:method,host:parsed.hostname,path:parsed.path,port:parsed.port?parsed.port:"https:"===parsed.protocol?443:80,headers:headers,rejectUnauthorized:!1,agent:!1};options.tls&&Object.keys(options.tls).forEach((key=>{reqOptions[key]=options.tls[key]})),"https:"!==parsed.protocol||!parsed.hostname||parsed.hostname===reqOptions.host||net.isIP(parsed.hostname)||reqOptions.servername||(reqOptions.servername=parsed.hostname);try{req=handler.request(reqOptions)}catch(E){return finished=!0,setImmediate((()=>{E.type="FETCH",E.sourceUrl=url,fetchRes.emit("error",E)})),fetchRes}return options.timeout&&req.setTimeout(options.timeout,(()=>{if(finished)return;finished=!0,req.abort();let err=new Error("Request Timeout");err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err)})),req.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err))})),req.on("response",(res=>{let inflate;if(!finished){switch(res.headers["content-encoding"]){case"gzip":case"deflate":inflate=zlib.createUnzip()}if(res.headers["set-cookie"]&&[].concat(res.headers["set-cookie"]||[]).forEach((cookie=>{options.cookies.set(cookie,url)})),[301,302,303,307,308].includes(res.statusCode)&&res.headers.location){if(options.redirects++,options.redirects>options.maxRedirects){finished=!0;let err=new Error("Maximum redirect count exceeded");return err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),void req.abort()}return options.method="GET",options.body=!1,nmfetch(urllib.resolve(url,res.headers.location),options)}if(fetchRes.statusCode=res.statusCode,fetchRes.headers=res.headers,res.statusCode>=300&&!options.allowErrorResponse){finished=!0;let err=new Error("Invalid status code "+res.statusCode);return err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),void req.abort()}res.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),req.abort())})),inflate?(res.pipe(inflate).pipe(fetchRes),inflate.on("error",(err=>{finished||(finished=!0,err.type="FETCH",err.sourceUrl=url,fetchRes.emit("error",err),req.abort())}))):res.pipe(fetchRes)}})),setImmediate((()=>{if(body)try{if("function"==typeof body.pipe)return body.pipe(req);req.write(body)}catch(err){return finished=!0,err.type="FETCH",err.sourceUrl=url,void fetchRes.emit("error",err)}req.end()})),fetchRes}return fetch$1.exports=function(url,options){return nmfetch(url,options)},fetch$1.exports.Cookies=Cookies,fetch$1.exports}function requireShared(){return hasRequiredShared||(hasRequiredShared=1,function(module){const urllib=require$$0__default$4.default,util=require$$0__default$3.default,fs=fs__default.default,nmfetch=requireFetch(),dns=require$$4__default$2.default,net=require$$7__default.default,os=require$$0__default$5.default;let networkInterfaces;try{networkInterfaces=os.networkInterfaces()}catch(err){}module.exports.networkInterfaces=networkInterfaces;const isFamilySupported=(family,allowInternal)=>{let networkInterfaces=module.exports.networkInterfaces;if(!networkInterfaces)return!0;return Object.keys(networkInterfaces).map((key=>networkInterfaces[key])).reduce(((acc,val)=>acc.concat(val)),[]).filter((i=>!i.internal||allowInternal)).filter((i=>i.family==="IPv"+family||i.family===family)).length>0},resolver=(family,hostname,options,callback)=>{if(!isFamilySupported(family,(options=options||{}).allowInternalNetworkInterfaces))return callback(null,[]);(dns.Resolver?new dns.Resolver(options):dns)["resolve"+family](hostname,((err,addresses)=>{if(err){switch(err.code){case dns.NODATA:case dns.NOTFOUND:case dns.NOTIMP:case dns.SERVFAIL:case dns.CONNREFUSED:case dns.REFUSED:case"EAI_AGAIN":return callback(null,[])}return callback(err)}return callback(null,Array.isArray(addresses)?addresses:[].concat(addresses||[]))}))},dnsCache=module.exports.dnsCache=new Map,formatDNSValue=(value,extra)=>value?Object.assign({servername:value.servername,host:value.addresses&&value.addresses.length?1===value.addresses.length?value.addresses[0]:value.addresses[Math.floor(Math.random()*value.addresses.length)]:null},extra||{}):Object.assign({},extra||{});function resolveStream(stream,callback){let responded=!1,chunks=[],chunklen=0;stream.on("error",(err=>{responded||(responded=!0,callback(err))})),stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),stream.on("end",(()=>{if(responded)return;let value;responded=!0;try{value=Buffer.concat(chunks,chunklen)}catch(E){return callback(E)}callback(null,value)}))}module.exports.resolveHostname=(options,callback)=>{if(!(options=options||{}).host&&options.servername&&(options.host=options.servername),!options.host||net.isIP(options.host)){let value={addresses:[options.host],servername:options.servername||!1};return callback(null,formatDNSValue(value,{cached:!1}))}let cached;if(dnsCache.has(options.host)&&(cached=dnsCache.get(options.host),!cached.expires||cached.expires>=Date.now()))return callback(null,formatDNSValue(cached.value,{cached:!0}));resolver(4,options.host,options,((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);if(addresses&&addresses.length){let value={addresses:addresses,servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}resolver(6,options.host,options,((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);if(addresses&&addresses.length){let value={addresses:addresses,servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}try{dns.lookup(options.host,{all:!0},((err,addresses)=>{if(err)return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err);let address=!!addresses&&addresses.filter((addr=>isFamilySupported(addr.family))).map((addr=>addr.address)).shift();if(addresses&&addresses.length&&!address&&console.warn(`Failed to resolve IPv${addresses[0].family} addresses with current network`),!address&&cached)return callback(null,formatDNSValue(cached.value,{cached:!0}));let value={addresses:address?[address]:[options.host],servername:options.servername||options.host};return dnsCache.set(options.host,{value:value,expires:Date.now()+(options.dnsTtl||3e5)}),callback(null,formatDNSValue(value,{cached:!1}))}))}catch(err){return cached?callback(null,formatDNSValue(cached.value,{cached:!0,error:err})):callback(err)}}))}))},module.exports.parseConnectionUrl=str=>{str=str||"";let options={};return[urllib.parse(str,!0)].forEach((url=>{let auth;switch(url.protocol){case"smtp:":options.secure=!1;break;case"smtps:":options.secure=!0;break;case"direct:":options.direct=!0}!isNaN(url.port)&&Number(url.port)&&(options.port=Number(url.port)),url.hostname&&(options.host=url.hostname),url.auth&&(auth=url.auth.split(":"),options.auth||(options.auth={}),options.auth.user=auth.shift(),options.auth.pass=auth.join(":")),Object.keys(url.query||{}).forEach((key=>{let obj=options,lKey=key,value=url.query[key];switch(isNaN(value)||(value=Number(value)),value){case"true":value=!0;break;case"false":value=!1}if(0===key.indexOf("tls."))lKey=key.substr(4),options.tls||(options.tls={}),obj=options.tls;else if(key.indexOf(".")>=0)return;lKey in obj||(obj[lKey]=value)}))})),options},module.exports._logFunc=(logger,level,defaults,data,message,...args)=>{let entry={};Object.keys(defaults||{}).forEach((key=>{"level"!==key&&(entry[key]=defaults[key])})),Object.keys(data||{}).forEach((key=>{"level"!==key&&(entry[key]=data[key])})),logger[level](entry,message,...args)},module.exports.getLogger=(options,defaults)=>{let response={},levels=["trace","debug","info","warn","error","fatal"];if(!(options=options||{}).logger)return levels.forEach((level=>{response[level]=()=>!1})),response;let logger=options.logger;return!0===options.logger&&(logger=function createDefaultLogger(levels){let levelMaxLen=0,levelNames=new Map;levels.forEach((level=>{level.length>levelMaxLen&&(levelMaxLen=level.length)})),levels.forEach((level=>{let levelName=level.toUpperCase();levelName.length<levelMaxLen&&(levelName+=" ".repeat(levelMaxLen-levelName.length)),levelNames.set(level,levelName)}));let print=(level,entry,message,...args)=>{let prefix="";entry&&("server"===entry.tnx?prefix="S: ":"client"===entry.tnx&&(prefix="C: "),entry.sid&&(prefix="["+entry.sid+"] "+prefix),entry.cid&&(prefix="[#"+entry.cid+"] "+prefix)),(message=util.format(message,...args)).split(/\r?\n/).forEach((line=>{console.log("[%s] %s %s",(new Date).toISOString().substr(0,19).replace(/T/," "),levelNames.get(level),prefix+line)}))},logger={};return levels.forEach((level=>{logger[level]=print.bind(null,level)})),logger}(levels)),levels.forEach((level=>{response[level]=(data,message,...args)=>{module.exports._logFunc(logger,level,defaults,data,message,...args)}})),response},module.exports.callbackPromise=(resolve,reject)=>function(){let args=Array.from(arguments),err=args.shift();err?reject(err):resolve(...args)},module.exports.parseDataURI=uri=>{let input=uri,commaPos=input.indexOf(",");if(!commaPos)return uri;let encoding,data=input.substring(commaPos+1),metaEntries=input.substring(5,commaPos).split(";"),lastMetaEntry=metaEntries.length>1&&metaEntries[metaEntries.length-1];lastMetaEntry&&lastMetaEntry.indexOf("=")<0&&(encoding=lastMetaEntry.toLowerCase(),metaEntries.pop());let contentType=metaEntries.shift()||"application/octet-stream",params={};for(let entry of metaEntries){let sep=entry.indexOf("=");if(sep>=0){let key=entry.substring(0,sep),value=entry.substring(sep+1);params[key]=value}}switch(encoding){case"base64":data=Buffer.from(data,"base64");break;case"utf8":data=Buffer.from(data);break;default:try{data=Buffer.from(decodeURIComponent(data))}catch(err){data=Buffer.from(data)}data=Buffer.from(data)}return{data:data,encoding:encoding,contentType:contentType,params:params}},module.exports.resolveContent=(data,key,callback)=>{let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=module.exports.callbackPromise(resolve,reject)})));let contentStream,content=data&&data[key]&&data[key].content||data[key],encoding=("object"==typeof data[key]&&data[key].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!content)return callback(null,content);if("object"==typeof content){if("function"==typeof content.pipe)return resolveStream(content,((err,value)=>{if(err)return callback(err);data[key].content?data[key].content=value:data[key]=value,callback(null,value)}));if(/^https?:\/\//i.test(content.path||content.href))return contentStream=nmfetch(content.path||content.href),resolveStream(contentStream,callback);if(/^data:/i.test(content.path||content.href)){let parsedDataUri=module.exports.parseDataURI(content.path||content.href);return parsedDataUri&&parsedDataUri.data?callback(null,parsedDataUri.data):callback(null,Buffer.from(0))}if(content.path)return resolveStream(fs.createReadStream(content.path),callback)}return"string"!=typeof data[key].content||["utf8","usascii","ascii"].includes(encoding)||(content=Buffer.from(data[key].content,encoding)),setImmediate((()=>callback(null,content))),promise},module.exports.assign=function(){let args=Array.from(arguments),target=args.shift()||{};return args.forEach((source=>{Object.keys(source||{}).forEach((key=>{["tls","auth"].includes(key)&&source[key]&&"object"==typeof source[key]?(target[key]||(target[key]={}),Object.keys(source[key]).forEach((subKey=>{target[key][subKey]=source[key][subKey]}))):target[key]=source[key]}))})),target},module.exports.encodeXText=str=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(str))return str;let buf=Buffer.from(str),result="";for(let i=0,len=buf.length;i<len;i++){let c=buf[i];result+=c<33||c>126||43===c||61===c?"+"+(c<16?"0":"")+c.toString(16).toUpperCase():String.fromCharCode(c)}return result}}(shared)),shared.exports}function requireMimeTypes(){if(hasRequiredMimeTypes)return mimeTypes_1;hasRequiredMimeTypes=1;const path=path__default.default,mimeTypes=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),extensions=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);return mimeTypes_1={detectMimeType(filename){if(!filename)return"application/octet-stream";let parsed=path.parse(filename),extension=(parsed.ext.substr(1)||parsed.name||"").split("?").shift().trim().toLowerCase(),value="application/octet-stream";return extensions.has(extension)&&(value=extensions.get(extension)),Array.isArray(value)?value[0]:value},detectExtension(mimeType){if(!mimeType)return"bin";let parts=(mimeType||"").toLowerCase().trim().split("/"),rootType=parts.shift().trim(),subType=parts.join("/").trim();if(mimeTypes.has(rootType+"/"+subType)){let value=mimeTypes.get(rootType+"/"+subType);return Array.isArray(value)?value[0]:value}return"text"===rootType?"txt":"bin"}}}function requirePunycode(){if(hasRequiredPunycode)return punycode_1;hasRequiredPunycode=1;const maxInt=2147483647,regexPunycode=/^xn--/,regexNonASCII=/[^\0-\x7F]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},floor=Math.floor,stringFromCharCode=String.fromCharCode;function error(type){throw new RangeError(errors[type])}function mapDomain(domain,callback){const parts=domain.split("@");let result="";parts.length>1&&(result=parts[0]+"@",domain=parts[1]);const encoded=function map(array,callback){const result=[];let length=array.length;for(;length--;)result[length]=callback(array[length]);return result}((domain=domain.replace(regexSeparators,".")).split("."),callback).join(".");return result+encoded}function ucs2decode(string){const output=[];let counter=0;const length=string.length;for(;counter<length;){const value=string.charCodeAt(counter++);if(value>=55296&&value<=56319&&counter<length){const extra=string.charCodeAt(counter++);56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)}else output.push(value)}return output}const digitToBasic=function(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)},adapt=function(delta,numPoints,firstTime){let k=0;for(delta=firstTime?floor(delta/700):delta>>1,delta+=floor(delta/numPoints);delta>455;k+=36)delta=floor(delta/35);return floor(k+36*delta/(delta+38))},decode=function(input){const output=[],inputLength=input.length;let i=0,n=128,bias=72,basic=input.lastIndexOf("-");basic<0&&(basic=0);for(let j=0;j<basic;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(let index=basic>0?basic+1:0;index<inputLength;){const oldi=i;for(let w=1,k=36;;k+=36){index>=inputLength&&error("invalid-input");const digit=(codePoint=input.charCodeAt(index++))>=48&&codePoint<58?codePoint-48+26:codePoint>=65&&codePoint<91?codePoint-65:codePoint>=97&&codePoint<123?codePoint-97:36;digit>=36&&error("invalid-input"),digit>floor((maxInt-i)/w)&&error("overflow"),i+=digit*w;const t=k<=bias?1:k>=bias+26?26:k-bias;if(digit<t)break;const baseMinusT=36-t;w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT}const out=output.length+1;bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}var codePoint;return String.fromCodePoint(...output)},encode=function(input){const output=[],inputLength=(input=ucs2decode(input)).length;let n=128,delta=0,bias=72;for(const currentValue of input)currentValue<128&&output.push(stringFromCharCode(currentValue));const basicLength=output.length;let handledCPCount=basicLength;for(basicLength&&output.push("-");handledCPCount<inputLength;){let m=maxInt;for(const currentValue of input)currentValue>=n&&currentValue<m&&(m=currentValue);const handledCPCountPlusOne=handledCPCount+1;m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m;for(const currentValue of input)if(currentValue<n&&++delta>maxInt&&error("overflow"),currentValue===n){let q=delta;for(let k=36;;k+=36){const t=k<=bias?1:k>=bias+26?26:k-bias;if(q<t)break;const qMinusT=q-t,baseMinusT=36-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT)}output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount===basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")};return punycode_1={version:"2.3.1",ucs2:{decode:ucs2decode,encode:codePoints=>String.fromCodePoint(...codePoints)},decode:decode,encode:encode,toASCII:function(input){return mapDomain(input,(function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string}))},toUnicode:function(input){return mapDomain(input,(function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string}))}}}function requireBase64(){if(hasRequiredBase64)return base64;hasRequiredBase64=1;const Transform=require$$0__default$2.default.Transform;function encode(buffer){return"string"==typeof buffer&&(buffer=Buffer.from(buffer,"utf-8")),buffer.toString("base64")}function wrap(str,lineLength){if(lineLength=lineLength||76,(str=(str||"").toString()).length<=lineLength)return str;let result=[],pos=0,chunkLength=1024*lineLength;for(;pos<str.length;){let wrappedLines=str.substr(pos,chunkLength).replace(new RegExp(".{"+lineLength+"}","g"),"$&\r\n").trim();result.push(wrappedLines),pos+=chunkLength}return result.join("\r\n").trim()}return base64={encode:encode,wrap:wrap,Encoder:class Encoder extends Transform{constructor(options){super(),this.options=options||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(chunk,encoding,done){if("buffer"!==encoding&&(chunk=Buffer.from(chunk,encoding)),!chunk||!chunk.length)return setImmediate(done);this.inputBytes+=chunk.length,this._remainingBytes&&this._remainingBytes.length&&(chunk=Buffer.concat([this._remainingBytes,chunk],this._remainingBytes.length+chunk.length),this._remainingBytes=!1),chunk.length%3?(this._remainingBytes=chunk.slice(chunk.length-chunk.length%3),chunk=chunk.slice(0,chunk.length-chunk.length%3)):this._remainingBytes=!1;let b64=this._curLine+encode(chunk);if(this.options.lineLength){b64=wrap(b64,this.options.lineLength);let lastLF=b64.lastIndexOf("\n");lastLF<0?(this._curLine=b64,b64=""):lastLF===b64.length-1?this._curLine="":(this._curLine=b64.substr(lastLF+1),b64=b64.substr(0,lastLF+1))}b64&&(this.outputBytes+=b64.length,this.push(Buffer.from(b64,"ascii"))),setImmediate(done)}_flush(done){this._remainingBytes&&this._remainingBytes.length&&(this._curLine+=encode(this._remainingBytes)),this._curLine&&(this._curLine=wrap(this._curLine,this.options.lineLength),this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii"),this._curLine=""),done()}}}}function requireQp(){if(hasRequiredQp)return qp;hasRequiredQp=1;const Transform=require$$0__default$2.default.Transform;function encode(buffer){"string"==typeof buffer&&(buffer=Buffer.from(buffer,"utf-8"));let ord,ranges=[[9],[10],[13],[32,60],[62,126]],result="";for(let i=0,len=buffer.length;i<len;i++)ord=buffer[i],checkRanges(ord,ranges)&&(32!==ord&&9!==ord||i!==len-1&&10!==buffer[i+1]&&13!==buffer[i+1])?result+=String.fromCharCode(ord):result+="="+(ord<16?"0":"")+ord.toString(16).toUpperCase();return result}function wrap(str,lineLength){if(lineLength=lineLength||76,(str=(str||"").toString()).length<=lineLength)return str;let match,code,line,pos=0,len=str.length,lineMargin=Math.floor(lineLength/3),result="";for(;pos<len;)if(line=str.substr(pos,lineLength),match=line.match(/\r\n/))line=line.substr(0,match.index+match[0].length),result+=line,pos+=line.length;else if("\n"!==line.substr(-1))if(match=line.substr(-lineMargin).match(/\n.*?$/))line=line.substr(0,line.length-(match[0].length-1)),result+=line,pos+=line.length;else{if(line.length>lineLength-lineMargin&&(match=line.substr(-lineMargin).match(/[ \t.,!?][^ \t.,!?]*$/)))line=line.substr(0,line.length-(match[0].length-1));else if(line.match(/[=][\da-f]{0,2}$/i))for((match=line.match(/[=][\da-f]{0,1}$/i))&&(line=line.substr(0,line.length-match[0].length));line.length>3&&line.length<len-pos&&!line.match(/^(?:=[\da-f]{2}){1,4}$/i)&&(match=line.match(/[=][\da-f]{2}$/gi))&&(code=parseInt(match[0].substr(1,2),16),!(code<128))&&(line=line.substr(0,line.length-3),!(code>=192)););pos+line.length<len&&"\n"!==line.substr(-1)?(line.length===lineLength&&line.match(/[=][\da-f]{2}$/i)?line=line.substr(0,line.length-3):line.length===lineLength&&(line=line.substr(0,line.length-1)),pos+=line.length,line+="=\r\n"):pos+=line.length,result+=line}else result+=line,pos+=line.length;return result}function checkRanges(nr,ranges){for(let i=ranges.length-1;i>=0;i--)if(ranges[i].length){if(1===ranges[i].length&&nr===ranges[i][0])return!0;if(2===ranges[i].length&&nr>=ranges[i][0]&&nr<=ranges[i][1])return!0}return!1}return qp={encode:encode,wrap:wrap,Encoder:class Encoder extends Transform{constructor(options){super(),this.options=options||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(chunk,encoding,done){let qp;if("buffer"!==encoding&&(chunk=Buffer.from(chunk,encoding)),!chunk||!chunk.length)return done();this.inputBytes+=chunk.length,this.options.lineLength?(qp=this._curLine+encode(chunk),qp=wrap(qp,this.options.lineLength),qp=qp.replace(/(^|\n)([^\n]*)$/,((match,lineBreak,lastLine)=>(this._curLine=lastLine,lineBreak))),qp&&(this.outputBytes+=qp.length,this.push(qp))):(qp=encode(chunk),this.outputBytes+=qp.length,this.push(qp,"ascii")),done()}_flush(done){this._curLine&&(this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii")),done()}}}}function requireMimeFuncs(){if(hasRequiredMimeFuncs)return mimeFuncs;hasRequiredMimeFuncs=1;const base64=requireBase64(),qp=requireQp(),mimeTypes=requireMimeTypes();return mimeFuncs={isPlainText:(value,isParam)=>"string"==typeof value&&!(isParam?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(value),hasLongerLines:(str,lineLength)=>str.length>131072||new RegExp("^.{"+(lineLength+1)+",}","m").test(str),encodeWord(data,mimeWordEncoding,maxLength){let encodedStr;if((maxLength=maxLength||0)&&maxLength>12&&(maxLength-=12),"Q"===(mimeWordEncoding=(mimeWordEncoding||"Q").toString().toUpperCase().trim().charAt(0))?encodedStr=qp.encode(data).replace(/[^a-z0-9!*+\-/=]/gi,(chr=>{let ord=chr.charCodeAt(0).toString(16).toUpperCase();return" "===chr?"_":"="+(1===ord.length?"0"+ord:ord)})):"B"===mimeWordEncoding&&(encodedStr="string"==typeof data?data:base64.encode(data),maxLength=maxLength?Math.max(3,(maxLength-maxLength%4)/4*3):0),maxLength&&("B"!==mimeWordEncoding?encodedStr:base64.encode(data)).length>maxLength)if("Q"===mimeWordEncoding)encodedStr=this.splitMimeEncodedString(encodedStr,maxLength).join("?= =?UTF-8?"+mimeWordEncoding+"?");else{let parts=[],lpart="";for(let i=0,len=encodedStr.length;i<len;i++){let chr=encodedStr.charAt(i);/[\ud83c\ud83d\ud83e]/.test(chr)&&i<len-1&&(chr+=encodedStr.charAt(++i)),Buffer.byteLength(lpart+chr)<=maxLength||0===i?lpart+=chr:(parts.push(base64.encode(lpart)),lpart=chr)}lpart&&parts.push(base64.encode(lpart)),encodedStr=parts.length>1?parts.join("?= =?UTF-8?"+mimeWordEncoding+"?"):parts.join("")}else"B"===mimeWordEncoding&&(encodedStr=base64.encode(data));return"=?UTF-8?"+mimeWordEncoding+"?"+encodedStr+("?="===encodedStr.substr(-2)?"":"?=")},encodeWords(value,mimeWordEncoding,maxLength,encodeAll){let encodedValue;maxLength=maxLength||0;let firstMatch=value.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!firstMatch)return value;if(encodeAll)return this.encodeWord(value,mimeWordEncoding,maxLength);let lastMatch=value.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!lastMatch)return value;let startIndex=firstMatch.index+(firstMatch[0].match(/[^\s]/)||{index:0}).index,endIndex=lastMatch.index+(lastMatch[1]||"").length;return encodedValue=(startIndex?value.substr(0,startIndex):"")+this.encodeWord(value.substring(startIndex,endIndex),mimeWordEncoding||"Q",maxLength)+(endIndex<value.length?value.substr(endIndex):""),encodedValue},buildHeaderValue(structured){let paramsArray=[];return Object.keys(structured.params||{}).forEach((param=>{let value=structured.params[param];!this.isPlainText(value,!0)||value.length>=75?this.buildHeaderParam(param,value,50).forEach((encodedParam=>{/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(encodedParam.value)&&"*"!==encodedParam.key.substr(-1)?paramsArray.push(encodedParam.key+"="+JSON.stringify(encodedParam.value)):paramsArray.push(encodedParam.key+"="+encodedParam.value)})):/[\s'"\\;:/=(),<>@[\]?]|^-/.test(value)?paramsArray.push(param+"="+JSON.stringify(value)):paramsArray.push(param+"="+value)})),structured.value+(paramsArray.length?"; "+paramsArray.join("; "):"")},buildHeaderParam(key,data,maxLength){let encodedStrArr,chr,ord,line,i,len,list=[],encodedStr="string"==typeof data?data:(data||"").toString(),startPos=0;if(maxLength=maxLength||50,this.isPlainText(data,!0)){if(encodedStr.length<=maxLength)return[{key:key,value:encodedStr}];encodedStr=encodedStr.replace(new RegExp(".{"+maxLength+"}","g"),(str=>(list.push({line:str}),""))),encodedStr&&list.push({line:encodedStr})}else{if(/[\uD800-\uDBFF]/.test(encodedStr)){for(encodedStrArr=[],i=0,len=encodedStr.length;i<len;i++)chr=encodedStr.charAt(i),ord=chr.charCodeAt(0),ord>=55296&&ord<=56319&&i<len-1?(chr+=encodedStr.charAt(i+1),encodedStrArr.push(chr),i++):encodedStrArr.push(chr);encodedStr=encodedStrArr}line="utf-8''";let encoded=!0;for(startPos=0,i=0,len=encodedStr.length;i<len;i++){if(chr=encodedStr[i],encoded)chr=this.safeEncodeURIComponent(chr);else if(chr=" "===chr?chr:this.safeEncodeURIComponent(chr),chr!==encodedStr[i]){if(!((this.safeEncodeURIComponent(line)+chr).length>=maxLength)){encoded=!0,i=startPos,line="";continue}list.push({line:line,encoded:encoded}),line="",startPos=i-1}(line+chr).length>=maxLength?(list.push({line:line,encoded:encoded}),line=chr=" "===encodedStr[i]?" ":this.safeEncodeURIComponent(encodedStr[i]),chr===encodedStr[i]?(encoded=!1,startPos=i-1):encoded=!0):line+=chr}line&&list.push({line:line,encoded:encoded})}return list.map(((item,i)=>({key:key+"*"+i+(item.encoded?"*":""),value:item.line})))},parseHeaderValue(str){let chr,response={value:!1,params:{}},key=!1,value="",type="value",quote=!1,escaped=!1;for(let i=0,len=str.length;i<len;i++)if(chr=str.charAt(i),"key"===type){if("="===chr){key=value.trim().toLowerCase(),type="value",value="";continue}value+=chr}else{if(escaped)value+=chr;else{if("\\"===chr){escaped=!0;continue}quote&&chr===quote?quote=!1:quote||'"'!==chr?quote||";"!==chr?value+=chr:(!1===key?response.value=value.trim():response.params[key]=value.trim(),type="key",value=""):quote=chr}escaped=!1}return"value"===type?!1===key?response.value=value.trim():response.params[key]=value.trim():value.trim()&&(response.params[value.trim().toLowerCase()]=""),Object.keys(response.params).forEach((key=>{let actualKey,nr,match,value;(match=key.match(/(\*(\d+)|\*(\d+)\*|\*)$/))&&(actualKey=key.substr(0,match.index),nr=Number(match[2]||match[3])||0,response.params[actualKey]&&"object"==typeof response.params[actualKey]||(response.params[actualKey]={charset:!1,values:[]}),value=response.params[key],0===nr&&"*"===match[0].substr(-1)&&(match=value.match(/^([^']*)'[^']*'(.*)$/))&&(response.params[actualKey].charset=match[1]||"iso-8859-1",value=match[2]),response.params[actualKey].values[nr]=value,delete response.params[key])})),Object.keys(response.params).forEach((key=>{let value;response.params[key]&&Array.isArray(response.params[key].values)&&(value=response.params[key].values.map((val=>val||"")).join(""),response.params[key].charset?response.params[key]="=?"+response.params[key].charset+"?Q?"+value.replace(/[=?_\s]/g,(s=>{let c=s.charCodeAt(0).toString(16);return" "===s?"_":"%"+(c.length<2?"0":"")+c})).replace(/%/g,"=")+"?=":response.params[key]=value)})),response},detectExtension:mimeType=>mimeTypes.detectExtension(mimeType),detectMimeType:extension=>mimeTypes.detectMimeType(extension),foldLines(str,lineLength,afterSpace){lineLength=lineLength||76;let line,match,pos=0,len=(str=(str||"").toString()).length,result="";for(;pos<len;){if(line=str.substr(pos,lineLength),line.length<lineLength){result+=line;break}(match=line.match(/^[^\n\r]*(\r?\n|\r)/))?(line=match[0],result+=line,pos+=line.length):((match=line.match(/(\s+)[^\s]*$/))&&match[0].length-(afterSpace?(match[1]||"").length:0)<line.length?line=line.substr(0,line.length-(match[0].length-(afterSpace?(match[1]||"").length:0))):(match=str.substr(pos+line.length).match(/^[^\s]+(\s*)/))&&(line+=match[0].substr(0,match[0].length-(afterSpace?0:(match[1]||"").length))),result+=line,pos+=line.length,pos<len&&(result+="\r\n"))}return result},splitMimeEncodedString:(str,maxlen)=>{let curLine,match,chr,done,lines=[];for(maxlen=Math.max(maxlen||0,12);str.length;){for(curLine=str.substr(0,maxlen),(match=curLine.match(/[=][0-9A-F]?$/i))&&(curLine=curLine.substr(0,match.index)),done=!1;!done;)done=!0,(match=str.substr(curLine.length).match(/^[=]([0-9A-F]{2})/i))&&(chr=parseInt(match[1],16),chr<194&&chr>127&&(curLine=curLine.substr(0,curLine.length-3),done=!1));curLine.length&&lines.push(curLine),str=str.substr(curLine.length)}return lines},encodeURICharComponent:chr=>{let res="",ord=chr.charCodeAt(0).toString(16).toUpperCase();if(ord.length%2&&(ord="0"+ord),ord.length>2)for(let i=0,len=ord.length/2;i<len;i++)res+="%"+ord.substr(i,2);else res+="%"+ord;return res},safeEncodeURIComponent(str){str=(str||"").toString();try{str=encodeURIComponent(str)}catch(E){return str.replace(/[^\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return str.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,(chr=>this.encodeURICharComponent(chr)))}},mimeFuncs}function requireAddressparser(){if(hasRequiredAddressparser)return addressparser_1;hasRequiredAddressparser=1;class Tokenizer{constructor(str){this.str=(str||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let chr,list=[];for(let i=0,len=this.str.length;i<len;i++)chr=this.str.charAt(i),this.checkChar(chr);return this.list.forEach((node=>{node.value=(node.value||"").toString().trim(),node.value&&list.push(node)})),list}checkChar(chr){if(this.escaped);else{if(chr===this.operatorExpecting)return this.node={type:"operator",value:chr},this.list.push(this.node),this.node=null,this.operatorExpecting="",void(this.escaped=!1);if(!this.operatorExpecting&&chr in this.operators)return this.node={type:"operator",value:chr},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[chr],void(this.escaped=!1);if(['"',"'"].includes(this.operatorExpecting)&&"\\"===chr)return void(this.escaped=!0)}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===chr&&(chr=" "),(chr.charCodeAt(0)>=33||[" ","\t"].includes(chr))&&(this.node.value+=chr),this.escaped=!1}}function addressparser(str,options){options=options||{};let tokens=new Tokenizer(str).tokenize(),addresses=[],address=[],parsedAddresses=[];if(tokens.forEach((token=>{"operator"!==token.type||","!==token.value&&";"!==token.value?address.push(token):(address.length&&addresses.push(address),address=[])})),address.length&&addresses.push(address),addresses.forEach((address=>{address=function _handleAddress(tokens){let token,address,i,len,isGroup=!1,state="text",addresses=[],data={address:[],comment:[],group:[],text:[]};for(i=0,len=tokens.length;i<len;i++)if(token=tokens[i],"operator"===token.type)switch(token.value){case"<":state="address";break;case"(":state="comment";break;case":":state="group",isGroup=!0;break;default:state="text"}else token.value&&("address"===state&&(token.value=token.value.replace(/^[^<]*<\s*/,"")),data[state].push(token.value));if(!data.text.length&&data.comment.length&&(data.text=data.comment,data.comment=[]),isGroup)data.text=data.text.join(" "),addresses.push({name:data.text||address&&address.name,group:data.group.length?addressparser(data.group.join(",")):[]});else{if(!data.address.length&&data.text.length){for(i=data.text.length-1;i>=0;i--)if(data.text[i].match(/^[^@\s]+@[^@\s]+$/)){data.address=data.text.splice(i,1);break}let _regexHandler=function(address){return data.address.length?address:(data.address=[address.trim()]," ")};if(!data.address.length)for(i=data.text.length-1;i>=0&&(data.text[i]=data.text[i].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,_regexHandler).trim(),!data.address.length);i--);}if(!data.text.length&&data.comment.length&&(data.text=data.comment,data.comment=[]),data.address.length>1&&(data.text=data.text.concat(data.address.splice(1))),data.text=data.text.join(" "),data.address=data.address.join(" "),!data.address&&isGroup)return[];address={address:data.address||data.text||"",name:data.text||data.address||""},address.address===address.name&&((address.address||"").match(/@/)?address.name="":address.address=""),addresses.push(address)}return addresses}(address),address.length&&(parsedAddresses=parsedAddresses.concat(address))})),options.flatten){let addresses=[],walkAddressList=list=>{list.forEach((address=>{if(address.group)return walkAddressList(address.group);addresses.push(address)}))};return walkAddressList(parsedAddresses),addresses}return parsedAddresses}return addressparser_1=addressparser}function requireLeWindows(){if(hasRequiredLeWindows)return leWindows;hasRequiredLeWindows=1;const Transform=require$$0__default$2.default.Transform;return leWindows=class LeWindows extends Transform{constructor(options){super(options),this.options=options||{},this.lastByte=!1}_transform(chunk,encoding,done){let buf,lastPos=0;for(let i=0,len=chunk.length;i<len;i++)10===chunk[i]&&(i&&13!==chunk[i-1]||!i&&13!==this.lastByte)&&(i>lastPos&&(buf=chunk.slice(lastPos,i),this.push(buf)),this.push(Buffer.from("\r\n")),lastPos=i+1);lastPos&&lastPos<chunk.length?(buf=chunk.slice(lastPos),this.push(buf)):lastPos||this.push(chunk),this.lastByte=chunk[chunk.length-1],done()}}}function requireMimeNode(){if(hasRequiredMimeNode)return mimeNode;hasRequiredMimeNode=1;const crypto=require$$0__default$1.default,fs=fs__default.default,punycode=requirePunycode(),PassThrough=require$$0__default$2.default.PassThrough,shared=requireShared(),mimeFuncs=requireMimeFuncs(),qp=requireQp(),base64=requireBase64(),addressparser=requireAddressparser(),nmfetch=requireFetch(),LastNewline=function requireLastNewline(){if(hasRequiredLastNewline)return lastNewline;hasRequiredLastNewline=1;const Transform=require$$0__default$2.default.Transform;return lastNewline=class LastNewline extends Transform{constructor(){super(),this.lastByte=!1}_transform(chunk,encoding,done){chunk.length&&(this.lastByte=chunk[chunk.length-1]),this.push(chunk),done()}_flush(done){return 10===this.lastByte?done():13===this.lastByte?(this.push(Buffer.from("\n")),done()):(this.push(Buffer.from("\r\n")),done())}}}(),LeWindows=requireLeWindows(),LeUnix=function requireLeUnix(){if(hasRequiredLeUnix)return leUnix;hasRequiredLeUnix=1;const Transform=require$$0__default$2.default.Transform;return leUnix=class LeWindows extends Transform{constructor(options){super(options),this.options=options||{}}_transform(chunk,encoding,done){let buf,lastPos=0;for(let i=0,len=chunk.length;i<len;i++)13===chunk[i]&&(buf=chunk.slice(lastPos,i),lastPos=i+1,this.push(buf));lastPos&&lastPos<chunk.length?(buf=chunk.slice(lastPos),this.push(buf)):lastPos||this.push(chunk),done()}}}();class MimeNode{constructor(contentType,options){this.nodeCounter=0,options=options||{},this.baseBoundary=options.baseBoundary||crypto.randomBytes(8).toString("hex"),this.boundaryPrefix=options.boundaryPrefix||"--_NmP",this.disableFileAccess=!!options.disableFileAccess,this.disableUrlAccess=!!options.disableUrlAccess,this.normalizeHeaderKey=options.normalizeHeaderKey,this.date=new Date,this.rootNode=options.rootNode||this,this.keepBcc=!!options.keepBcc,options.filename&&(this.filename=options.filename,contentType||(contentType=mimeFuncs.detectMimeType(this.filename.split(".").pop()))),this.textEncoding=(options.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=options.parentNode,this.hostname=options.hostname,this.newline=options.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],contentType&&this.setHeader("Content-Type",contentType)}createChild(contentType,options){options||"object"!=typeof contentType||(options=contentType,contentType=void 0);let node=new MimeNode(contentType,options);return this.appendChild(node),node}appendChild(childNode){return childNode.rootNode!==this.rootNode&&(childNode.rootNode=this.rootNode,childNode._nodeId=++this.rootNode.nodeCounter),childNode.parentNode=this,this.childNodes.push(childNode),childNode}replace(node){return node===this?this:(this.parentNode.childNodes.forEach(((childNode,i)=>{childNode===this&&(node.rootNode=this.rootNode,node.parentNode=this.parentNode,node._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,node.parentNode.childNodes[i]=node)})),node)}remove(){if(!this.parentNode)return this;for(let i=this.parentNode.childNodes.length-1;i>=0;i--)if(this.parentNode.childNodes[i]===this)return this.parentNode.childNodes.splice(i,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(key,value){let headerValue,added=!1;if(!value&&key&&"object"==typeof key)return key.key&&"value"in key?this.setHeader(key.key,key.value):Array.isArray(key)?key.forEach((i=>{this.setHeader(i.key,i.value)})):Object.keys(key).forEach((i=>{this.setHeader(i,key[i])})),this;headerValue={key:key=this._normalizeHeaderKey(key),value:value};for(let i=0,len=this._headers.length;i<len;i++)this._headers[i].key===key&&(added?(this._headers.splice(i,1),i--,len--):(this._headers[i]=headerValue,added=!0));return added||this._headers.push(headerValue),this}addHeader(key,value){return!value&&key&&"object"==typeof key?(key.key&&key.value?this.addHeader(key.key,key.value):Array.isArray(key)?key.forEach((i=>{this.addHeader(i.key,i.value)})):Object.keys(key).forEach((i=>{this.addHeader(i,key[i])})),this):Array.isArray(value)?(value.forEach((val=>{this.addHeader(key,val)})),this):(this._headers.push({key:this._normalizeHeaderKey(key),value:value}),this)}getHeader(key){key=this._normalizeHeaderKey(key);for(let i=0,len=this._headers.length;i<len;i++)if(this._headers[i].key===key)return this._headers[i].value}setContent(content){return this.content=content,"function"==typeof this.content.pipe?(this._contentErrorHandler=err=>{this.content.removeListener("error",this._contentErrorHandler),this.content=err},this.content.once("error",this._contentErrorHandler)):"string"==typeof this.content&&(this._isPlainText=mimeFuncs.isPlainText(this.content),this._isPlainText&&mimeFuncs.hasLongerLines(this.content,76)&&(this._hasLongLines=!0)),this}build(callback){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));let stream=this.createReadStream(),buf=[],buflen=0,returned=!1;return stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)buf.push(chunk),buflen+=chunk.length})),stream.once("error",(err=>{if(!returned)return returned=!0,callback(err)})),stream.once("end",(chunk=>{if(!returned)return returned=!0,chunk&&chunk.length&&(buf.push(chunk),buflen+=chunk.length),callback(null,Buffer.concat(buf,buflen))})),promise}getTransferEncoding(){let transferEncoding=!1,contentType=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();return this.content&&(transferEncoding=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),transferEncoding&&["base64","quoted-printable"].includes(transferEncoding)||(/^text\//i.test(contentType)?transferEncoding=this._isPlainText&&!this._hasLongLines?"7bit":"string"==typeof this.content||this.content instanceof Buffer?"Q"===this._getTextEncoding(this.content)?"quoted-printable":"base64":"B"===this.textEncoding?"base64":"quoted-printable":/^(multipart|message)\//i.test(contentType)||(transferEncoding=transferEncoding||"base64"))),transferEncoding}buildHeaders(){let transferEncoding=this.getTransferEncoding(),headers=[];if(transferEncoding&&this.setHeader("Content-Transfer-Encoding",transferEncoding),this.filename&&!this.getHeader("Content-Disposition")&&this.setHeader("Content-Disposition","attachment"),this.rootNode===this){this.getHeader("Date")||this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000")),this.messageId(),this.getHeader("MIME-Version")||this.setHeader("MIME-Version","1.0");for(let i=this._headers.length-2;i>=0;i--){let header=this._headers[i];"Content-Type"===header.key&&(this._headers.splice(i,1),this._headers.push(header))}}return this._headers.forEach((header=>{let structured,param,key=header.key,value=header.value,options={};if(!value||"object"!=typeof value||["From","Sender","To","Cc","Bcc","Reply-To","Date","References"].includes(key)||(Object.keys(value).forEach((key=>{"value"!==key&&(options[key]=value[key])})),value=(value.value||"").toString(),value.trim()))if(options.prepared)options.foldLines?headers.push(mimeFuncs.foldLines(key+": "+value)):headers.push(key+": "+value);else{switch(header.key){case"Content-Disposition":structured=mimeFuncs.parseHeaderValue(value),this.filename&&(structured.params.filename=this.filename),value=mimeFuncs.buildHeaderValue(structured);break;case"Content-Type":structured=mimeFuncs.parseHeaderValue(value),this._handleContentType(structured),structured.value.match(/^text\/plain\b/)&&"string"==typeof this.content&&/[\u0080-\uFFFF]/.test(this.content)&&(structured.params.charset="utf-8"),value=mimeFuncs.buildHeaderValue(structured),this.filename&&(param=this._encodeWords(this.filename),(param!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(param))&&(param='"'+param+'"'),value+="; name="+param);break;case"Bcc":if(!this.keepBcc)return}if(value=this._encodeHeaderValue(key,value),(value||"").toString().trim()){if("function"==typeof this.normalizeHeaderKey){let normalized=this.normalizeHeaderKey(key,value);normalized&&"string"==typeof normalized&&normalized.length&&(key=normalized)}headers.push(mimeFuncs.foldLines(key+": "+value,76))}}})),headers.join("\r\n")}createReadStream(options){let transform,stream=new PassThrough(options=options||{}),outputStream=stream;this.stream(stream,options,(err=>{err?outputStream.emit("error",err):stream.end()}));for(let i=0,len=this._transforms.length;i<len;i++)transform="function"==typeof this._transforms[i]?this._transforms[i]():this._transforms[i],outputStream.once("error",(err=>{transform.emit("error",err)})),outputStream=outputStream.pipe(transform);transform=new LastNewline,outputStream.once("error",(err=>{transform.emit("error",err)})),outputStream=outputStream.pipe(transform);for(let i=0,len=this._processFuncs.length;i<len;i++)transform=this._processFuncs[i],outputStream=transform(outputStream);if(this.newline){const newlineTransform=["win","windows","dos","\r\n"].includes(this.newline.toString().toLowerCase())?new LeWindows:new LeUnix,stream=outputStream.pipe(newlineTransform);return outputStream.on("error",(err=>stream.emit("error",err))),stream}return outputStream}transform(transform){this._transforms.push(transform)}processFunc(processFunc){this._processFuncs.push(processFunc)}stream(outputStream,options,done){let contentStream,localStream,transferEncoding=this.getTransferEncoding(),returned=!1,callback=err=>{returned||(returned=!0,done(err))},finalize=()=>{let childId=0,processChildNode=()=>{if(childId>=this.childNodes.length)return outputStream.write("\r\n--"+this.boundary+"--\r\n"),callback();let child=this.childNodes[childId++];outputStream.write((childId>1?"\r\n":"")+"--"+this.boundary+"\r\n"),child.stream(outputStream,options,(err=>{if(err)return callback(err);setImmediate(processChildNode)}))};if(!this.multipart)return callback();setImmediate(processChildNode)},sendContent=()=>{if(!this.content)return setImmediate(finalize);{if("[object Error]"===Object.prototype.toString.call(this.content))return callback(this.content);"function"==typeof this.content.pipe&&(this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=err=>callback(err),this.content.once("error",this._contentErrorHandler));let createStream=()=>{["quoted-printable","base64"].includes(transferEncoding)?(contentStream=new("base64"===transferEncoding?base64:qp).Encoder(options),contentStream.pipe(outputStream,{end:!1}),contentStream.once("end",finalize),contentStream.once("error",(err=>callback(err))),localStream=this._getStream(this.content),localStream.pipe(contentStream)):(localStream=this._getStream(this.content),localStream.pipe(outputStream,{end:!1}),localStream.once("end",finalize)),localStream.once("error",(err=>callback(err)))};if(this.content._resolve){let chunks=[],chunklen=0,returned=!1,sourceStream=this._getStream(this.content);sourceStream.on("error",(err=>{returned||(returned=!0,callback(err))})),sourceStream.on("readable",(()=>{let chunk;for(;null!==(chunk=sourceStream.read());)chunks.push(chunk),chunklen+=chunk.length})),sourceStream.on("end",(()=>{returned||(returned=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(chunks,chunklen),setImmediate(createStream))}))}else setImmediate(createStream)}};this._raw?setImmediate((()=>{if("[object Error]"===Object.prototype.toString.call(this._raw))return callback(this._raw);"function"==typeof this._raw.pipe&&this._raw.removeListener("error",this._contentErrorHandler);let raw=this._getStream(this._raw);raw.pipe(outputStream,{end:!1}),raw.on("error",(err=>outputStream.emit("error",err))),raw.on("end",finalize)})):(outputStream.write(this.buildHeaders()+"\r\n\r\n"),setImmediate(sendContent))}setEnvelope(envelope){let list;this._envelope={from:!1,to:[]},envelope.from&&(list=[],this._convertAddresses(this._parseAddresses(envelope.from),list),list=list.filter((address=>address&&address.address)),list.length&&list[0]&&(this._envelope.from=list[0].address)),["to","cc","bcc"].forEach((key=>{envelope[key]&&this._convertAddresses(this._parseAddresses(envelope[key]),this._envelope.to)})),this._envelope.to=this._envelope.to.map((to=>to.address)).filter((address=>address));let standardFields=["to","cc","bcc","from"];return Object.keys(envelope).forEach((key=>{standardFields.includes(key)||(this._envelope[key]=envelope[key])})),this}getAddresses(){let addresses={};return this._headers.forEach((header=>{let key=header.key.toLowerCase();["from","sender","reply-to","to","cc","bcc"].includes(key)&&(Array.isArray(addresses[key])||(addresses[key]=[]),this._convertAddresses(this._parseAddresses(header.value),addresses[key]))})),addresses}getEnvelope(){if(this._envelope)return this._envelope;let envelope={from:!1,to:[]};return this._headers.forEach((header=>{let list=[];"From"===header.key||!envelope.from&&["Reply-To","Sender"].includes(header.key)?(this._convertAddresses(this._parseAddresses(header.value),list),list.length&&list[0]&&(envelope.from=list[0].address)):["To","Cc","Bcc"].includes(header.key)&&this._convertAddresses(this._parseAddresses(header.value),envelope.to)})),envelope.to=envelope.to.map((to=>to.address)),envelope}messageId(){let messageId=this.getHeader("Message-ID");return messageId||(messageId=this._generateMessageId(),this.setHeader("Message-ID",messageId)),messageId}setRaw(raw){return this._raw=raw,this._raw&&"function"==typeof this._raw.pipe&&(this._contentErrorHandler=err=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=err},this._raw.once("error",this._contentErrorHandler)),this}_getStream(content){let contentStream;return content._resolvedValue?(contentStream=new PassThrough,setImmediate((()=>{try{contentStream.end(content._resolvedValue)}catch(err){contentStream.emit("error",err)}})),contentStream):"function"==typeof content.pipe?content:content&&"string"==typeof content.path&&!content.href?this.disableFileAccess?(contentStream=new PassThrough,setImmediate((()=>contentStream.emit("error",new Error("File access rejected for "+content.path)))),contentStream):fs.createReadStream(content.path):content&&"string"==typeof content.href?this.disableUrlAccess?(contentStream=new PassThrough,setImmediate((()=>contentStream.emit("error",new Error("Url access rejected for "+content.href)))),contentStream):nmfetch(content.href,{headers:content.httpHeaders}):(contentStream=new PassThrough,setImmediate((()=>{try{contentStream.end(content||"")}catch(err){contentStream.emit("error",err)}})),contentStream)}_parseAddresses(addresses){return[].concat.apply([],[].concat(addresses).map((address=>address&&address.address?(address.address=this._normalizeAddress(address.address),address.name=address.name||"",[address]):addressparser(address))))}_normalizeHeaderKey(key){return key=(key||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,(c=>c.toUpperCase())).replace(/^Content-Features$/i,"Content-features")}_handleContentType(structured){this.contentType=structured.value.trim().toLowerCase(),this.multipart=!!/^multipart\//i.test(this.contentType)&&this.contentType.substr(this.contentType.indexOf("/")+1),this.multipart?this.boundary=structured.params.boundary=structured.params.boundary||this.boundary||this._generateBoundary():this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(key,value){switch(key=this._normalizeHeaderKey(key)){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(value));case"Message-ID":case"In-Reply-To":case"Content-Id":return"<"!==(value=(value||"").toString().replace(/\r?\n|\r/g," ")).charAt(0)&&(value="<"+value),">"!==value.charAt(value.length-1)&&(value+=">"),value;case"References":return(value=[].concat.apply([],[].concat(value||"").map((elm=>(elm=(elm||"").toString().replace(/\r?\n|\r/g," ").trim()).replace(/<[^>]*>/g,(str=>str.replace(/\s/g,""))).split(/\s+/)))).map((elm=>("<"!==elm.charAt(0)&&(elm="<"+elm),">"!==elm.charAt(elm.length-1)&&(elm+=">"),elm)))).join(" ").trim();case"Date":return"[object Date]"===Object.prototype.toString.call(value)?value.toUTCString().replace(/GMT/,"+0000"):(value=(value||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(value));case"Content-Type":case"Content-Disposition":return(value||"").toString().replace(/\r?\n|\r/g," ");default:return value=(value||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(value)}}_convertAddresses(addresses,uniqueList){let values=[];return uniqueList=uniqueList||[],[].concat(addresses||[]).forEach((address=>{if(address.address)address.address=this._normalizeAddress(address.address),address.name?address.name&&values.push(`${this._encodeAddressName(address.name)} <${address.address}>`):values.push(address.address.indexOf(" ")>=0?`<${address.address}>`:`${address.address}`),address.address&&(uniqueList.filter((a=>a.address===address.address)).length||uniqueList.push(address));else if(address.group){let groupListAddresses=(address.group.length?this._convertAddresses(address.group,uniqueList):"").trim();values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`)}})),values.join(", ")}_normalizeAddress(address){let lastAt=(address=(address||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim()).lastIndexOf("@");if(lastAt<0)return address;let encodedDomain,user=address.substr(0,lastAt),domain=address.substr(lastAt+1);try{encodedDomain=punycode.toASCII(domain.toLowerCase())}catch(err){}return user.indexOf(" ")>=0&&('"'!==user.charAt(0)&&(user='"'+user),'"'!==user.substr(-1)&&(user+='"')),`${user}@${encodedDomain}`}_encodeAddressName(name){return/^[\w ]*$/.test(name)?name:/^[\x20-\x7e]*$/.test(name)?'"'+name.replace(/([\\"])/g,"\\$1")+'"':mimeFuncs.encodeWord(name,this._getTextEncoding(name),52)}_encodeWords(value){return mimeFuncs.encodeWords(value,this._getTextEncoding(value),52,!0)}_getTextEncoding(value){value=(value||"").toString();let latinLen,nonLatinLen,encoding=this.textEncoding;return encoding||(nonLatinLen=(value.match(/[\x00-\x08\x0B\x0C\x0E-\x1F\u0080-\uFFFF]/g)||[]).length,latinLen=(value.match(/[a-z]/gi)||[]).length,encoding=nonLatinLen<latinLen?"Q":"B"),encoding}_generateMessageId(){return"<"+[2,2,2,6].reduce(((prev,len)=>prev+"-"+crypto.randomBytes(len).toString("hex")),crypto.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}return mimeNode=MimeNode}var hasRequiredSign,dkim,hasRequiredDkim,httpProxyClient_1,hasRequiredHttpProxyClient,mailMessage,hasRequiredMailMessage,mailer,hasRequiredMailer,dataStream,hasRequiredDataStream,smtpConnection,hasRequiredSmtpConnection,xoauth2,hasRequiredXoauth2,poolResource,hasRequiredPoolResource,sign={exports:{}};function requireSign(){if(hasRequiredSign)return sign.exports;hasRequiredSign=1;const punycode=requirePunycode(),mimeFuncs=requireMimeFuncs(),crypto=require$$0__default$1.default;function relaxedHeaders(headers,fieldNames,skipFields){let includedFields=new Set,skip=new Set,headerFields=new Map;(skipFields||"").toLowerCase().split(":").forEach((field=>{skip.add(field.trim())})),(fieldNames||"").toLowerCase().split(":").filter((field=>!skip.has(field.trim()))).forEach((field=>{includedFields.add(field.trim())}));for(let i=headers.length-1;i>=0;i--){let line=headers[i];includedFields.has(line.key)&&!headerFields.has(line.key)&&headerFields.set(line.key,relaxedHeaderLine(line.line))}let headersList=[],fields=[];return includedFields.forEach((field=>{headerFields.has(field)&&(fields.push(field),headersList.push(field+":"+headerFields.get(field)))})),{headers:headersList.join("\r\n")+"\r\n",fieldNames:fields.join(":")}}function relaxedHeaderLine(line){return line.substr(line.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}return sign.exports=(headers,hashAlgo,bodyHash,options)=>{let signer,signature,canonicalizedHeaderData=relaxedHeaders(headers,(options=options||{}).headerFieldNames||"From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",options.skipFields),dkimHeader=function generateDKIMHeader(domainName,keySelector,fieldNames,hashAlgo,bodyHash){let dkim=["v=1","a=rsa-"+hashAlgo,"c=relaxed/relaxed","d="+punycode.toASCII(domainName),"q=dns/txt","s="+keySelector,"bh="+bodyHash,"h="+fieldNames].join("; ");return mimeFuncs.foldLines("DKIM-Signature: "+dkim,76)+";\r\n b="}(options.domainName,options.keySelector,canonicalizedHeaderData.fieldNames,hashAlgo,bodyHash);canonicalizedHeaderData.headers+="dkim-signature:"+relaxedHeaderLine(dkimHeader),signer=crypto.createSign(("rsa-"+hashAlgo).toUpperCase()),signer.update(canonicalizedHeaderData.headers);try{signature=signer.sign(options.privateKey,"base64")}catch(E){return!1}return dkimHeader+signature.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,"$&\r\n ").trim()},sign.exports.relaxedHeaders=relaxedHeaders,sign.exports}function requireDkim(){if(hasRequiredDkim)return dkim;hasRequiredDkim=1;const MessageParser=function requireMessageParser(){if(hasRequiredMessageParser)return messageParser;hasRequiredMessageParser=1;const Transform=require$$0__default$2.default.Transform;return messageParser=class MessageParser extends Transform{constructor(options){super(options),this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(data){let lblen=this.lastBytes.length,nblen=Math.min(data.length,lblen);for(let i=0,len=lblen-nblen;i<len;i++)this.lastBytes[i]=this.lastBytes[i+nblen];for(let i=1;i<=nblen;i++)this.lastBytes[lblen-i]=data[data.length-i]}checkHeaders(data){if(this.headersParsed)return!0;let lblen=this.lastBytes.length,headerPos=0;this.curLinePos=0;for(let i=0,len=this.lastBytes.length+data.length;i<len;i++){let chr;if(chr=i<lblen?this.lastBytes[i]:data[i-lblen],10===chr&&i){let pr1=i-1<lblen?this.lastBytes[i-1]:data[i-1-lblen],pr2=i>1&&(i-2<lblen?this.lastBytes[i-2]:data[i-2-lblen]);if(10===pr1){this.headersParsed=!0,headerPos=i-lblen+1,this.headerBytes+=headerPos;break}if(13===pr1&&10===pr2){this.headersParsed=!0,headerPos=i-lblen+1,this.headerBytes+=headerPos;break}}}if(this.headersParsed){if(this.headerChunks.push(data.slice(0,headerPos)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),data.length-1>headerPos){let chunk=data.slice(headerPos);this.bodySize+=chunk.length,setImmediate((()=>this.push(chunk)))}return!1}return this.headerBytes+=data.length,this.headerChunks.push(data),this.updateLastBytes(data),!1}_transform(chunk,encoding,callback){if(!chunk||!chunk.length)return callback();let headersFound;"string"==typeof chunk&&(chunk=Buffer.from(chunk,encoding));try{headersFound=this.checkHeaders(chunk)}catch(E){return callback(E)}headersFound&&(this.bodySize+=chunk.length,this.push(chunk)),setImmediate(callback)}_flush(callback){if(this.headerChunks){let chunk=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=chunk.length,this.push(chunk),this.headerChunks=null}callback()}parseHeaders(){let lines=(this.rawHeaders||"").toString().split(/\r?\n/);for(let i=lines.length-1;i>0;i--)/^\s/.test(lines[i])&&(lines[i-1]+="\n"+lines[i],lines.splice(i,1));return lines.filter((line=>line.trim())).map((line=>({key:line.substr(0,line.indexOf(":")).trim().toLowerCase(),line:line})))}}}(),RelaxedBody=function requireRelaxedBody(){if(hasRequiredRelaxedBody)return relaxedBody;hasRequiredRelaxedBody=1;const Transform=require$$0__default$2.default.Transform,crypto=require$$0__default$1.default;return relaxedBody=class RelaxedBody extends Transform{constructor(options){super(),options=options||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=crypto.createHash(options.hashAlgo||"sha1"),this.remainder="",this.byteLength=0,this.debug=options.debug,this._debugBody=!!options.debug&&[]}updateHash(chunk){let bodyStr,nextRemainder="",state="file";for(let i=chunk.length-1;i>=0;i--){let c=chunk[i];if("file"!==state||10!==c&&13!==c)if("file"!==state||9!==c&&32!==c){if(("line"!==state||9!==c&&32!==c)&&("file"===state||"line"===state)&&(state="body",i===chunk.length-1))break}else state="line";if(0===i){if("file"===state&&(!this.remainder||/[\r\n]$/.test(this.remainder))||"line"===state&&(!this.remainder||/[ \t]$/.test(this.remainder)))return void(this.remainder+=chunk.toString("binary"));if("line"===state||"file"===state){nextRemainder=chunk.toString("binary"),chunk=!1;break}}if("body"===state){nextRemainder=chunk.slice(i+1).toString("binary"),chunk=chunk.slice(0,i+1);break}}let needsFixing=!!this.remainder;if(chunk&&!needsFixing)for(let i=0,len=chunk.length;i<len;i++){if(i&&10===chunk[i]&&13!==chunk[i-1]){needsFixing=!0;break}if(i&&13===chunk[i]&&32===chunk[i-1]){needsFixing=!0;break}if(i&&32===chunk[i]&&32===chunk[i-1]){needsFixing=!0;break}if(9===chunk[i]){needsFixing=!0;break}}needsFixing?(bodyStr=this.remainder+(chunk?chunk.toString("binary"):""),this.remainder=nextRemainder,bodyStr=bodyStr.replace(/\r?\n/g,"\n").replace(/[ \t]*$/gm,"").replace(/[ \t]+/gm," ").replace(/\n/g,"\r\n"),chunk=Buffer.from(bodyStr,"binary")):nextRemainder&&(this.remainder=nextRemainder),this.debug&&this._debugBody.push(chunk),this.bodyHash.update(chunk)}_transform(chunk,encoding,callback){if(!chunk||!chunk.length)return callback();"string"==typeof chunk&&(chunk=Buffer.from(chunk,encoding)),this.updateHash(chunk),this.byteLength+=chunk.length,this.push(chunk),callback()}_flush(callback){/[\r\n]$/.test(this.remainder)&&this.byteLength>2&&this.bodyHash.update(Buffer.from("\r\n")),this.byteLength||this.push(Buffer.from("\r\n")),this.emit("hash",this.bodyHash.digest("base64"),!!this.debug&&Buffer.concat(this._debugBody)),callback()}}}(),sign=requireSign(),PassThrough=require$$0__default$2.default.PassThrough,fs=fs__default.default,path=path__default.default,crypto=require$$0__default$1.default;class DKIMSigner{constructor(options,keys,input,output){this.options=options||{},this.keys=keys,this.cacheTreshold=Number(this.options.cacheTreshold)||131072,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=!!this.cacheDir&&path.join(this.cacheDir,"message."+Date.now()+"-"+crypto.randomBytes(14).toString("hex")),this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=input,this.output=output,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",(err=>{this.hasErrored=!0,this.cleanup(),output.emit("error",err)}))}cleanup(){this.cache&&this.cachePath&&fs.unlink(this.cachePath,(()=>!1))}createReadCache(){this.cache=fs.createReadStream(this.cachePath),this.cache.once("error",(err=>{this.cleanup(),this.output.emit("error",err)})),this.cache.once("close",(()=>{this.cleanup()})),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length)return this.cache?this.createReadCache():this.output.end();let chunk=this.chunks[this.readPos++];if(!1===this.output.write(chunk))return this.output.once("drain",(()=>{this.sendNextChunk()}));setImmediate((()=>this.sendNextChunk()))}sendSignedOutput(){let keyPos=0,signNextKey=()=>{if(keyPos>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate((()=>this.sendNextChunk()));let key=this.keys[keyPos++],dkimField=sign(this.headers,this.hashAlgo,this.bodyHash,{domainName:key.domainName,keySelector:key.keySelector,privateKey:key.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});return dkimField&&this.output.write(Buffer.from(dkimField+"\r\n")),setImmediate(signNextKey)};if(this.bodyHash&&this.headers)return signNextKey();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=fs.createWriteStream(this.cachePath),this.cache.once("error",(err=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",(()=>{for(;null!==this.relaxedBody.read(););})),this.hasErrored=!0,this.output.emit("error",err)})),this.cache.once("close",(()=>{this.sendSignedOutput()})),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new MessageParser,this.relaxedBody=new RelaxedBody({hashAlgo:this.hashAlgo}),this.parser.on("headers",(value=>{this.headers=value})),this.relaxedBody.on("hash",(value=>{this.bodyHash=value})),this.relaxedBody.on("readable",(()=>{let chunk;if(!this.cache)for(;null!==(chunk=this.relaxedBody.read());)if(this.chunks.push(chunk),this.chunklen+=chunk.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()})),this.relaxedBody.on("end",(()=>{this.cache||this.sendSignedOutput()})),this.parser.pipe(this.relaxedBody),setImmediate((()=>this.input.pipe(this.parser)))}}return dkim=class DKIM{constructor(options){this.options=options||{},this.keys=[].concat(this.options.keys||{domainName:options.domainName,keySelector:options.keySelector,privateKey:options.privateKey})}sign(input,extraOptions){let output=new PassThrough,inputStream=input,writeValue=!1;Buffer.isBuffer(input)?(writeValue=input,inputStream=new PassThrough):"string"==typeof input&&(writeValue=Buffer.from(input),inputStream=new PassThrough);let options=this.options;extraOptions&&Object.keys(extraOptions).length&&(options={},Object.keys(this.options||{}).forEach((key=>{options[key]=this.options[key]})),Object.keys(extraOptions||{}).forEach((key=>{key in options||(options[key]=extraOptions[key])})));let signer=new DKIMSigner(options,this.keys,inputStream,output);return setImmediate((()=>{signer.signStream(),writeValue&&setImmediate((()=>{inputStream.end(writeValue)}))})),output}}}function requireMailer(){if(hasRequiredMailer)return mailer;hasRequiredMailer=1;const EventEmitter=require$$0__default.default,shared=requireShared(),mimeTypes=requireMimeTypes(),MailComposer=function requireMailComposer(){if(hasRequiredMailComposer)return mailComposer;hasRequiredMailComposer=1;const MimeNode=requireMimeNode(),mimeFuncs=requireMimeFuncs(),parseDataURI=requireShared().parseDataURI;return mailComposer=class MailComposer{constructor(mail){this.mail=mail||{},this.message=!1}compile(){return this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter((alternative=>/^text\/html\b/i.test(alternative.contentType))).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!(!this._htmlNode||!this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&1===this._attachments.attached.length,this.mail.raw?this.message=new MimeNode("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw):this._useMixed?this.message=this._createMixed():this._useAlternative?this.message=this._createAlternative():this._useRelated?this.message=this._createRelated():this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""}),this.mail.headers&&this.message.addHeader(this.mail.headers),["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach((header=>{let key=header.replace(/-(\w)/g,((o,c)=>c.toUpperCase()));this.mail[key]&&this.message.setHeader(header,this.mail[key])})),this.mail.envelope&&this.message.setEnvelope(this.mail.envelope),this.message.messageId(),this.message}getAttachments(findRelated){let icalEvent,eventObject,attachments=[].concat(this.mail.attachments||[]).map(((attachment,i)=>{let data,isMessageNode=/^message\//i.test(attachment.contentType);/^data:/i.test(attachment.path||attachment.href)&&(attachment=this._processDataUrl(attachment));let contentType=attachment.contentType||mimeFuncs.detectMimeType(attachment.filename||attachment.path||attachment.href||"bin"),isImage=/^image\//i.test(contentType);return data={contentType:contentType,contentDisposition:attachment.contentDisposition||(isMessageNode||isImage&&attachment.cid?"inline":"attachment"),contentTransferEncoding:"contentTransferEncoding"in attachment?attachment.contentTransferEncoding:"base64"},attachment.filename?data.filename=attachment.filename:isMessageNode||!1===attachment.filename||(data.filename=(attachment.path||attachment.href||"").split("/").pop().split("?").shift()||"attachment-"+(i+1),data.filename.indexOf(".")<0&&(data.filename+="."+mimeFuncs.detectExtension(data.contentType))),/^https?:\/\//i.test(attachment.path)&&(attachment.href=attachment.path,attachment.path=void 0),attachment.cid&&(data.cid=attachment.cid),attachment.raw?data.raw=attachment.raw:attachment.path?data.content={path:attachment.path}:attachment.href?data.content={href:attachment.href,httpHeaders:attachment.httpHeaders}:data.content=attachment.content||"",attachment.encoding&&(data.encoding=attachment.encoding),attachment.headers&&(data.headers=attachment.headers),data}));return this.mail.icalEvent&&(icalEvent="object"==typeof this.mail.icalEvent&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?this.mail.icalEvent:{content:this.mail.icalEvent},eventObject={},Object.keys(icalEvent).forEach((key=>{eventObject[key]=icalEvent[key]})),eventObject.contentType="application/ics",eventObject.headers||(eventObject.headers={}),eventObject.filename=eventObject.filename||"invite.ics",eventObject.headers["Content-Disposition"]="attachment",eventObject.headers["Content-Transfer-Encoding"]="base64"),findRelated?{attached:attachments.filter((attachment=>!attachment.cid)).concat(eventObject||[]),related:attachments.filter((attachment=>!!attachment.cid))}:{attached:attachments.concat(eventObject||[]),related:[]}}getAlternatives(){let text,html,watchHtml,amp,icalEvent,eventObject,alternatives=[];return this.mail.text&&(text="object"==typeof this.mail.text&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw)?this.mail.text:{content:this.mail.text},text.contentType="text/plain; charset=utf-8"),this.mail.watchHtml&&(watchHtml="object"==typeof this.mail.watchHtml&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw)?this.mail.watchHtml:{content:this.mail.watchHtml},watchHtml.contentType="text/watch-html; charset=utf-8"),this.mail.amp&&(amp="object"==typeof this.mail.amp&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw)?this.mail.amp:{content:this.mail.amp},amp.contentType="text/x-amp-html; charset=utf-8"),this.mail.icalEvent&&(icalEvent="object"==typeof this.mail.icalEvent&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw)?this.mail.icalEvent:{content:this.mail.icalEvent},eventObject={},Object.keys(icalEvent).forEach((key=>{eventObject[key]=icalEvent[key]})),eventObject.content&&"object"==typeof eventObject.content&&(eventObject.content._resolve=!0),eventObject.filename=!1,eventObject.contentType="text/calendar; charset=utf-8; method="+(eventObject.method||"PUBLISH").toString().trim().toUpperCase(),eventObject.headers||(eventObject.headers={})),this.mail.html&&(html="object"==typeof this.mail.html&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw)?this.mail.html:{content:this.mail.html},html.contentType="text/html; charset=utf-8"),[].concat(text||[]).concat(watchHtml||[]).concat(amp||[]).concat(html||[]).concat(eventObject||[]).concat(this.mail.alternatives||[]).forEach((alternative=>{let data;/^data:/i.test(alternative.path||alternative.href)&&(alternative=this._processDataUrl(alternative)),data={contentType:alternative.contentType||mimeFuncs.detectMimeType(alternative.filename||alternative.path||alternative.href||"txt"),contentTransferEncoding:alternative.contentTransferEncoding},alternative.filename&&(data.filename=alternative.filename),/^https?:\/\//i.test(alternative.path)&&(alternative.href=alternative.path,alternative.path=void 0),alternative.raw?data.raw=alternative.raw:alternative.path?data.content={path:alternative.path}:alternative.href?data.content={href:alternative.href}:data.content=alternative.content||"",alternative.encoding&&(data.encoding=alternative.encoding),alternative.headers&&(data.headers=alternative.headers),alternatives.push(data)})),alternatives}_createMixed(parentNode){let node;return node=parentNode?parentNode.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._useAlternative?this._createAlternative(node):this._useRelated&&this._createRelated(node),[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach((element=>{this._useRelated&&element===this._htmlNode||this._createContentNode(node,element)})),node}_createAlternative(parentNode){let node;return node=parentNode?parentNode.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._alternatives.forEach((alternative=>{this._useRelated&&this._htmlNode===alternative?this._createRelated(node):this._createContentNode(node,alternative)})),node}_createRelated(parentNode){let node;return node=parentNode?parentNode.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),this._createContentNode(node,this._htmlNode),this._attachments.related.forEach((alternative=>this._createContentNode(node,alternative))),node}_createContentNode(parentNode,element){let node;(element=element||{}).content=element.content||"";let encoding=(element.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");return node=parentNode?parentNode.createChild(element.contentType,{filename:element.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new MimeNode(element.contentType,{filename:element.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}),element.headers&&node.addHeader(element.headers),element.cid&&node.setHeader("Content-Id","<"+element.cid.replace(/[<>]/g,"")+">"),element.contentTransferEncoding?node.setHeader("Content-Transfer-Encoding",element.contentTransferEncoding):this.mail.encoding&&/^text\//i.test(element.contentType)&&node.setHeader("Content-Transfer-Encoding",this.mail.encoding),/^text\//i.test(element.contentType)&&!element.contentDisposition||node.setHeader("Content-Disposition",element.contentDisposition||(element.cid&&/^image\//i.test(element.contentType)?"inline":"attachment")),"string"!=typeof element.content||["utf8","usascii","ascii"].includes(encoding)||(element.content=Buffer.from(element.content,encoding)),element.raw?node.setRaw(element.raw):node.setContent(element.content),node}_processDataUrl(element){let parsedDataUri;return(element.path||element.href).match(/^data:/)&&(parsedDataUri=parseDataURI(element.path||element.href)),parsedDataUri?(element.content=parsedDataUri.data,element.contentType=element.contentType||parsedDataUri.contentType,"path"in element&&(element.path=!1),"href"in element&&(element.href=!1),element):element}},mailComposer}(),DKIM=requireDkim(),httpProxyClient=function requireHttpProxyClient(){if(hasRequiredHttpProxyClient)return httpProxyClient_1;hasRequiredHttpProxyClient=1;const net=require$$7__default.default,tls=require$$1__default$2.default,urllib=require$$0__default$4.default;return httpProxyClient_1=function httpProxyClient(proxyUrl,destinationPort,destinationHost,callback){let options,connect,socket,proxy=urllib.parse(proxyUrl);options={host:proxy.hostname,port:Number(proxy.port)?Number(proxy.port):"https:"===proxy.protocol?443:80},"https:"===proxy.protocol?(options.rejectUnauthorized=!1,connect=tls.connect.bind(tls)):connect=net.connect.bind(net);let finished=!1,tempSocketErr=err=>{if(!finished){finished=!0;try{socket.destroy()}catch(E){}callback(err)}},timeoutErr=()=>{let err=new Error("Proxy socket timed out");err.code="ETIMEDOUT",tempSocketErr(err)};socket=connect(options,(()=>{if(finished)return;let reqHeaders={Host:destinationHost+":"+destinationPort,Connection:"close"};proxy.auth&&(reqHeaders["Proxy-Authorization"]="Basic "+Buffer.from(proxy.auth).toString("base64")),socket.write("CONNECT "+destinationHost+":"+destinationPort+" HTTP/1.1\r\n"+Object.keys(reqHeaders).map((key=>key+": "+reqHeaders[key])).join("\r\n")+"\r\n\r\n");let headers="",onSocketData=chunk=>{let match,remainder;if(!finished&&(headers+=chunk.toString("binary"),match=headers.match(/\r\n\r\n/))){if(socket.removeListener("data",onSocketData),remainder=headers.substr(match.index+match[0].length),headers=headers.substr(0,match.index),remainder&&socket.unshift(Buffer.from(remainder,"binary")),finished=!0,match=headers.match(/^HTTP\/\d+\.\d+ (\d+)/i),!match||"2"!==(match[1]||"").charAt(0)){try{socket.destroy()}catch(E){}return callback(new Error("Invalid response from proxy"+(match&&": "+match[1]||"")))}return socket.removeListener("error",tempSocketErr),socket.removeListener("timeout",timeoutErr),socket.setTimeout(0),callback(null,socket)}};socket.on("data",onSocketData)})),socket.setTimeout(httpProxyClient.timeout||3e4),socket.on("timeout",timeoutErr),socket.once("error",tempSocketErr)},httpProxyClient_1}(),util=require$$0__default$3.default,urllib=require$$0__default$4.default,packageData=require$$9,MailMessage=function requireMailMessage(){if(hasRequiredMailMessage)return mailMessage;hasRequiredMailMessage=1;const shared=requireShared(),MimeNode=requireMimeNode(),mimeFuncs=requireMimeFuncs();return mailMessage=class MailMessage{constructor(mailer,data){this.mailer=mailer,this.data={},this.message=null,data=data||{};let options=mailer.options||{},defaults=mailer._defaults||{};Object.keys(data).forEach((key=>{this.data[key]=data[key]})),this.data.headers=this.data.headers||{},Object.keys(defaults).forEach((key=>{key in this.data?"headers"===key&&Object.keys(defaults.headers).forEach((key=>{key in this.data.headers||(this.data.headers[key]=defaults.headers[key])})):this.data[key]=defaults[key]})),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach((key=>{key in options&&(this.data[key]=options[key])}))}resolveContent(...args){return shared.resolveContent(...args)}resolveAll(callback){let keys=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];this.data.alternatives&&this.data.alternatives.length&&this.data.alternatives.forEach(((alternative,i)=>{keys.push([this.data.alternatives,i])})),this.data.attachments&&this.data.attachments.length&&this.data.attachments.forEach(((attachment,i)=>{attachment.filename||(attachment.filename=(attachment.path||attachment.href||"").split("/").pop().split("?").shift()||"attachment-"+(i+1),attachment.filename.indexOf(".")<0&&(attachment.filename+="."+mimeFuncs.detectExtension(attachment.contentType))),attachment.contentType||(attachment.contentType=mimeFuncs.detectMimeType(attachment.filename||attachment.path||attachment.href||"bin")),keys.push([this.data.attachments,i])}));let mimeNode=new MimeNode;["from","to","cc","bcc","sender","replyTo"].forEach((address=>{let value;this.message?value=[].concat(mimeNode._parseAddresses(this.message.getHeader("replyTo"===address?"reply-to":address))||[]):this.data[address]&&(value=[].concat(mimeNode._parseAddresses(this.data[address])||[])),value&&value.length?this.data[address]=value:address in this.data&&(this.data[address]=null)})),["from","sender"].forEach((address=>{this.data[address]&&(this.data[address]=this.data[address].shift())}));let pos=0,resolveNext=()=>{if(pos>=keys.length)return callback(null,this.data);let args=keys[pos++];if(!args[0]||!args[0][args[1]])return resolveNext();shared.resolveContent(...args,((err,value)=>{if(err)return callback(err);let node={content:value};args[0][args[1]]&&"object"==typeof args[0][args[1]]&&!Buffer.isBuffer(args[0][args[1]])&&Object.keys(args[0][args[1]]).forEach((key=>{key in node||["content","path","href","raw"].includes(key)||(node[key]=args[0][args[1]][key])})),args[0][args[1]]=node,resolveNext()}))};setImmediate((()=>resolveNext()))}normalize(callback){let envelope=this.data.envelope||this.message.getEnvelope(),messageId=this.message.messageId();this.resolveAll(((err,data)=>err?callback(err):(data.envelope=envelope,data.messageId=messageId,["html","text","watchHtml","amp"].forEach((key=>{data[key]&&data[key].content&&("string"==typeof data[key].content?data[key]=data[key].content:Buffer.isBuffer(data[key].content)&&(data[key]=data[key].content.toString()))})),data.icalEvent&&Buffer.isBuffer(data.icalEvent.content)&&(data.icalEvent.content=data.icalEvent.content.toString("base64"),data.icalEvent.encoding="base64"),data.alternatives&&data.alternatives.length&&data.alternatives.forEach((alternative=>{alternative&&alternative.content&&Buffer.isBuffer(alternative.content)&&(alternative.content=alternative.content.toString("base64"),alternative.encoding="base64")})),data.attachments&&data.attachments.length&&data.attachments.forEach((attachment=>{attachment&&attachment.content&&Buffer.isBuffer(attachment.content)&&(attachment.content=attachment.content.toString("base64"),attachment.encoding="base64")})),data.normalizedHeaders={},Object.keys(data.headers||{}).forEach((key=>{let value=[].concat(data.headers[key]||[]).shift();value=value&&value.value||value,value&&(["references","in-reply-to","message-id","content-id"].includes(key)&&(value=this.message._encodeHeaderValue(key,value)),data.normalizedHeaders[key]=value)})),data.list&&"object"==typeof data.list&&this._getListHeaders(data.list).forEach((entry=>{data.normalizedHeaders[entry.key]=entry.value.map((val=>val&&val.value||val)).join(", ")})),data.references&&(data.normalizedHeaders.references=this.message._encodeHeaderValue("references",data.references)),data.inReplyTo&&(data.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",data.inReplyTo)),callback(null,data))))}setMailerHeader(){this.message&&this.data.xMailer&&this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(this.message&&this.data.priority)switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low")}}setListHeaders(){this.message&&this.data.list&&"object"==typeof this.data.list&&this.data.list&&"object"==typeof this.data.list&&this._getListHeaders(this.data.list).forEach((listHeader=>{listHeader.value.forEach((value=>{this.message.addHeader(listHeader.key,value)}))}))}_getListHeaders(listData){return Object.keys(listData).map((key=>({key:"list-"+key.toLowerCase().trim(),value:[].concat(listData[key]||[]).map((value=>({prepared:!0,foldLines:!0,value:[].concat(value||[]).map((value=>{if("string"==typeof value&&(value={url:value}),value&&value.url){if("id"===key.toLowerCase().trim()){let comment=value.comment||"";return comment=mimeFuncs.isPlainText(comment)?'"'+comment+'"':mimeFuncs.encodeWord(comment),(value.comment?comment+" ":"")+this._formatListUrl(value.url).replace(/^<[^:]+\/{,2}/,"")}let comment=value.comment||"";return mimeFuncs.isPlainText(comment)||(comment=mimeFuncs.encodeWord(comment)),this._formatListUrl(value.url)+(value.comment?" ("+comment+")":"")}return""})).filter((value=>value)).join(", ")})))})))}_formatListUrl(url){return url=url.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(url)?"<"+url+">":/^[^@]+@[^@]+$/.test(url)?"<mailto:"+url+">":"<http://"+url+">"}},mailMessage}(),net=require$$7__default.default,dns=require$$4__default$2.default,crypto=require$$0__default$1.default;return mailer=class Mail extends EventEmitter{constructor(transporter,options,defaults){super(),this.options=options||{},this._defaults=defaults||{},this._defaultPlugins={compile:[(...args)=>this._convertDataImages(...args)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=!!this.options.dkim&&new DKIM(this.options.dkim),this.transporter=transporter,this.transporter.mailer=this,this.logger=shared.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),"function"==typeof this.transporter.on&&(this.transporter.on("log",(log=>{this.logger.debug({tnx:"transport"},"%s: %s",log.type,log.message)})),this.transporter.on("error",(err=>{this.logger.error({err:err,tnx:"transport"},"Transport Error: %s",err.message),this.emit("error",err)})),this.transporter.on("idle",((...args)=>{this.emit("idle",...args)}))),["close","isIdle","verify"].forEach((method=>{this[method]=(...args)=>"function"==typeof this.transporter[method]?("verify"===method&&"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1),this.transporter[method](...args)):(this.logger.warn({tnx:"transport",methodName:method},"Non existing method %s called for transport",method),!1)})),this.options.proxy&&"string"==typeof this.options.proxy&&this.setupProxy(this.options.proxy)}use(step,plugin){return step=(step||"").toString(),this._userPlugins.hasOwnProperty(step)?this._userPlugins[step].push(plugin):this._userPlugins[step]=[plugin],this}sendMail(data,callback=null){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1);let mail=new MailMessage(this,data);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",mail,(err=>{if(err)return this.logger.error({err:err,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",err.message),callback(err);mail.message=new MailComposer(mail.data).compile(),mail.setMailerHeader(),mail.setPriorityHeaders(),mail.setListHeaders(),this._processPlugins("stream",mail,(err=>{if(err)return this.logger.error({err:err,tnx:"plugin",action:"stream"},"PluginStream Error: %s",err.message),callback(err);(mail.data.dkim||this.dkim)&&mail.message.processFunc((input=>{let dkim=mail.data.dkim?new DKIM(mail.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:mail.message.messageId(),dkimDomains:dkim.keys.map((key=>key.keySelector+"."+key.domainName)).join(", ")},"Signing outgoing message with %s keys",dkim.keys.length),dkim.sign(input,mail.data._dkim)})),this.transporter.send(mail,((...args)=>{args[0]&&this.logger.error({err:args[0],tnx:"transport",action:"send"},"Send Error: %s",args[0].message),callback(...args)}))}))})),promise}getVersionString(){return util.format("%s (%s; +%s; %s/%s)",packageData.name,packageData.version,packageData.homepage,this.transporter.name,this.transporter.version)}_processPlugins(step,mail,callback){if(step=(step||"").toString(),!this._userPlugins.hasOwnProperty(step))return callback();let userPlugins=this._userPlugins[step]||[],defaultPlugins=this._defaultPlugins[step]||[];if(userPlugins.length&&this.logger.debug({tnx:"transaction",pluginCount:userPlugins.length,step:step},"Using %s plugins for %s",userPlugins.length,step),userPlugins.length+defaultPlugins.length===0)return callback();let pos=0,block="default",processPlugins=()=>{let curplugins="default"===block?defaultPlugins:userPlugins;if(pos>=curplugins.length){if("default"!==block||!userPlugins.length)return callback();block="user",pos=0,curplugins=userPlugins}(0,curplugins[pos++])(mail,(err=>{if(err)return callback(err);processPlugins()}))};processPlugins()}setupProxy(proxyUrl){let proxy=urllib.parse(proxyUrl);this.getSocket=(options,callback)=>{let protocol=proxy.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+protocol))return this.meta.get("proxy_handler_"+protocol)(proxy,options,callback);switch(protocol){case"http":case"https":return void httpProxyClient(proxy.href,options.port,options.host,((err,socket)=>err?callback(err):callback(null,{connection:socket})));case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module"))return callback(new Error("Socks module not loaded"));let connect=ipaddress=>{let proxyV2=!!this.meta.get("proxy_socks_module").SocksClient,socksClient=proxyV2?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),proxyType=Number(proxy.protocol.replace(/\D/g,""))||5,connectionOpts={proxy:{ipaddress:ipaddress,port:Number(proxy.port),type:proxyType},[proxyV2?"destination":"target"]:{host:options.host,port:options.port},command:"connect"};if(proxy.auth){let username=decodeURIComponent(proxy.auth.split(":").shift()),password=decodeURIComponent(proxy.auth.split(":").pop());proxyV2?(connectionOpts.proxy.userId=username,connectionOpts.proxy.password=password):4===proxyType?connectionOpts.userid=username:connectionOpts.authentication={username:username,password:password}}socksClient.createConnection(connectionOpts,((err,info)=>err?callback(err):callback(null,{connection:info.socket||info})))};return net.isIP(proxy.hostname)?connect(proxy.hostname):dns.resolve(proxy.hostname,((err,address)=>{if(err)return callback(err);connect(Array.isArray(address)?address[0]:address)}))}}callback(new Error("Unknown proxy configuration"))}}_convertDataImages(mail,callback){if(!this.options.attachDataUrls&&!mail.data.attachDataUrls||!mail.data.html)return callback();mail.resolveContent(mail.data,"html",((err,html)=>{if(err)return callback(err);let cidCounter=0;html=(html||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,((match,prefix,dataUri,mimeType)=>{let cid=crypto.randomBytes(10).toString("hex")+"@localhost";return mail.data.attachments||(mail.data.attachments=[]),Array.isArray(mail.data.attachments)||(mail.data.attachments=[].concat(mail.data.attachments||[])),mail.data.attachments.push({path:dataUri,cid:cid,filename:"image-"+ ++cidCounter+"."+mimeTypes.detectExtension(mimeType)}),prefix+"cid:"+cid})),mail.data.html=html,callback()}))}set(key,value){return this.meta.set(key,value)}get(key){return this.meta.get(key)}},mailer}function requireSmtpConnection(){if(hasRequiredSmtpConnection)return smtpConnection;hasRequiredSmtpConnection=1;const packageInfo=require$$9,EventEmitter=require$$0__default.default.EventEmitter,net=require$$7__default.default,tls=require$$1__default$2.default,os=require$$0__default$5.default,crypto=require$$0__default$1.default,DataStream=function requireDataStream(){if(hasRequiredDataStream)return dataStream;hasRequiredDataStream=1;const Transform=require$$0__default$2.default.Transform;return dataStream=class DataStream extends Transform{constructor(options){super(options),this.options=options||{},this._curLine="",this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(chunk,encoding,done){let i,len,buf,chunks=[],chunklen=0,lastPos=0;if(!chunk||!chunk.length)return done();for("string"==typeof chunk&&(chunk=Buffer.from(chunk)),this.inByteCount+=chunk.length,i=0,len=chunk.length;i<len;i++)46===chunk[i]?(i&&10===chunk[i-1]||!i&&(!this.lastByte||10===this.lastByte))&&(buf=chunk.slice(lastPos,i+1),chunks.push(buf),chunks.push(Buffer.from(".")),chunklen+=buf.length+1,lastPos=i+1):10===chunk[i]&&(i&&13!==chunk[i-1]||!i&&13!==this.lastByte)&&(i>lastPos?(buf=chunk.slice(lastPos,i),chunks.push(buf),chunklen+=buf.length+2):chunklen+=2,chunks.push(Buffer.from("\r\n")),lastPos=i+1);chunklen?(lastPos<chunk.length&&(buf=chunk.slice(lastPos),chunks.push(buf),chunklen+=buf.length),this.outByteCount+=chunklen,this.push(Buffer.concat(chunks,chunklen))):(this.outByteCount+=chunk.length,this.push(chunk)),this.lastByte=chunk[chunk.length-1],done()}_flush(done){let buf;buf=10===this.lastByte?Buffer.from(".\r\n"):13===this.lastByte?Buffer.from("\n.\r\n"):Buffer.from("\r\n.\r\n"),this.outByteCount+=buf.length,this.push(buf),done()}}}(),PassThrough=require$$0__default$2.default.PassThrough,shared=requireShared();return smtpConnection=class SMTPConnection extends EventEmitter{constructor(options){super(options),this.id=crypto.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=options||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!net.isIP(this.host)&&this.host,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,void 0===this.options.secure&&465===this.port&&(this.secureConnection=!0),this.name=this.options.name||this._getHostname(),this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map,Object.keys(this.options.customAuth||{}).forEach((key=>{let mapKey=(key||"").toString().trim().toUpperCase();mapKey&&this.customAuth.set(mapKey,this.options.customAuth[key])})),this.version=packageInfo.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=chunk=>this._onData(chunk),this._onSocketError=error=>this._onError(error,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout()}connect(connectCallback){if("function"==typeof connectCallback){this.once("connect",(()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),connectCallback()}));const isDestroyedMessage=this._isDestroyedMessage("connect");if(isDestroyedMessage)return connectCallback(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"CONN"))}let opts={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||3e4};this.options.localAddress&&(opts.localAddress=this.options.localAddress);let setupConnectionHandlers=()=>{this._connectionTimeout=setTimeout((()=>{this._onError("Connection timeout","ETIMEDOUT",!1,"CONN")}),this.options.connectionTimeout||12e4),this._socket.on("error",this._onSocketError)};return this.options.connection?(this._socket=this.options.connection,void(this.secureConnection&&!this.alreadySecured?setImmediate((()=>this._upgradeConnection((err=>{err?this._onError(new Error("Error initiating TLS - "+(err.message||err)),"ETLS",!1,"CONN"):this._onConnect()})))):setImmediate((()=>this._onConnect())))):this.options.socket?(this._socket=this.options.socket,shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket.connect(this.port,this.host,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))):this.secureConnection?(this.options.tls&&Object.keys(this.options.tls).forEach((key=>{opts[key]=this.options.tls[key]})),this.servername&&!opts.servername&&(opts.servername=this.servername),shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket=tls.connect(opts,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))):shared.resolveHostname(opts,((err,resolved)=>{if(err)return setImmediate((()=>this._onError(err,"EDNS",!1,"CONN")));this.logger.debug({tnx:"dns",source:opts.host,resolved:resolved.host,cached:!!resolved.cached},"Resolved %s as %s [cache %s]",opts.host,resolved.host,resolved.cached?"hit":"miss"),Object.keys(resolved).forEach((key=>{"_"!==key.charAt(0)&&resolved[key]&&(opts[key]=resolved[key])}));try{this._socket=net.connect(opts,(()=>{this._socket.setKeepAlive(!0),this._onConnect()})),setupConnectionHandlers()}catch(E){return setImmediate((()=>this._onError(E,"ECONNECTION",!1,"CONN")))}}))}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let closeMethod="end";"init"===this.stage&&(closeMethod="destroy"),this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',closeMethod);let socket=this._socket&&this._socket.socket||this._socket;if(socket&&!socket.destroyed)try{this._socket[closeMethod]()}catch(E){}this._destroy()}login(authData,callback){const isDestroyedMessage=this._isDestroyedMessage("login");if(isDestroyedMessage)return callback(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"API"));if(this._auth=authData||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,this._authMethod||!this._auth.oauth2||this._auth.credentials?this._authMethod&&("XOAUTH2"!==this._authMethod||this._auth.oauth2)||(this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim()):this._authMethod="XOAUTH2",!("XOAUTH2"===this._authMethod||this._auth.credentials&&this._auth.credentials.user&&this._auth.credentials.pass)){if(!(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod)))return callback(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options}}if(!this.customAuth.has(this._authMethod)){switch(this._authMethod){case"XOAUTH2":return void this._handleXOauth2Token(!1,callback);case"LOGIN":return this._responseActions.push((str=>{this._actionAUTH_LOGIN_USER(str,callback)})),void this._sendCommand("AUTH LOGIN");case"PLAIN":return this._responseActions.push((str=>{this._actionAUTHComplete(str,callback)})),void this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0/* secret */","utf-8").toString("base64"));case"CRAM-MD5":return this._responseActions.push((str=>{this._actionAUTH_CRAM_MD5(str,callback)})),void this._sendCommand("AUTH CRAM-MD5")}return callback(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}{let lastResponse,handler=this.customAuth.get(this._authMethod),returned=!1,resolve=()=>{returned||(returned=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,callback(null,!0))},reject=err=>{returned||(returned=!0,callback(this._formatError(err,"EAUTH",lastResponse,"AUTH "+this._authMethod)))},handlerResponse=handler({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(cmd,done)=>{let promise;return done||(promise=new Promise(((resolve,reject)=>{done=shared.callbackPromise(resolve,reject)}))),this._responseActions.push((str=>{lastResponse=str;let codes=str.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),data={command:cmd,response:str};codes?(data.status=Number(codes[1])||0,codes[2]&&(data.code=codes[2]),data.text=str.substr(codes[0].length)):(data.text=str,data.status=0),done(null,data)})),setImmediate((()=>this._sendCommand(cmd))),promise},resolve:resolve,reject:reject});handlerResponse&&"function"==typeof handlerResponse.catch&&handlerResponse.then(resolve).catch(reject)}}send(envelope,message,done){if(!message)return done(this._formatError("Empty message","EMESSAGE",!1,"API"));const isDestroyedMessage=this._isDestroyedMessage("send message");if(isDestroyedMessage)return done(this._formatError(isDestroyedMessage,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&envelope.size>this._maxAllowedSize)return setImmediate((()=>{done(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))}));let returned=!1,callback=function(){returned||(returned=!0,done(...arguments))};"function"==typeof message.on&&message.on("error",(err=>callback(this._formatError(err,"ESTREAM",!1,"API"))));let startTime=Date.now();this._setEnvelope(envelope,((err,info)=>{if(err)return callback(err);let envelopeTime=Date.now(),stream=this._createSendStream(((err,str)=>err?callback(err):(info.envelopeTime=envelopeTime-startTime,info.messageTime=Date.now()-envelopeTime,info.messageSize=stream.outByteCount,info.response=str,callback(null,info))));"function"==typeof message.pipe?message.pipe(stream):(stream.write(message),stream.end())}))}reset(callback){this._sendCommand("RSET"),this._responseActions.push((str=>"2"!==str.charAt(0)?callback(this._formatError("Could not reset session state. response="+str,"EPROTOCOL",str,"RSET")):(this._envelope=!1,callback(null,!0))))}_onConnect(){clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed?this.close():(this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||6e5),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout((()=>{this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting&&this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")}),this.options.greetingTimeout||3e4),this._responseActions.push(this._actionGreeting),this._socket.resume())}_onData(chunk){if(this._destroyed||!chunk||!chunk.length)return;let lastline,data=(chunk||"").toString("binary"),lines=(this._remainder+data).split(/\r?\n/);this._remainder=lines.pop();for(let i=0,len=lines.length;i<len;i++)this._responseQueue.length&&(lastline=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(lastline.split("\n").pop()))?this._responseQueue[this._responseQueue.length-1]+="\n"+lines[i]:this._responseQueue.push(lines[i]);this._responseQueue.length&&(lastline=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(lastline.split("\n").pop()))||this._processResponse()}_onError(err,type,data,command){clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed||(err=this._formatError(err,type,data,command),this.logger.error(data,err.message),this.emit("error",err),this.close())}_formatError(message,type,response,command){let err;err=/Error\]$/i.test(Object.prototype.toString.call(message))?message:new Error(message),type&&"Error"!==type&&(err.code=type),response&&(err.response=response,err.message+=": "+response);let responseCode="string"==typeof response&&Number((response.match(/^\d+/)||[])[0])||!1;return responseCode&&(err.responseCode=responseCode),command&&(err.command=command),err}_onClose(){let serverResponse=!1;return this._remainder&&this._remainder.trim()&&((this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},this._remainder.replace(/\r?\n$/,"")),this.lastServerResponse=serverResponse=this._remainder.trim()),this.logger.info({tnx:"network"},"Connection closed"),this.upgrading&&!this._destroyed?this._onError(new Error("Connection closed unexpectedly"),"ETLS",serverResponse,"CONN"):[this._actionGreeting,this.close].includes(this._responseActions[0])||this._destroyed?/^[45]\d{2}\b/.test(serverResponse)?this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",serverResponse,"CONN"):void this._destroy():this._onError(new Error("Connection closed unexpectedly"),"ECONNECTION",serverResponse,"CONN")}_onEnd(){this._socket&&!this._socket.destroyed&&this._socket.destroy()}_onTimeout(){return this._onError(new Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){this._destroyed||(this._destroyed=!0,this.emit("end"))}_upgradeConnection(callback){this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout);let socketPlain=this._socket,opts={socket:this._socket,host:this.host};Object.keys(this.options.tls||{}).forEach((key=>{opts[key]=this.options.tls[key]})),this.servername&&!opts.servername&&(opts.servername=this.servername),this.upgrading=!0;try{this._socket=tls.connect(opts,(()=>(this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),socketPlain.removeListener("close",this._onSocketClose),socketPlain.removeListener("end",this._onSocketEnd),callback(null,!0))))}catch(err){return callback(err)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||6e5),this._socket.on("timeout",this._onSocketTimeout),socketPlain.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let str=this.lastServerResponse=(this._responseQueue.shift()||"").toString();if(/^\d+-/.test(str.split("\n").pop()))return;(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},str.replace(/\r?\n$/,"")),str.trim()||setImmediate((()=>this._processResponse()));let action=this._responseActions.shift();if("function"!=typeof action)return this._onError(new Error("Unexpected Response"),"EPROTOCOL",str,"CONN");action.call(this,str),setImmediate((()=>this._processResponse()))}_sendCommand(str,logStr){if(!this._destroyed){if(this._socket.destroyed)return this.close();(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"client"},(logStr||str||"").toString().replace(/\r?\n$/,"")),this._socket.write(Buffer.from(str+"\r\n","utf-8"))}}_setEnvelope(envelope,callback){let args=[],useSmtpUtf8=!1;if(this._envelope=envelope||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map((to=>(to&&to.address||to||"").toString().trim())),!this._envelope.to.length)return callback(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return callback(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.from)&&(useSmtpUtf8=!0);for(let i=0,len=this._envelope.to.length;i<len;i++){if(!this._envelope.to[i]||/[\r\n<>]/.test(this._envelope.to[i]))return callback(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[i]),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.to[i])&&(useSmtpUtf8=!0)}if(this._envelope.rcptQueue=JSON.parse(JSON.stringify(this._envelope.to||[])),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(err){return callback(this._formatError("Invalid DSN "+err.message,"EENVELOPE",!1,"API"))}this._responseActions.push((str=>{this._actionMAIL(str,callback)})),useSmtpUtf8&&this._supportedExtensions.includes("SMTPUTF8")&&(args.push("SMTPUTF8"),this._usingSmtpUtf8=!0),this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME")&&(args.push("BODY=8BITMIME"),this._using8BitMime=!0),this._envelope.size&&this._supportedExtensions.includes("SIZE")&&args.push("SIZE="+this._envelope.size),this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.ret&&args.push("RET="+shared.encodeXText(this._envelope.dsn.ret)),this._envelope.dsn.envid&&args.push("ENVID="+shared.encodeXText(this._envelope.dsn.envid))),this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(args.length?" "+args.join(" "):""))}_setDsnEnvelope(params){let ret=(params.ret||params.return||"").toString().toUpperCase()||null;if(ret)switch(ret){case"HDRS":case"HEADERS":ret="HDRS";break;case"FULL":case"BODY":ret="FULL"}if(ret&&!["FULL","HDRS"].includes(ret))throw new Error("ret: "+JSON.stringify(ret));let envid=(params.envid||params.id||"").toString()||null,notify=params.notify||null;if(notify){"string"==typeof notify&&(notify=notify.split(",")),notify=notify.map((n=>n.trim().toUpperCase()));let validNotify=["NEVER","SUCCESS","FAILURE","DELAY"];if(notify.filter((n=>!validNotify.includes(n))).length||notify.length>1&&notify.includes("NEVER"))throw new Error("notify: "+JSON.stringify(notify.join(",")));notify=notify.join(",")}let orcpt=(params.recipient||params.orcpt||"").toString()||null;return orcpt&&orcpt.indexOf(";")<0&&(orcpt="rfc822;"+orcpt),{ret:ret,envid:envid,notify:notify,orcpt:orcpt}}_getDsnRcptToArgs(){let args=[];return this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.notify&&args.push("NOTIFY="+shared.encodeXText(this._envelope.dsn.notify)),this._envelope.dsn.orcpt&&args.push("ORCPT="+shared.encodeXText(this._envelope.dsn.orcpt))),args.length?" "+args.join(" "):""}_createSendStream(callback){let logStream,dataStream=new DataStream;return this.options.lmtp?this._envelope.accepted.forEach(((recipient,i)=>{let final=i===this._envelope.accepted.length-1;this._responseActions.push((str=>{this._actionLMTPStream(recipient,final,str,callback)}))})):this._responseActions.push((str=>{this._actionSMTPStream(str,callback)})),dataStream.pipe(this._socket,{end:!1}),this.options.debug&&(logStream=new PassThrough,logStream.on("readable",(()=>{let chunk;for(;chunk=logStream.read();)this.logger.debug({tnx:"message"},chunk.toString("binary").replace(/\r?\n$/,""))})),dataStream.pipe(logStream)),dataStream.once("end",(()=>{this.logger.info({tnx:"message",inByteCount:dataStream.inByteCount,outByteCount:dataStream.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",dataStream.outByteCount,dataStream.inByteCount)})),dataStream}_actionGreeting(str){clearTimeout(this._greetingTimeout),"220"===str.substr(0,3)?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this._onError(new Error("Invalid greeting. response="+str),"EPROTOCOL",str,"CONN")}_actionLHLO(str){"2"===str.charAt(0)?this._actionEHLO(str):this._onError(new Error("Invalid LHLO. response="+str),"EPROTOCOL",str,"LHLO")}_actionEHLO(str){let match;if("421"!==str.substr(0,3)){if("2"!==str.charAt(0))return this.options.requireTLS?void this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response="+str),"ECONNECTION",str,"EHLO"):(this._responseActions.push(this._actionHELO),void this._sendCommand("HELO "+this.name));if(this._ehloLines=str.split(/\r?\n/).map((line=>line.replace(/^\d+[ -]/,"").trim())).filter((line=>line)).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(str)||this.options.requireTLS))return this._sendCommand("STARTTLS"),void this._responseActions.push(this._actionSTARTTLS);/[ -]SMTPUTF8\b/im.test(str)&&this._supportedExtensions.push("SMTPUTF8"),/[ -]DSN\b/im.test(str)&&this._supportedExtensions.push("DSN"),/[ -]8BITMIME\b/im.test(str)&&this._supportedExtensions.push("8BITMIME"),/[ -]PIPELINING\b/im.test(str)&&this._supportedExtensions.push("PIPELINING"),/[ -]AUTH\b/i.test(str)&&(this.allowsAuth=!0),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(str)&&this._supportedAuth.push("PLAIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(str)&&this._supportedAuth.push("LOGIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(str)&&this._supportedAuth.push("CRAM-MD5"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(str)&&this._supportedAuth.push("XOAUTH2"),(match=str.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))&&(this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(match[1])||0),this.emit("connect")}else this._onError(new Error("Server terminates connection. response="+str),"ECONNECTION",str,"EHLO")}_actionHELO(str){"2"===str.charAt(0)?(this.allowsAuth=!0,this.emit("connect")):this._onError(new Error("Invalid HELO. response="+str),"EPROTOCOL",str,"HELO")}_actionSTARTTLS(str){if("2"!==str.charAt(0))return this.options.opportunisticTLS?(this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect")):void this._onError(new Error("Error upgrading connection with STARTTLS"),"ETLS",str,"STARTTLS");this._upgradeConnection(((err,secured)=>{err?this._onError(new Error("Error initiating TLS - "+(err.message||err)),"ETLS",!1,"STARTTLS"):(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),secured?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this.emit("connect"))}))}_actionAUTH_LOGIN_USER(str,callback){/^334[ -]/.test(str)?(this._responseActions.push((str=>{this._actionAUTH_LOGIN_PASS(str,callback)})),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))):callback(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",str,"AUTH LOGIN"))}_actionAUTH_CRAM_MD5(str,callback){let challengeMatch=str.match(/^334\s+(.+)$/),challengeString="";if(!challengeMatch)return callback(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",str,"AUTH CRAM-MD5"));challengeString=challengeMatch[1];let base64decoded=Buffer.from(challengeString,"base64").toString("ascii"),hmacMD5=crypto.createHmac("md5",this._auth.credentials.pass);hmacMD5.update(base64decoded);let prepended=this._auth.credentials.user+" "+hmacMD5.digest("hex");this._responseActions.push((str=>{this._actionAUTH_CRAM_MD5_PASS(str,callback)})),this._sendCommand(Buffer.from(prepended).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(str,callback){if(!str.match(/^235\s+/))return callback(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",str,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,callback(null,!0)}_actionAUTH_LOGIN_PASS(str,callback){if(!/^334[ -]/.test(str))return callback(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",str,"AUTH LOGIN"));this._responseActions.push((str=>{this._actionAUTHComplete(str,callback)})),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(str,isRetry,callback){return callback||"function"!=typeof isRetry||(callback=isRetry,isRetry=!1),"334"===str.substr(0,3)?(this._responseActions.push((str=>{isRetry||"XOAUTH2"!==this._authMethod?this._actionAUTHComplete(str,!0,callback):setImmediate((()=>this._handleXOauth2Token(!0,callback)))})),void this._sendCommand("")):"2"!==str.charAt(0)?(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),callback(this._formatError("Invalid login","EAUTH",str,"AUTH "+this._authMethod))):(this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,void callback(null,!0))}_actionMAIL(str,callback){let message,curRecipient;if(2!==Number(str.charAt(0)))return message=this._usingSmtpUtf8&&/^550 /.test(str)&&/[\x80-\uFFFF]/.test(this._envelope.from)?"Internationalized mailbox name not allowed":"Mail command failed",callback(this._formatError(message,"EENVELOPE",str,"MAIL FROM"));if(!this._envelope.rcptQueue.length)return callback(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));if(this._recipientQueue=[],this._supportedExtensions.includes("PIPELINING"))for(;this._envelope.rcptQueue.length;)curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs());else curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs())}_actionRCPT(str,callback){let message,err,curRecipient=this._recipientQueue.shift();if(2!==Number(str.charAt(0))?(message=this._usingSmtpUtf8&&/^553 /.test(str)&&/[\x80-\uFFFF]/.test(curRecipient)?"Internationalized mailbox name not allowed":"Recipient command failed",this._envelope.rejected.push(curRecipient),err=this._formatError(message,"EENVELOPE",str,"RCPT TO"),err.recipient=curRecipient,this._envelope.rejectedErrors.push(err)):this._envelope.accepted.push(curRecipient),this._envelope.rcptQueue.length||this._recipientQueue.length)this._envelope.rcptQueue.length&&(curRecipient=this._envelope.rcptQueue.shift(),this._recipientQueue.push(curRecipient),this._responseActions.push((str=>{this._actionRCPT(str,callback)})),this._sendCommand("RCPT TO:<"+curRecipient+">"+this._getDsnRcptToArgs()));else{if(!(this._envelope.rejected.length<this._envelope.to.length))return err=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",str,"RCPT TO"),err.rejected=this._envelope.rejected,err.rejectedErrors=this._envelope.rejectedErrors,callback(err);this._responseActions.push((str=>{this._actionDATA(str,callback)})),this._sendCommand("DATA")}}_actionDATA(str,callback){if(!/^[23]/.test(str))return callback(this._formatError("Data command failed","EENVELOPE",str,"DATA"));let response={accepted:this._envelope.accepted,rejected:this._envelope.rejected};this._ehloLines&&this._ehloLines.length&&(response.ehlo=this._ehloLines),this._envelope.rejectedErrors.length&&(response.rejectedErrors=this._envelope.rejectedErrors),callback(null,response)}_actionSMTPStream(str,callback){return 2!==Number(str.charAt(0))?callback(this._formatError("Message failed","EMESSAGE",str,"DATA")):callback(null,str)}_actionLMTPStream(recipient,final,str,callback){let err;if(2!==Number(str.charAt(0))){err=this._formatError("Message failed for recipient "+recipient,"EMESSAGE",str,"DATA"),err.recipient=recipient,this._envelope.rejected.push(recipient),this._envelope.rejectedErrors.push(err);for(let i=0,len=this._envelope.accepted.length;i<len;i++)this._envelope.accepted[i]===recipient&&this._envelope.accepted.splice(i,1)}if(final)return callback(null,str)}_handleXOauth2Token(isRetry,callback){this._auth.oauth2.getToken(isRetry,((err,accessToken)=>{if(err)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),callback(this._formatError(err,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push((str=>{this._actionAUTHComplete(str,isRetry,callback)})),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(accessToken),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))}))}_isDestroyedMessage(command){if(this._destroyed)return"Cannot "+command+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+command+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+command+" - smtp connection socket is already half-closed."}}_getHostname(){let defaultHostname;try{defaultHostname=os.hostname()||""}catch(err){defaultHostname="localhost"}return(!defaultHostname||defaultHostname.indexOf(".")<0)&&(defaultHostname="[127.0.0.1]"),defaultHostname.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)&&(defaultHostname="["+defaultHostname+"]"),defaultHostname}},smtpConnection}function requireXoauth2(){if(hasRequiredXoauth2)return xoauth2;hasRequiredXoauth2=1;const Stream=require$$0__default$2.default.Stream,nmfetch=requireFetch(),crypto=require$$0__default$1.default,shared=requireShared();return xoauth2=class XOAuth2 extends Stream{constructor(options,logger){if(super(),this.options=options||{},options&&options.serviceClient){if(!options.privateKey||!options.user)return void setImmediate((()=>this.emit("error",new Error('Options "privateKey" and "user" are required for service account!'))));let serviceRequestTimeout=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=serviceRequestTimeout||300}if(this.logger=shared.getLogger({logger:logger},{component:this.options.component||"OAuth2"}),this.provisionCallback="function"==typeof this.options.provisionCallback&&this.options.provisionCallback,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let timeout=Math.max(Number(this.options.timeout)||0,0);this.expires=timeout&&Date.now()+1e3*timeout||0}}getToken(renew,callback){if(!renew&&this.accessToken&&(!this.expires||this.expires>Date.now()))return callback(null,this.accessToken);let generateCallback=(...args)=>{args[0]?this.logger.error({err:args[0],tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user):this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user),callback(...args)};this.provisionCallback?this.provisionCallback(this.options.user,!!renew,((err,accessToken,expires)=>{!err&&accessToken&&(this.accessToken=accessToken,this.expires=expires||0),generateCallback(err,accessToken)})):this.generateToken(generateCallback)}updateToken(accessToken,timeout){this.accessToken=accessToken,timeout=Math.max(Number(timeout)||0,0),this.expires=timeout&&Date.now()+1e3*timeout||0,this.emit("token",{user:this.options.user,accessToken:accessToken||"",expires:this.expires})}generateToken(callback){let urlOptions,loggedUrlOptions;if(this.options.serviceClient){let token,iat=Math.floor(Date.now()/1e3),tokenData={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:iat,exp:iat+this.options.serviceRequestTimeout};try{token=this.jwtSignRS256(tokenData)}catch(err){return callback(new Error("Can't generate token. Check your auth options"))}urlOptions={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:token},loggedUrlOptions={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:tokenData}}else{if(!this.options.refreshToken)return callback(new Error("Can't create new access token for user"));urlOptions={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},loggedUrlOptions={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.keys(this.options.customParams).forEach((key=>{urlOptions[key]=this.options.customParams[key],loggedUrlOptions[key]=this.options.customParams[key]})),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(loggedUrlOptions)),this.postRequest(this.options.accessUrl,urlOptions,this.options,((error,body)=>{let data;if(error)return callback(error);try{data=JSON.parse(body.toString())}catch(E){return callback(E)}if(!data||"object"!=typeof data)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(body||"").toString()),callback(new Error("Invalid authentication response"));let logData={};if(Object.keys(data).forEach((key=>{logData[key]="access_token"!==key?data[key]:(data[key]||"").toString().substr(0,6)+"..."})),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(logData)),data.error){let errorMessage=data.error;return data.error_description&&(errorMessage+=": "+data.error_description),data.error_uri&&(errorMessage+=" ("+data.error_uri+")"),callback(new Error(errorMessage))}return data.access_token?(this.updateToken(data.access_token,data.expires_in),callback(null,this.accessToken)):callback(new Error("No access token"))}))}buildXOAuth2Token(accessToken){let authData=["user="+(this.options.user||""),"auth=Bearer "+(accessToken||this.accessToken),"",""];return Buffer.from(authData.join(""),"utf-8").toString("base64")}postRequest(url,payload,params,callback){let returned=!1,chunks=[],chunklen=0,req=nmfetch(url,{method:"post",headers:params.customHeaders,body:payload,allowErrorResponse:!0});req.on("readable",(()=>{let chunk;for(;null!==(chunk=req.read());)chunks.push(chunk),chunklen+=chunk.length})),req.once("error",(err=>{if(!returned)return returned=!0,callback(err)})),req.once("end",(()=>{if(!returned)return returned=!0,callback(null,Buffer.concat(chunks,chunklen))}))}toBase64URL(data){return"string"==typeof data&&(data=Buffer.from(data)),data.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(payload){payload=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(payload)].map((val=>this.toBase64URL(val))).join(".");let signature=crypto.createSign("RSA-SHA256").update(payload).sign(this.options.privateKey);return payload+"."+this.toBase64URL(signature)}},xoauth2}var wellKnown,hasRequiredWellKnown,smtpPool,hasRequiredSmtpPool,smtpTransport,hasRequiredSmtpTransport,sendmailTransport,hasRequiredSendmailTransport,streamTransport,hasRequiredStreamTransport,jsonTransport,hasRequiredJsonTransport,sesTransport,hasRequiredSesTransport,hasRequiredNodemailer,require$$0={126:{host:"smtp.126.com",port:465,secure:!0},163:{host:"smtp.163.com",port:465,secure:!0},"1und1":{host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:{domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AOL:{domains:["aol.com"],host:"smtp.aol.com",port:587},Bluewin:{host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},DebugMail:{host:"debugmail.io",port:25},DynectEmail:{aliases:["Dynect"],host:"smtp.dynect.net",port:25},Ethereal:{aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Forward Email":{aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},"Feishu Mail":{aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},GandiMail:{aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},Godaddy:{host:"smtpout.secureserver.net",port:25},GodaddyAsia:{host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{host:"smtp.europe.secureserver.net",port:25},"hot.ee":{host:"mail.hot.ee"},Hotmail:{aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},Loopia:{host:"mailcluster.loopia.se",port:465},"mail.ee":{host:"smtp.mail.ee"},"Mail.ru":{host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{port:1025,ignoreTLS:!0},Mailgun:{host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{host:"in.mailjet.com",port:587},Mailosaur:{host:"mailosaur.io",port:25},Mailtrap:{host:"live.smtp.mailtrap.io",port:587},Mandrill:{host:"smtp.mandrillapp.com",port:587},Naver:{host:"smtp.naver.com",port:587},One:{host:"send.one.com",port:465,secure:!0},OpenMailBox:{aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{host:"smtp.office365.com",port:587,secure:!1},OhMySMTP:{host:"smtp.ohmysmtp.com",port:587,secure:!1},Postmark:{aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},"qiye.aliyun":{host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},SendCloud:{host:"smtp.sendcloud.net",port:2525},SendGrid:{host:"smtp.sendgrid.net",port:587},SendinBlue:{aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{host:"smtp-pulse.com",port:465,secure:!0},SES:{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},Sparkpost:{aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{host:"smtp.tipimail.com",port:587},Yahoo:{domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zoho:{host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}};function requireWellKnown(){if(hasRequiredWellKnown)return wellKnown;hasRequiredWellKnown=1;const services=require$$0,normalized={};function normalizeKey(key){return key.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function normalizeService(service){let filter=["domains","aliases"],response={};return Object.keys(service).forEach((key=>{filter.indexOf(key)<0&&(response[key]=service[key])})),response}return Object.keys(services).forEach((key=>{let service=services[key];normalized[normalizeKey(key)]=normalizeService(service),[].concat(service.aliases||[]).forEach((alias=>{normalized[normalizeKey(alias)]=normalizeService(service)})),[].concat(service.domains||[]).forEach((domain=>{normalized[normalizeKey(domain)]=normalizeService(service)}))})),wellKnown=function(key){return key=normalizeKey(key.split("@").pop()),normalized[key]||!1}}function requireSmtpPool(){if(hasRequiredSmtpPool)return smtpPool;hasRequiredSmtpPool=1;const EventEmitter=require$$0__default.default,PoolResource=function requirePoolResource(){if(hasRequiredPoolResource)return poolResource;hasRequiredPoolResource=1;const SMTPConnection=requireSmtpConnection(),assign=requireShared().assign,XOAuth2=requireXoauth2(),EventEmitter=require$$0__default.default;return poolResource=class PoolResource extends EventEmitter{constructor(pool){if(super(),this.pool=pool,this.options=pool.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let oauth2=new XOAuth2(this.options.auth,this.logger);oauth2.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||oauth2.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:oauth2,method:"XOAUTH2"},oauth2.on("token",(token=>this.pool.mailer.emit("token",token))),oauth2.on("error",(err=>this.emit("error",err)));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(callback){this.pool.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let returned=!1,options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]}))),this.connection=new SMTPConnection(options),this.connection.once("error",(err=>{if(this.emit("error",err),!returned)return returned=!0,callback(err)})),this.connection.once("end",(()=>{if(this.close(),returned)return;returned=!0;let timer=setTimeout((()=>{if(returned)return;let err=new Error("Unexpected socket close");this.connection&&this.connection._socket&&this.connection._socket.upgrading&&(err.code="ETLS"),callback(err)}),1e3);try{timer.unref()}catch(E){}})),this.connection.connect((()=>{if(!returned)return this.auth&&(this.connection.allowsAuth||options.forceAuth)?void this.connection.login(this.auth,(err=>{if(!returned){if(returned=!0,err)return this.connection.close(),this.emit("error",err),callback(err);this._connected=!0,callback(null,!0)}})):(returned=!0,this._connected=!0,callback(null,!0))}))}))}send(mail,callback){if(!this._connected)return this.connect((err=>err?callback(err):this.send(mail,callback)));let envelope=mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId,cid:this.id},"Sending message %s using #%s to <%s>",messageId,this.id,recipients.join(", ")),mail.data.dsn&&(envelope.dsn=mail.data.dsn),this.connection.send(envelope,mail.message.createReadStream(),((err,info)=>{if(this.messages++,err)return this.connection.close(),this.emit("error",err),callback(err);info.envelope={from:envelope.from,to:envelope.to},info.messageId=messageId,setImmediate((()=>{let err;this.messages>=this.options.maxMessages?(err=new Error("Resource exhausted"),err.code="EMAXLIMIT",this.connection.close(),this.emit("error",err)):this.pool._checkRateLimit((()=>{this.available=!0,this.emit("available")}))})),callback(null,info)}))}close(){this._connected=!1,this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.connection&&this.connection.close(),this.emit("close")}},poolResource}(),SMTPConnection=requireSmtpConnection(),wellKnown=requireWellKnown(),shared=requireShared(),packageData=require$$9;return smtpPool=class SMTPPool extends EventEmitter{constructor(options){let urlData;super(),"string"==typeof(options=options||{})&&(options={url:options});let service=options.service;"function"==typeof options.getSocket&&(this.getSocket=options.getSocket),options.url&&(urlData=shared.parseConnectionUrl(options.url),service=service||urlData.service),this.options=shared.assign(!1,options,urlData,service&&wellKnown(service)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-pool"});let connection=new SMTPConnection(this.options);this.name="SMTP (pool)",this.version=packageData.version+"[client:"+connection.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1e3,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate((()=>{this.idling&&this.emit("idle")}))}getSocket(options,callback){return setImmediate((()=>callback(null,!1)))}send(mail,callback){return!this._closed&&(this._queue.push({mail:mail,requeueAttempts:0,callback:callback}),this.idling&&this._queue.length>=this.options.maxConnections&&(this.idling=!1),setImmediate((()=>this._processMessages())),!0)}close(){let connection,len=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!len&&!this._queue.length)return;for(let i=len-1;i>=0;i--)this._connections[i]&&this._connections[i].available&&(connection=this._connections[i],connection.close(),this.logger.info({tnx:"connection",cid:connection.id,action:"removed"},"Connection #%s removed",connection.id));if(len&&!this._connections.length&&this.logger.debug({tnx:"connection"},"All connections removed"),!this._queue.length)return;let invokeCallbacks=()=>{if(!this._queue.length)return void this.logger.debug({tnx:"connection"},"Pending queue entries cleared");let entry=this._queue.shift();if(entry&&"function"==typeof entry.callback)try{entry.callback(new Error("Connection pool was closed"))}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}setImmediate(invokeCallbacks)};setImmediate(invokeCallbacks)}_processMessages(){let connection,i,len;if(this._closed)return;if(!this._queue.length)return void(this.idling||(this.idling=!0,this.emit("idle")));for(i=0,len=this._connections.length;i<len;i++)if(this._connections[i].available){connection=this._connections[i];break}if(!connection&&this._connections.length<this.options.maxConnections&&(connection=this._createConnection()),!connection)return void(this.idling=!1);!this.idling&&this._queue.length<this.options.maxConnections&&(this.idling=!0,this.emit("idle"));let entry=connection.queueEntry=this._queue.shift();entry.messageId=(connection.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),connection.available=!1,this.logger.debug({tnx:"pool",cid:connection.id,messageId:entry.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",entry.messageId,connection.id,connection.messages+1),this._rateLimit.limit&&(this._rateLimit.counter++,this._rateLimit.checkpoint||(this._rateLimit.checkpoint=Date.now())),connection.send(entry.mail,((err,info)=>{if(entry===connection.queueEntry){try{entry.callback(err,info)}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}}))}_createConnection(){let connection=new PoolResource(this);return connection.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:connection.id,action:"conection"},"Created new pool resource #%s",connection.id),connection.on("available",(()=>{this.logger.debug({tnx:"connection",cid:connection.id,action:"available"},"Connection #%s became available",connection.id),this._closed?this.close():this._processMessages()})),connection.once("error",(err=>{if("EMAXLIMIT"!==err.code?this.logger.error({err:err,tnx:"pool",cid:connection.id},"Pool Error for #%s: %s",connection.id,err.message):this.logger.debug({tnx:"pool",cid:connection.id,action:"maxlimit"},"Max messages limit exchausted for #%s",connection.id),connection.queueEntry){try{connection.queueEntry.callback(err)}catch(E){this.logger.error({err:E,tnx:"callback",cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}this._removeConnection(connection),this._continueProcessing()})),connection.once("close",(()=>{this.logger.info({tnx:"connection",cid:connection.id,action:"closed"},"Connection #%s was closed",connection.id),this._removeConnection(connection),connection.queueEntry?setTimeout((()=>{connection.queueEntry&&(this._shouldRequeuOnConnectionClose(connection.queueEntry)?this._requeueEntryOnConnectionClose(connection):this._failDeliveryOnConnectionClose(connection)),this._continueProcessing()}),50):this._continueProcessing()})),this._connections.push(connection),connection}_shouldRequeuOnConnectionClose(queueEntry){return void 0===this.options.maxRequeues||this.options.maxRequeues<0||queueEntry.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(connection){if(connection.queueEntry&&connection.queueEntry.callback){try{connection.queueEntry.callback(new Error("Reached maximum number of retries after connection was closed"))}catch(E){this.logger.error({err:E,tnx:"callback",messageId:connection.queueEntry.messageId,cid:connection.id},"Callback error for #%s: %s",connection.id,E.message)}connection.queueEntry=!1}}_requeueEntryOnConnectionClose(connection){connection.queueEntry.requeueAttempts=connection.queueEntry.requeueAttempts+1,this.logger.debug({tnx:"pool",cid:connection.id,messageId:connection.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",connection.queueEntry.messageId,connection.id,connection.queueEntry.requeueAttempts),this._queue.unshift(connection.queueEntry),connection.queueEntry=!1}_continueProcessing(){this._closed?this.close():setTimeout((()=>this._processMessages()),100)}_removeConnection(connection){let index=this._connections.indexOf(connection);-1!==index&&this._connections.splice(index,1)}_checkRateLimit(callback){if(!this._rateLimit.limit)return callback();let now=Date.now();return this._rateLimit.counter<this._rateLimit.limit?callback():(this._rateLimit.waiting.push(callback),this._rateLimit.checkpoint<=now-this._rateLimit.delta?this._clearRateLimit():void(this._rateLimit.timeout||(this._rateLimit.timeout=setTimeout((()=>this._clearRateLimit()),this._rateLimit.delta-(now-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=now)))}_clearRateLimit(){for(clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;this._rateLimit.waiting.length;){let cb=this._rateLimit.waiting.shift();setImmediate(cb)}}isIdle(){return this.idling}verify(callback){let promise;callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));let auth=new PoolResource(this).auth;return this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options),returned=!1;connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(!returned)return returned=!0,callback(new Error("Connection closed"))}));let finalize=()=>{if(!returned)return returned=!0,connection.quit(),callback(null,!0)};connection.connect((()=>{if(!returned)if(auth&&(connection.allowsAuth||options.forceAuth))connection.login(auth,(err=>{if(!returned)return err?(returned=!0,connection.close(),callback(err)):void finalize()}));else{if(!auth&&connection.allowsAuth&&options.forceAuth){let err=new Error("Authentication info was not provided");return err.code="NoAuth",returned=!0,connection.close(),callback(err)}finalize()}}))})),promise}},smtpPool}function requireSesTransport(){if(hasRequiredSesTransport)return sesTransport;hasRequiredSesTransport=1;const EventEmitter=require$$0__default.default,packageData=require$$9,shared=requireShared(),LeWindows=requireLeWindows();return sesTransport=class SESTransport extends EventEmitter{constructor(options){super(),options=options||{},this.options=options||{},this.ses=this.options.SES,this.name="SESTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"ses-transport"}),this.maxConnections=Number(this.options.maxConnections)||1/0,this.connections=0,this.sendingRate=Number(this.options.sendingRate)||1/0,this.sendingRateTTL=null,this.rateInterval=1e3,this.rateMessages=[],this.pending=[],this.idling=!0,setImmediate((()=>{this.idling&&this.emit("idle")}))}send(mail,callback){return this.connections>=this.maxConnections?(this.idling=!1,this.pending.push({mail:mail,callback:callback})):this._checkSendingRate()?void this._send(mail,((...args)=>{setImmediate((()=>callback(...args))),this._sent()})):(this.idling=!1,this.pending.push({mail:mail,callback:callback}))}_checkRatedQueue(){if(this.connections>=this.maxConnections||!this._checkSendingRate())return;if(!this.pending.length)return void(this.idling||(this.idling=!0,this.emit("idle")));let next=this.pending.shift();this._send(next.mail,((...args)=>{setImmediate((()=>next.callback(...args))),this._sent()}))}_checkSendingRate(){clearTimeout(this.sendingRateTTL);let now=Date.now(),oldest=!1;for(let i=this.rateMessages.length-1;i>=0;i--)this.rateMessages[i].ts>=now-this.rateInterval&&(!oldest||this.rateMessages[i].ts<oldest)&&(oldest=this.rateMessages[i].ts),this.rateMessages[i].ts<now-this.rateInterval&&!this.rateMessages[i].pending&&this.rateMessages.splice(i,1);if(this.rateMessages.length<this.sendingRate)return!0;let delay=Math.max(oldest+1001,now+20);this.sendingRateTTL=setTimeout((()=>this._checkRatedQueue()),now-delay);try{this.sendingRateTTL.unref()}catch(E){}return!1}_sent(){this.connections--,this._checkRatedQueue()}isIdle(){return this.idling}_send(mail,callback){let statObject={ts:Date.now(),pending:!0};this.connections++,this.rateMessages.push(statObject);let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", "));setImmediate((()=>(next=>{mail.data._dkim||(mail.data._dkim={}),mail.data._dkim.skipFields&&"string"==typeof mail.data._dkim.skipFields?mail.data._dkim.skipFields+=":date:message-id":mail.data._dkim.skipFields="date:message-id";let sourceStream=mail.message.createReadStream(),stream=sourceStream.pipe(new LeWindows),chunks=[],chunklen=0;stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),sourceStream.once("error",(err=>stream.emit("error",err))),stream.once("error",(err=>{next(err)})),stream.once("end",(()=>next(null,Buffer.concat(chunks,chunklen))))})(((err,raw)=>{if(err)return this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message),statObject.pending=!1,callback(err);let sesMessage={RawMessage:{Data:raw},Source:envelope.from,Destinations:envelope.to};Object.keys(mail.data.ses||{}).forEach((key=>{sesMessage[key]=mail.data.ses[key]}));let ses=(this.ses.aws?this.ses.ses:this.ses)||{},aws=this.ses.aws||{};var cb;cb=(err,region)=>{let sendPromise;!err&&region||(region="us-east-1"),sendPromise="function"==typeof ses.send&&aws.SendRawEmailCommand?ses.send(new aws.SendRawEmailCommand(sesMessage)):ses.sendRawEmail(sesMessage).promise(),sendPromise.then((data=>{"us-east-1"===region&&(region="email"),statObject.pending=!1,callback(null,{envelope:{from:envelope.from,to:envelope.to},messageId:"<"+data.MessageId+(/@/.test(data.MessageId)?"":"@"+region+".amazonses.com")+">",response:data.MessageId,raw:raw})})).catch((err=>{this.logger.error({err:err,tnx:"send"},"Send error for %s: %s",messageId,err.message),statObject.pending=!1,callback(err)}))},ses.config&&"function"==typeof ses.config.region?ses.config.region().then((region=>cb(null,region))).catch((err=>cb(err))):cb(null,ses.config&&ses.config.region||"us-east-1")}))))}verify(callback){let promise,ses=(this.ses.aws?this.ses.ses:this.ses)||{},aws=this.ses.aws||{};const sesMessage={RawMessage:{Data:"From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid"},Source:"invalid@invalid",Destinations:["invalid@invalid"]};callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)})));const cb=err=>err&&"InvalidParameterValue"!==(err.code||err.Code)?callback(err):callback(null,!0);return"function"==typeof ses.send&&aws.SendRawEmailCommand?(sesMessage.RawMessage.Data=Buffer.from(sesMessage.RawMessage.Data),ses.send(new aws.SendRawEmailCommand(sesMessage),cb)):ses.sendRawEmail(sesMessage,cb),promise}},sesTransport}var nodemailerExports=function requireNodemailer(){if(hasRequiredNodemailer)return nodemailer$1;hasRequiredNodemailer=1;const Mailer=requireMailer(),shared=requireShared(),SMTPPool=requireSmtpPool(),SMTPTransport=function requireSmtpTransport(){if(hasRequiredSmtpTransport)return smtpTransport;hasRequiredSmtpTransport=1;const EventEmitter=require$$0__default.default,SMTPConnection=requireSmtpConnection(),wellKnown=requireWellKnown(),shared=requireShared(),XOAuth2=requireXoauth2(),packageData=require$$9;return smtpTransport=class SMTPTransport extends EventEmitter{constructor(options){let urlData;super(),"string"==typeof(options=options||{})&&(options={url:options});let service=options.service;"function"==typeof options.getSocket&&(this.getSocket=options.getSocket),options.url&&(urlData=shared.parseConnectionUrl(options.url),service=service||urlData.service),this.options=shared.assign(!1,options,urlData,service&&wellKnown(service)),this.logger=shared.getLogger(this.options,{component:this.options.component||"smtp-transport"});let connection=new SMTPConnection(this.options);this.name="SMTP",this.version=packageData.version+"[client:"+connection.version+"]",this.options.auth&&(this.auth=this.getAuth({}))}getSocket(options,callback){return setImmediate((()=>callback(null,!1)))}getAuth(authOpts){if(!authOpts)return this.auth;let hasAuth=!1,authData={};if(this.options.auth&&"object"==typeof this.options.auth&&Object.keys(this.options.auth).forEach((key=>{hasAuth=!0,authData[key]=this.options.auth[key]})),authOpts&&"object"==typeof authOpts&&Object.keys(authOpts).forEach((key=>{hasAuth=!0,authData[key]=authOpts[key]})),!hasAuth)return!1;if("OAUTH2"===(authData.type||"").toString().toUpperCase()){if(!authData.service&&!authData.user)return!1;let oauth2=new XOAuth2(authData,this.logger);return oauth2.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||oauth2.provisionCallback,oauth2.on("token",(token=>this.mailer.emit("token",token))),oauth2.on("error",(err=>this.emit("error",err))),{type:"OAUTH2",user:authData.user,oauth2:oauth2,method:"XOAUTH2"}}return{type:(authData.type||"").toString().toUpperCase()||"LOGIN",user:authData.user,credentials:{user:authData.user||"",pass:authData.pass,options:authData.options},method:(authData.method||"").trim().toUpperCase()||this.options.authMethod||!1}}send(mail,callback){this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let returned=!1,options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options);connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(returned)return;let timer=setTimeout((()=>{if(returned)return;returned=!0;let err=new Error("Unexpected socket close");connection&&connection._socket&&connection._socket.upgrading&&(err.code="ETLS"),callback(err)}),1e3);try{timer.unref()}catch(E){}}));let sendMessage=()=>{let envelope=mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),mail.data.dsn&&(envelope.dsn=mail.data.dsn),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", ")),connection.send(envelope,mail.message.createReadStream(),((err,info)=>{if(returned=!0,connection.close(),err)return this.logger.error({err:err,tnx:"send"},"Send error for %s: %s",messageId,err.message),callback(err);info.envelope={from:envelope.from,to:envelope.to},info.messageId=messageId;try{return callback(null,info)}catch(E){this.logger.error({err:E,tnx:"callback"},"Callback error for %s: %s",messageId,E.message)}}))};connection.connect((()=>{if(returned)return;let auth=this.getAuth(mail.data.auth);auth&&(connection.allowsAuth||options.forceAuth)?connection.login(auth,(err=>{if(auth&&auth!==this.auth&&auth.oauth2&&auth.oauth2.removeAllListeners(),!returned)return err?(returned=!0,connection.close(),callback(err)):void sendMessage()})):sendMessage()}))}))}verify(callback){let promise;return callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),this.getSocket(this.options,((err,socketOptions)=>{if(err)return callback(err);let options=this.options;socketOptions&&socketOptions.connection&&(this.logger.info({tnx:"proxy",remoteAddress:socketOptions.connection.remoteAddress,remotePort:socketOptions.connection.remotePort,destHost:options.host||"",destPort:options.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",socketOptions.connection.remoteAddress,socketOptions.connection.remotePort,options.host||"",options.port||""),options=shared.assign(!1,options),Object.keys(socketOptions).forEach((key=>{options[key]=socketOptions[key]})));let connection=new SMTPConnection(options),returned=!1;connection.once("error",(err=>{if(!returned)return returned=!0,connection.close(),callback(err)})),connection.once("end",(()=>{if(!returned)return returned=!0,callback(new Error("Connection closed"))}));let finalize=()=>{if(!returned)return returned=!0,connection.quit(),callback(null,!0)};connection.connect((()=>{if(returned)return;let authData=this.getAuth({});if(authData&&(connection.allowsAuth||options.forceAuth))connection.login(authData,(err=>{if(!returned)return err?(returned=!0,connection.close(),callback(err)):void finalize()}));else{if(!authData&&connection.allowsAuth&&options.forceAuth){let err=new Error("Authentication info was not provided");return err.code="NoAuth",returned=!0,connection.close(),callback(err)}finalize()}}))})),promise}close(){this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.emit("close")}},smtpTransport}(),SendmailTransport=function requireSendmailTransport(){if(hasRequiredSendmailTransport)return sendmailTransport;hasRequiredSendmailTransport=1;const spawn=require$$0__default$6.default.spawn,packageData=require$$9,shared=requireShared();return sendmailTransport=class SendmailTransport{constructor(options){options=options||{},this._spawn=spawn,this.options=options||{},this.name="Sendmail",this.version=packageData.version,this.path="sendmail",this.args=!1,this.winbreak=!1,this.logger=shared.getLogger(this.options,{component:this.options.component||"sendmail"}),options&&("string"==typeof options?this.path=options:"object"==typeof options&&(options.path&&(this.path=options.path),Array.isArray(options.args)&&(this.args=options.args),this.winbreak=["win","windows","dos","\r\n"].includes((options.newline||"").toString().toLowerCase())))}send(mail,done){mail.message.keepBcc=!0;let args,sendmail,returned,envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId();if([].concat(envelope.from||[]).concat(envelope.to||[]).some((addr=>/^-/.test(addr))))return done(new Error("Can not send mail. Invalid envelope addresses."));args=this.args?["-i"].concat(this.args).concat(envelope.to):["-i"].concat(envelope.from?["-f",envelope.from]:[]).concat(envelope.to);let callback=err=>{if(!returned)return returned=!0,"function"==typeof done?err?done(err):done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,response:"Messages queued for delivery"}):void 0};try{sendmail=this._spawn(this.path,args)}catch(E){return this.logger.error({err:E,tnx:"spawn",messageId:messageId},"Error occurred while spawning sendmail. %s",E.message),callback(E)}if(!sendmail)return callback(new Error("sendmail was not found"));{sendmail.on("error",(err=>{this.logger.error({err:err,tnx:"spawn",messageId:messageId},"Error occurred when sending message %s. %s",messageId,err.message),callback(err)})),sendmail.once("exit",(code=>{if(!code)return callback();let err;err=127===code?new Error("Sendmail command not found, process exited with code "+code):new Error("Sendmail exited with code "+code),this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error sending message %s to sendmail. %s",messageId,err.message),callback(err)})),sendmail.once("close",callback),sendmail.stdin.on("error",(err=>{this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error occurred when piping message %s to sendmail. %s",messageId,err.message),callback(err)}));let recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s>",messageId,recipients.join(", "));let sourceStream=mail.message.createReadStream();sourceStream.once("error",(err=>{this.logger.error({err:err,tnx:"stdin",messageId:messageId},"Error occurred when generating message %s. %s",messageId,err.message),sendmail.kill("SIGINT"),callback(err)})),sourceStream.pipe(sendmail.stdin)}}},sendmailTransport}(),StreamTransport=function requireStreamTransport(){if(hasRequiredStreamTransport)return streamTransport;hasRequiredStreamTransport=1;const packageData=require$$9,shared=requireShared();return streamTransport=class StreamTransport{constructor(options){options=options||{},this.options=options||{},this.name="StreamTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos","\r\n"].includes((options.newline||"").toString().toLowerCase())}send(mail,done){mail.message.keepBcc=!0;let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Sending message %s to <%s> using %s line breaks",messageId,recipients.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate((()=>{let stream;try{stream=mail.message.createReadStream()}catch(E){return this.logger.error({err:E,tnx:"send",messageId:messageId},"Creating send stream failed for %s. %s",messageId,E.message),done(E)}if(!this.options.buffer)return stream.once("error",(err=>{this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message)})),done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,message:stream});let chunks=[],chunklen=0;stream.on("readable",(()=>{let chunk;for(;null!==(chunk=stream.read());)chunks.push(chunk),chunklen+=chunk.length})),stream.once("error",(err=>(this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed creating message for %s. %s",messageId,err.message),done(err)))),stream.on("end",(()=>done(null,{envelope:mail.data.envelope||mail.message.getEnvelope(),messageId:messageId,message:Buffer.concat(chunks,chunklen)})))}))}},streamTransport}(),JSONTransport=function requireJsonTransport(){if(hasRequiredJsonTransport)return jsonTransport;hasRequiredJsonTransport=1;const packageData=require$$9,shared=requireShared();return jsonTransport=class JSONTransport{constructor(options){options=options||{},this.options=options||{},this.name="JSONTransport",this.version=packageData.version,this.logger=shared.getLogger(this.options,{component:this.options.component||"json-transport"})}send(mail,done){mail.message.keepBcc=!0;let envelope=mail.data.envelope||mail.message.getEnvelope(),messageId=mail.message.messageId(),recipients=[].concat(envelope.to||[]);recipients.length>3&&recipients.push("...and "+recipients.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:messageId},"Composing JSON structure of %s to <%s>",messageId,recipients.join(", ")),setImmediate((()=>{mail.normalize(((err,data)=>err?(this.logger.error({err:err,tnx:"send",messageId:messageId},"Failed building JSON structure for %s. %s",messageId,err.message),done(err)):(delete data.envelope,delete data.normalizedHeaders,done(null,{envelope:envelope,messageId:messageId,message:this.options.skipEncoding?data:JSON.stringify(data)}))))}))}},jsonTransport}(),SESTransport=requireSesTransport(),nmfetch=requireFetch(),packageData=require$$9,ETHEREAL_API=(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),ETHEREAL_WEB=(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),ETHEREAL_API_KEY=(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,"")||null,ETHEREAL_CACHE=["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase());let testAccount=!1;return nodemailer$1.createTransport=function(transporter,defaults){let urlConfig,options,mailer;return("object"==typeof transporter&&"function"!=typeof transporter.send||"string"==typeof transporter&&/^(smtps?|direct):/i.test(transporter))&&(options=(urlConfig="string"==typeof transporter?transporter:transporter.url)?shared.parseConnectionUrl(urlConfig):transporter,transporter=options.pool?new SMTPPool(options):options.sendmail?new SendmailTransport(options):options.streamTransport?new StreamTransport(options):options.jsonTransport?new JSONTransport(options):options.SES?new SESTransport(options):new SMTPTransport(options)),mailer=new Mailer(transporter,options,defaults),mailer},nodemailer$1.createTestAccount=function(apiUrl,callback){let promise;if(callback||"function"!=typeof apiUrl||(callback=apiUrl,apiUrl=!1),callback||(promise=new Promise(((resolve,reject)=>{callback=shared.callbackPromise(resolve,reject)}))),ETHEREAL_CACHE&&testAccount)return setImmediate((()=>callback(null,testAccount))),promise;apiUrl=apiUrl||ETHEREAL_API;let chunks=[],chunklen=0,requestHeaders={},requestBody={requestor:packageData.name,version:packageData.version};ETHEREAL_API_KEY&&(requestHeaders.Authorization="Bearer "+ETHEREAL_API_KEY);let req=nmfetch(apiUrl+"/user",{contentType:"application/json",method:"POST",headers:requestHeaders,body:Buffer.from(JSON.stringify(requestBody))});return req.on("readable",(()=>{let chunk;for(;null!==(chunk=req.read());)chunks.push(chunk),chunklen+=chunk.length})),req.once("error",(err=>callback(err))),req.once("end",(()=>{let data,err,res=Buffer.concat(chunks,chunklen);try{data=JSON.parse(res.toString())}catch(E){err=E}return err?callback(err):"success"!==data.status||data.error?callback(new Error(data.error||"Request failed")):(delete data.status,testAccount=data,void callback(null,testAccount))})),promise},nodemailer$1.getTestMessageUrl=function(info){if(!info||!info.response)return!1;let infoProps=new Map;return info.response.replace(/\[([^\]]+)\]$/,((m,props)=>{props.replace(/\b([A-Z0-9]+)=([^\s]+)/g,((m,key,value)=>{infoProps.set(key,value)}))})),!(!infoProps.has("STATUS")||!infoProps.has("MSGID"))&&(testAccount.web||ETHEREAL_WEB)+"/message/"+infoProps.get("MSGID")},nodemailer$1}(),nodemailer=getDefaultExportFromCjs(nodemailerExports);class MailController{constructor(environment){this.environment=environment}createTransporter(email){const{host:host,port:port,secure:secure,auth:{user:user,pass:pass}}=email;return nodemailer.createTransport({host:host,port:port,secure:secure,auth:{user:user,pass:pass}})}mountMail(email,mailParams){const{emailParams:{from:from,to:to}}=email,{message:message,subject:subject,attachments:attachments}=mailParams,attachmentsWithVerifiedFileName=attachments?.map((attachment=>(attachment.filename||(attachment.filename=!1),attachment)));return{from:from,to:to,subject:subject,html:message,attachments:attachmentsWithVerifiedFileName}}sendEmail(mailParams){try{const{email:email}=this.environment.getConfig();if(!email)throw new Error('Email não configurado. Para utilizar o envio de e-mail certifique-se de passar as configurações corretas para o método "NFE_LoadEnvironment".');const transporter=this.createTransporter(email),mailOptions=this.mountMail(email,mailParams);transporter.sendMail(mailOptions,((error,info)=>{if(error)throw console.log(error),new Error(error)}))}catch(error){throw new Error(`Erro ao enviar e-mail: ${error.message}`)}}}class NFERetornoAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFERetornoAutorizacao",axios)}gerarXml(data){try{const{nfe:{ambiente:ambiente}}=this.environment.getConfig(),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe",versao:"4.00"},tpAmb:ambiente,nRec:data};return this.xmlBuilder.gerarXml(xmlObject,"consReciNFe")}catch(error){throw new Error(error.message)}}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo),action:action}}catch(error){throw new Error(error.message)}}async getRetornoRecibo(nRec,xmlNFe){try{const xmlConsulta=this.gerarXml(nRec),{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const{protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno.data);if(!protNFe)throw new Error("Não foi possível encontrar a tag 'protNFe'. Talvez a NFe ainda não tenha sido processada.");return this.getXmlRetornoAutorizacao(protNFe,xmlNFe)}catch(error){throw new Error(error.message)}}getXmlRetornoAutorizacao(protNFe,xmlNFe){try{const XMLs=[];for(let i=0;i<protNFe.length;i++){const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},_:"[XML]"};let xml=this.xmlBuilder.gerarXml(baseXML,"nfeProc");const formatedProtNFe=protNFe,xmlCompleto=xmlNFe.find((item=>-1!==item.indexOf(formatedProtNFe[i].infProt[0].chNFe[0])));if(xmlCompleto){const protTag=this.xmlBuilder.gerarXml(protNFe[i],"protNFe"),xmlFinal=[xmlCompleto];xmlFinal.push(protTag),xml=xml.replace("[XML]",xmlFinal.join("")),xml=`<?xml version="1.0" encoding="UTF-8"?>${xml}`,XMLs.push(xml)}}return{success:!0,message:"xMotivo",data:XMLs}}catch(error){throw new Error(error.message)}}async getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:xmlNFe}){try{if(1===tipoEmissao&&protNFe)return this.getXmlRetornoAutorizacao(protNFe,xmlNFe);if(0===tipoEmissao&&nRec)return this.getRetornoRecibo(nRec,xmlNFe);throw new Error("Não foi possível buscar o retorno da autorização.")}catch(error){throw new Error(error.message)}}}class NFEAutorizacaoHandler{constructor(){}validarCpfCnpj(cpfCnpj){const isCpf=11===cpfCnpj.length,isCnpj=14===cpfCnpj.length;if(!isCpf&&!isCnpj)return{documentoValido:!1,tipoDoDocumento:"Desconhecido"};const cleanCpfCnpj=cpfCnpj.replace(/\D/g,"");return isCpf?"00000000000"===cleanCpfCnpj?{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCpf(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CPF"}:{documentoValido:!1,tipoDoDocumento:"CPF"}:this.documentoValidoateCnpj(cleanCpfCnpj)?{documentoValido:!0,tipoDoDocumento:"CNPJ"}:{documentoValido:!1,tipoDoDocumento:"CNPJ"}}documentoValidoateCpf(cpf){let remainder,sum=0;for(let i=1;i<=9;i++)sum+=parseInt(cpf.substring(i-1,i))*(11-i);if(remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder!==parseInt(cpf.substring(9,10)))return!1;sum=0;for(let i=1;i<=10;i++)sum+=parseInt(cpf.substring(i-1,i))*(12-i);return remainder=10*sum%11,10!==remainder&&11!==remainder||(remainder=0),remainder===parseInt(cpf.substring(10,11))}documentoValidoateCnpj(cnpj){let size=cnpj.length-2,numbers=cnpj.substring(0,size);const digits=cnpj.substring(size);let sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);let result=sum%11<2?0:11-sum%11;if(result!=parseInt(digits.charAt(0)))return!1;size+=1,numbers=cnpj.substring(0,size),sum=0,pos=size-7;for(let i=size;i>=1;i--)sum+=parseInt(numbers.charAt(size-i))*pos--,pos<2&&(pos=9);return result=sum%11<2?0:11-sum%11,result==parseInt(digits.charAt(1))}}var hasRequiredCrypt,charenc_1,hasRequiredCharenc,hasRequiredSha1,sha1$1={exports:{}},crypt={exports:{}};function requireCrypt(){return hasRequiredCrypt||(hasRequiredCrypt=1,base64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",crypt$1={rotl:function(n,b){return n<<b|n>>>32-b},rotr:function(n,b){return n<<32-b|n>>>b},endian:function(n){if(n.constructor==Number)return 16711935&crypt$1.rotl(n,8)|4278255360&crypt$1.rotl(n,24);for(var i=0;i<n.length;i++)n[i]=crypt$1.endian(n[i]);return n},randomBytes:function(n){for(var bytes=[];n>0;n--)bytes.push(Math.floor(256*Math.random()));return bytes},bytesToWords:function(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes:function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},bytesToHex:function(bytes){for(var hex=[],i=0;i<bytes.length;i++)hex.push((bytes[i]>>>4).toString(16)),hex.push((15&bytes[i]).toString(16));return hex.join("")},hexToBytes:function(hex){for(var bytes=[],c=0;c<hex.length;c+=2)bytes.push(parseInt(hex.substr(c,2),16));return bytes},bytesToBase64:function(bytes){for(var base64=[],i=0;i<bytes.length;i+=3)for(var triplet=bytes[i]<<16|bytes[i+1]<<8|bytes[i+2],j=0;j<4;j++)8*i+6*j<=8*bytes.length?base64.push(base64map.charAt(triplet>>>6*(3-j)&63)):base64.push("=");return base64.join("")},base64ToBytes:function(base64){base64=base64.replace(/[^A-Z0-9+\/]/gi,"");for(var bytes=[],i=0,imod4=0;i<base64.length;imod4=++i%4)0!=imod4&&bytes.push((base64map.indexOf(base64.charAt(i-1))&Math.pow(2,-2*imod4+8)-1)<<2*imod4|base64map.indexOf(base64.charAt(i))>>>6-2*imod4);return bytes}},crypt.exports=crypt$1),crypt.exports;var base64map,crypt$1}function requireCharenc(){if(hasRequiredCharenc)return charenc_1;hasRequiredCharenc=1;var charenc={utf8:{stringToBytes:function(str){return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)))},bytesToString:function(bytes){return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)))}},bin:{stringToBytes:function(str){for(var bytes=[],i=0;i<str.length;i++)bytes.push(255&str.charCodeAt(i));return bytes},bytesToString:function(bytes){for(var str=[],i=0;i<bytes.length;i++)str.push(String.fromCharCode(bytes[i]));return str.join("")}}};return charenc_1=charenc}var sha1Exports=function requireSha1(){return hasRequiredSha1||(hasRequiredSha1=1,function(){var crypt=requireCrypt(),utf8=requireCharenc().utf8,bin=requireCharenc().bin,api=function(message,options){var digestbytes=crypt.wordsToBytes(function(message){message.constructor==String?message=utf8.stringToBytes(message):"undefined"!=typeof Buffer&&"function"==typeof Buffer.isBuffer&&Buffer.isBuffer(message)?message=Array.prototype.slice.call(message,0):Array.isArray(message)||(message=message.toString());var m=crypt.bytesToWords(message),l=8*message.length,w=[],H0=1732584193,H1=-271733879,H2=-1732584194,H3=271733878,H4=-1009589776;m[l>>5]|=128<<24-l%32,m[15+(l+64>>>9<<4)]=l;for(var i=0;i<m.length;i+=16){for(var a=H0,b=H1,c=H2,d=H3,e=H4,j=0;j<80;j++){if(j<16)w[j]=m[i+j];else{var n=w[j-3]^w[j-8]^w[j-14]^w[j-16];w[j]=n<<1|n>>>31}var t=(H0<<5|H0>>>27)+H4+(w[j]>>>0)+(j<20?1518500249+(H1&H2|~H1&H3):j<40?1859775393+(H1^H2^H3):j<60?(H1&H2|H1&H3|H2&H3)-1894007588:(H1^H2^H3)-899497514);H4=H3,H3=H2,H2=H1<<30|H1>>>2,H1=H0,H0=t}H0+=a,H1+=b,H2+=c,H3+=d,H4+=e}return[H0,H1,H2,H3,H4]}(message));return options&&options.asBytes?digestbytes:options&&options.asString?bin.bytesToString(digestbytes):crypt.bytesToHex(digestbytes)};api._blocksize=16,api._digestsize=20,sha1$1.exports=api}()),sha1$1.exports}(),sha1=getDefaultExportFromCjs(sha1Exports);function generateQRCodeURLOnline(chaveAcesso,versaoQRCode,tipoAmbiente,identificadorCSC,csc,utility){const urlQRCodeNFCe=utility.getUrlNFCe("URL-QRCode",!1,""),baseString=`${chaveAcesso=chaveAcesso.replace("NFe","")}|${versaoQRCode}|${tipoAmbiente}|${identificadorCSC}`;return`${urlQRCodeNFCe}?p=${baseString}|${function generateSHA1Hash(input){return require$$0$4.createHash("sha1").update(input).digest("hex")}(`${baseString}${csc}`)}`}function generateQRCodeURLOffline(chaveAcesso,versaoQRCode,tipoAmbiente,diaDataEmissao,valorTotalNfce,digVal,identificadorCSC,csc,utility){const urlQRCodeNFCe=utility.getUrlNFCe("URL-QRCode",!1,"");chaveAcesso=chaveAcesso.replace("NFe","");const digestValueHex=function calcularDigestValueHex(digVal){return Buffer.from(digVal).toString("hex")}(digVal),baseString=`${chaveAcesso}|${versaoQRCode}|${tipoAmbiente}|${diaDataEmissao}|${valorTotalNfce}|${digestValueHex}|${identificadorCSC}`;return`${urlQRCodeNFCe}?p=${baseString}|${sha1(`${baseString}${csc}`).toUpperCase()}`}class NFCEAutorizacao extends BaseNFE{constructor(environment,utility,xmlBuilder,axios){super(environment,utility,xmlBuilder,"NFEAutorizacao",axios),this.xmlNFe=[]}gerarXml(data){return this.gerarXmlNFCEAutorizacao(data)}salvaArquivos(xmlConsulta,responseInJson,xmlRetorno,options){const config=this.environment.getConfig();let dateAndTimeInFileName=config.dfe.incluirTimestampNoNomeDosArquivos;const createFileName=(prefix,includeMethodName)=>{const dtaTime=dateAndTimeInFileName?`-${format(new Date,"dd-MM-yyyy-HHmm")}`:"";return`${includeMethodName?`${this.metodo}`:""}${prefix?includeMethodName?`-${prefix}`:`${prefix}`:""}${responseInJson.chNFe?`-${responseInJson.chNFe}`:""}${dtaTime}`},salvarArquivo=(data,prefix,path,fileType,includeMethodName)=>{const fileName=createFileName(prefix,includeMethodName),method="xml"===fileType?"salvaXML":"salvaJSON";this.utility[method]({data:data,fileName:fileName,metodo:this.metodo,path:path})};let xmlAutorizacaoInJson={},xMotivoPorXml=[],xmlsInJson=[];if(options){const{xmlAutorizacao:xmlAutorizacao}=options,json=new Json;for(let i=0;i<xmlAutorizacao.length;i++){xmlAutorizacaoInJson=json.convertXmlToJson(xmlAutorizacao[i],"NFCEAutorizacaoFinal"),xmlsInJson.push(xmlAutorizacaoInJson);const chNFe=xmlAutorizacaoInJson.protNFe.infProt.chNFe,xMotivo=xmlAutorizacaoInJson.protNFe.infProt.xMotivo,cStat=xmlAutorizacaoInJson.protNFe.infProt.cStat;xMotivoPorXml.push({chNFe:chNFe,xMotivo:xMotivo,cStat:cStat}),config.dfe.armazenarXMLAutorizacao&&(salvarArquivo(xmlAutorizacao[i],chNFe,config.dfe.pathXMLAutorizacao,"xml",!1),salvarArquivo(xmlAutorizacaoInJson,chNFe,config.dfe.pathXMLAutorizacao,"json",!1))}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}return{success:!0,xMotivo:xMotivoPorXml,response:xmlsInJson}}async trataRetorno(xmlRetorno,indSinc,responseInJson){try{const{nRec:nRec,protNFe:protNFe}=this.utility.getProtNFe(xmlRetorno);let tipoEmissao=0;1===indSinc&&protNFe&&(tipoEmissao=1);const nfeRetornoAut=new NFERetornoAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios);return await nfeRetornoAut.getXmlRetorno({tipoEmissao:tipoEmissao,nRec:nRec,protNFe:protNFe,xmlNFe:this.xmlNFe})}catch(error){throw new Error(error.message)}}anoMesEmissao(dhEmi){const dataAtual=new Date(dhEmi);return dataAtual.getFullYear().toString().slice(-2)+(dataAtual.getMonth()+1).toString().padStart(2,"0")}diaEmissao(dhEmi){return new Date(dhEmi).getDate().toString().padStart(2,"0")}calcularModulo11(sequencia){const pesos=[4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2];let somatoria=0;for(let i=0;i<sequencia.length;i++)somatoria+=parseInt(sequencia.charAt(i))*pesos[i];const restoDivisao=somatoria%11;return 0===restoDivisao||1===restoDivisao?0:11-restoDivisao}calcularDigitoVerificador(data){const{infNFe:{ide:{cUF:cUF,mod:mod,serie:serie,nNF:nNF,tpEmis:tpEmis,cNF:cNF,dhEmi:dhEmi},emit:{CNPJCPF:CNPJCPF}}}=data,sequencia=`${cUF}${this.anoMesEmissao(dhEmi)}${CNPJCPF}${mod}${String(serie).padStart(3,"0")}${String(nNF).padStart(9,"0")}${tpEmis}${cNF}`,dv=this.calcularModulo11(sequencia),chaveAcesso=`NFe${sequencia}`+dv;return this.chaveNfe=`${sequencia}${dv}`,{chaveAcesso:chaveAcesso,dv:dv}}validaDocumento(doc,campo){const nfeAutorizacaoHandler=new NFEAutorizacaoHandler,{documentoValido:documentoValido,tipoDoDocumento:tipoDoDocumento}=nfeAutorizacaoHandler.validarCpfCnpj(doc);if(!documentoValido||"Desconhecido"===tipoDoDocumento){throw new Error("Desconhecido"===tipoDoDocumento?`Documento do ${campo} ausente ou inválido`:`${tipoDoDocumento} do ${campo} é inválido`)}return tipoDoDocumento}extrairDigestValue(xmlAssinado){const match=xmlAssinado.match(/<DigestValue>([^<]+)<\/DigestValue>/);if(match&&match[1])return match[1];throw new Error("DigestValue não encontrado no XML assinado.")}gerarXmlNFCEAutorizacao(data){const createXML=NFe=>{if(NFe?.infNFe?.det instanceof Array){const formatedItens=NFe.infNFe.det.map(((det,index)=>{if(det.imposto.ICMS.dadosICMS){const icms=mountICMS(det.imposto.ICMS.dadosICMS);det.imposto.ICMS=icms}if(det.imposto.PIS.dadosPIS){const pis=mountPIS(det.imposto.PIS.dadosPIS);det.imposto.PIS=pis}if(det.imposto.COFINS.dadosCOFINS){const cofins=mountCOFINS(det.imposto.COFINS.dadosCOFINS);det.imposto.COFINS=cofins}return{$:{nItem:index+1},...det}}));NFe.infNFe.det=formatedItens}const{chaveAcesso:chaveAcesso,dv:dv}=this.calcularDigitoVerificador(NFe);if(NFe.infNFe.ide.cDV=dv,NFe.infNFe.ide.verProc=NFe.infNFe.ide.verProc||"1.0.0.0",NFe.infNFe.emit=Object.assign({[this.validaDocumento(String(NFe.infNFe.emit.CNPJCPF),"emitente")]:NFe.infNFe.emit.CNPJCPF},NFe.infNFe.emit),delete NFe.infNFe.emit.CNPJCPF,NFe.infNFe.dest&&(NFe.infNFe.dest=Object.assign({[this.validaDocumento(String(NFe.infNFe.dest?.CNPJCPF||""),"destinatário")]:NFe.infNFe.dest?.CNPJCPF||""},NFe.infNFe.dest),delete NFe.infNFe.dest.CNPJCPF),NFe.infNFe.transp.transporta&&(NFe.infNFe.transp.transporta=Object.assign({[this.validaDocumento(String(NFe.infNFe.transp.transporta?.CNPJCPF),"transportador")]:NFe.infNFe.transp.transporta?.CNPJCPF},NFe.infNFe.transp.transporta),delete NFe.infNFe.transp.transporta?.CNPJCPF),NFe.infNFe?.NFref instanceof Array){const NFrefArray=NFe.infNFe.NFref;NFrefArray&&NFrefArray.length>0&&(NFe.infNFe.NFref=NFrefArray.map((NFref=>(NFref.refNFP&&(NFref.refNFP=Object.assign({[this.validaDocumento(String(NFref.refNFP.CNPJCPF),"produtor rural")]:NFref.refNFP.CNPJCPF},NFref.refNFP),delete NFref.refNFP.CNPJCPF),NFref))))}else NFe.infNFe.NFref&&NFe.infNFe.NFref.refNFP&&(NFe.infNFe.NFref.refNFP=Object.assign({[this.validaDocumento(String(NFe.infNFe.NFref.refNFP.CNPJCPF),"produtor rural")]:NFe.infNFe.NFref.refNFP.CNPJCPF},NFe.infNFe.NFref.refNFP));NFe.infNFe.dest&&2===NFe.infNFe.ide.tpAmb&&(NFe.infNFe.dest.xNome="NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");const{nfe:{idCSC:idCSC,tokenCSC:tokenCSC}}=this.environment.getConfig();let qrCode="";[4,9].includes(NFe.infNFe.ide.tpEmis)||(qrCode=generateQRCodeURLOnline(chaveAcesso,"2",NFe.infNFe.ide.tpAmb,Number(idCSC),String(tokenCSC),this.utility));const urlConsultaNFCe=this.utility.getUrlNFCe("URL-ConsultaNFCe",!1,""),xmlObject={$:{xmlns:"http://www.portalfiscal.inf.br/nfe"},infNFe:{$:{versao:"4.00",Id:chaveAcesso},...(NFe={...NFe,infNFeSupl:{qrCode:qrCode,urlChave:urlConsultaNFCe}}).infNFe},infNFeSupl:{...NFe.infNFeSupl}},eventoXML=this.xmlBuilder.gerarXml(xmlObject,"NFe");let xmlAssinado=this.xmlBuilder.assinarXML(eventoXML,"infNFe");if([4,9].includes(NFe.infNFe.ide.tpEmis)){const digestValue=this.extrairDigestValue(xmlAssinado),tpAmb=NFe.infNFe.ide.tpAmb,valNF=NFe.infNFe.total.ICMSTot.vNF,diaEmissao=this.diaEmissao(NFe.infNFe.ide.dhEmi);qrCode=generateQRCodeURLOffline(chaveAcesso,"2",tpAmb,diaEmissao,valNF,digestValue,Number(idCSC),String(tokenCSC),this.utility),xml2js.parseString(xmlAssinado,((err,result)=>{if(err)throw new Error("Erro ao parsear o XML para atualização do qrCode:");if(!result.NFe?.infNFeSupl[0]?.qrCode)throw new Error("Tag qrCode não encontrada no XML.");{result.NFe.infNFeSupl[0].qrCode[0]=qrCode;const builder=new xml2jsExports.Builder({headless:!0,renderOpts:{pretty:!1}});xmlAssinado=builder.buildObject(result)}}))}this.xmlNFe.push(xmlAssinado)};if(data.NFe instanceof Array)for(let i=0;i<data.NFe.length;i++){createXML(data.NFe[i])}else createXML(data.NFe);const baseXML={$:{versao:"4.00",xmlns:"http://www.portalfiscal.inf.br/nfe"},idLote:data.idLote,indSinc:data.indSinc,_:"[XML]"};return this.xmlBuilder.gerarXml(baseXML,"enviNFe").replace("[XML]",this.xmlNFe.join(""))}async gerarConsulta(xmlConsulta){try{const config=this.environment.getConfig();"validateSchemaJsBased"!==config.lib?.useForSchemaValidation?await this.utility.validateSchemaJavaBased(xmlConsulta,this.metodo):await this.utility.validateSchemaJsBased(xmlConsulta,this.metodo);const{method:method,action:action}=this.utility.getSoapInfo(config.dfe.UF,this.metodo),xmlFormated=this.xmlBuilder.buildSoapEnvelope(xmlConsulta,method),agent=this.environment.getHttpAgent();return{xmlFormated:xmlFormated,agent:agent,webServiceUrl:this.utility.getWebServiceUrl(this.metodo,!1,"","NFCe"),action:action}}catch(error){throw new Error(error.message)}}async Exec(data){let xmlConsulta="",soapXML="";try{xmlConsulta=this.gerarXmlNFCEAutorizacao(data);const{xmlFormated:xmlFormated,agent:agent,webServiceUrl:webServiceUrl,action:action}=await this.gerarConsulta(xmlConsulta);soapXML=xmlFormated,this.utility.salvaConsulta(xmlConsulta,xmlFormated,this.metodo);const xmlRetorno=await this.axios.post(webServiceUrl,xmlFormated,{headers:{"Content-Type":"text/xml; charset=utf-8",SOAPAction:action,CSC:"9cf44de0-502d-4351-bf18-0843e6528e22"},httpsAgent:agent}),responseInJson=this.utility.verificaRejeicao(xmlRetorno.data,this.metodo);this.utility.salvaRetorno(xmlRetorno.data,responseInJson,this.metodo);const retorno=await this.trataRetorno(xmlRetorno.data,data.indSinc,responseInJson),xmlFinal=this.salvaArquivos(xmlConsulta,responseInJson,xmlRetorno.data,{xmlAutorizacao:retorno.data,xMotivo:retorno.message});return{success:!0,xMotivo:xmlFinal.xMotivo,xmls:xmlFinal.response}}catch(error){throw this.utility.salvaConsulta(xmlConsulta,soapXML,this.metodo),new Error(error.message)}}}var canPromise,hasRequiredCanPromise,server={};function requireCanPromise(){return hasRequiredCanPromise?canPromise:(hasRequiredCanPromise=1,canPromise=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then})}var hasRequiredUtils$1,qrcode={},utils$1={};function requireUtils$1(){if(hasRequiredUtils$1)return utils$1;let toSJISFunction;hasRequiredUtils$1=1;const CODEWORDS_COUNT=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return utils$1.getSymbolSize=function getSymbolSize(version){if(!version)throw new Error('"version" cannot be null or undefined');if(version<1||version>40)throw new Error('"version" should be in range from 1 to 40');return 4*version+17},utils$1.getSymbolTotalCodewords=function getSymbolTotalCodewords(version){return CODEWORDS_COUNT[version]},utils$1.getBCHDigit=function(data){let digit=0;for(;0!==data;)digit++,data>>>=1;return digit},utils$1.setToSJISFunction=function setToSJISFunction(f){if("function"!=typeof f)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction=f},utils$1.isKanjiModeEnabled=function(){return void 0!==toSJISFunction},utils$1.toSJIS=function toSJIS(kanji){return toSJISFunction(kanji)},utils$1}var hasRequiredErrorCorrectionLevel,bitBuffer,hasRequiredBitBuffer,bitMatrix,hasRequiredBitMatrix,errorCorrectionLevel={};function requireErrorCorrectionLevel(){return hasRequiredErrorCorrectionLevel||(hasRequiredErrorCorrectionLevel=1,function(exports){exports.L={bit:1},exports.M={bit:0},exports.Q={bit:3},exports.H={bit:2},exports.isValid=function isValid(level){return level&&void 0!==level.bit&&level.bit>=0&&level.bit<4},exports.from=function from(value,defaultValue){if(exports.isValid(value))return value;try{return function fromString(string){if("string"!=typeof string)throw new Error("Param is not a string");switch(string.toLowerCase()){case"l":case"low":return exports.L;case"m":case"medium":return exports.M;case"q":case"quartile":return exports.Q;case"h":case"high":return exports.H;default:throw new Error("Unknown EC Level: "+string)}}(value)}catch(e){return defaultValue}}}(errorCorrectionLevel)),errorCorrectionLevel}var hasRequiredAlignmentPattern,alignmentPattern={};var hasRequiredFinderPattern,finderPattern={};var hasRequiredMaskPattern,maskPattern={};var hasRequiredErrorCorrectionCode,errorCorrectionCode={};function requireErrorCorrectionCode(){if(hasRequiredErrorCorrectionCode)return errorCorrectionCode;hasRequiredErrorCorrectionCode=1;const ECLevel=requireErrorCorrectionLevel(),EC_BLOCKS_TABLE=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],EC_CODEWORDS_TABLE=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return errorCorrectionCode.getBlocksCount=function getBlocksCount(version,errorCorrectionLevel){switch(errorCorrectionLevel){case ECLevel.L:return EC_BLOCKS_TABLE[4*(version-1)+0];case ECLevel.M:return EC_BLOCKS_TABLE[4*(version-1)+1];case ECLevel.Q:return EC_BLOCKS_TABLE[4*(version-1)+2];case ECLevel.H:return EC_BLOCKS_TABLE[4*(version-1)+3];default:return}},errorCorrectionCode.getTotalCodewordsCount=function getTotalCodewordsCount(version,errorCorrectionLevel){switch(errorCorrectionLevel){case ECLevel.L:return EC_CODEWORDS_TABLE[4*(version-1)+0];case ECLevel.M:return EC_CODEWORDS_TABLE[4*(version-1)+1];case ECLevel.Q:return EC_CODEWORDS_TABLE[4*(version-1)+2];case ECLevel.H:return EC_CODEWORDS_TABLE[4*(version-1)+3];default:return}},errorCorrectionCode}var hasRequiredGaloisField,hasRequiredPolynomial,reedSolomonEncoder,hasRequiredReedSolomonEncoder,polynomial={},galoisField={};function requirePolynomial(){return hasRequiredPolynomial||(hasRequiredPolynomial=1,function(exports){const GF=function requireGaloisField(){if(hasRequiredGaloisField)return galoisField;hasRequiredGaloisField=1;const EXP_TABLE=new Uint8Array(512),LOG_TABLE=new Uint8Array(256);return function initTables(){let x=1;for(let i=0;i<255;i++)EXP_TABLE[i]=x,LOG_TABLE[x]=i,x<<=1,256&x&&(x^=285);for(let i=255;i<512;i++)EXP_TABLE[i]=EXP_TABLE[i-255]}(),galoisField.log=function log(n){if(n<1)throw new Error("log("+n+")");return LOG_TABLE[n]},galoisField.exp=function exp(n){return EXP_TABLE[n]},galoisField.mul=function mul(x,y){return 0===x||0===y?0:EXP_TABLE[LOG_TABLE[x]+LOG_TABLE[y]]},galoisField}();exports.mul=function mul(p1,p2){const coeff=new Uint8Array(p1.length+p2.length-1);for(let i=0;i<p1.length;i++)for(let j=0;j<p2.length;j++)coeff[i+j]^=GF.mul(p1[i],p2[j]);return coeff},exports.mod=function mod(divident,divisor){let result=new Uint8Array(divident);for(;result.length-divisor.length>=0;){const coeff=result[0];for(let i=0;i<divisor.length;i++)result[i]^=GF.mul(divisor[i],coeff);let offset=0;for(;offset<result.length&&0===result[offset];)offset++;result=result.slice(offset)}return result},exports.generateECPolynomial=function generateECPolynomial(degree){let poly=new Uint8Array([1]);for(let i=0;i<degree;i++)poly=exports.mul(poly,new Uint8Array([1,GF.exp(i)]));return poly}}(polynomial)),polynomial}var hasRequiredVersionCheck,version={},mode={},versionCheck={};function requireVersionCheck(){return hasRequiredVersionCheck||(hasRequiredVersionCheck=1,versionCheck.isValid=function isValid(version){return!isNaN(version)&&version>=1&&version<=40}),versionCheck}var hasRequiredRegex,hasRequiredMode,hasRequiredVersion,regex={};function requireRegex(){if(hasRequiredRegex)return regex;hasRequiredRegex=1;let kanji="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji=kanji.replace(/u/g,"\\u");const byte="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji+")(?:.|[\r\n]))+";regex.KANJI=new RegExp(kanji,"g"),regex.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex.BYTE=new RegExp(byte,"g"),regex.NUMERIC=new RegExp("[0-9]+","g"),regex.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const TEST_KANJI=new RegExp("^"+kanji+"$"),TEST_NUMERIC=new RegExp("^[0-9]+$"),TEST_ALPHANUMERIC=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return regex.testKanji=function testKanji(str){return TEST_KANJI.test(str)},regex.testNumeric=function testNumeric(str){return TEST_NUMERIC.test(str)},regex.testAlphanumeric=function testAlphanumeric(str){return TEST_ALPHANUMERIC.test(str)},regex}function requireMode(){return hasRequiredMode||(hasRequiredMode=1,function(exports){const VersionCheck=requireVersionCheck(),Regex=requireRegex();exports.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},exports.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},exports.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},exports.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},exports.MIXED={bit:-1},exports.getCharCountIndicator=function getCharCountIndicator(mode,version){if(!mode.ccBits)throw new Error("Invalid mode: "+mode);if(!VersionCheck.isValid(version))throw new Error("Invalid version: "+version);return version>=1&&version<10?mode.ccBits[0]:version<27?mode.ccBits[1]:mode.ccBits[2]},exports.getBestModeForData=function getBestModeForData(dataStr){return Regex.testNumeric(dataStr)?exports.NUMERIC:Regex.testAlphanumeric(dataStr)?exports.ALPHANUMERIC:Regex.testKanji(dataStr)?exports.KANJI:exports.BYTE},exports.toString=function toString(mode){if(mode&&mode.id)return mode.id;throw new Error("Invalid mode")},exports.isValid=function isValid(mode){return mode&&mode.bit&&mode.ccBits},exports.from=function from(value,defaultValue){if(exports.isValid(value))return value;try{return function fromString(string){if("string"!=typeof string)throw new Error("Param is not a string");switch(string.toLowerCase()){case"numeric":return exports.NUMERIC;case"alphanumeric":return exports.ALPHANUMERIC;case"kanji":return exports.KANJI;case"byte":return exports.BYTE;default:throw new Error("Unknown mode: "+string)}}(value)}catch(e){return defaultValue}}}(mode)),mode}function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,function(exports){const Utils=requireUtils$1(),ECCode=requireErrorCorrectionCode(),ECLevel=requireErrorCorrectionLevel(),Mode=requireMode(),VersionCheck=requireVersionCheck(),G18_BCH=Utils.getBCHDigit(7973);function getReservedBitsCount(mode,version){return Mode.getCharCountIndicator(mode,version)+4}function getTotalBitsFromDataArray(segments,version){let totalBits=0;return segments.forEach((function(data){const reservedBits=getReservedBitsCount(data.mode,version);totalBits+=reservedBits+data.getBitsLength()})),totalBits}exports.from=function from(value,defaultValue){return VersionCheck.isValid(value)?parseInt(value,10):defaultValue},exports.getCapacity=function getCapacity(version,errorCorrectionLevel,mode){if(!VersionCheck.isValid(version))throw new Error("Invalid QR Code version");void 0===mode&&(mode=Mode.BYTE);const dataTotalCodewordsBits=8*(Utils.getSymbolTotalCodewords(version)-ECCode.getTotalCodewordsCount(version,errorCorrectionLevel));if(mode===Mode.MIXED)return dataTotalCodewordsBits;const usableBits=dataTotalCodewordsBits-getReservedBitsCount(mode,version);switch(mode){case Mode.NUMERIC:return Math.floor(usableBits/10*3);case Mode.ALPHANUMERIC:return Math.floor(usableBits/11*2);case Mode.KANJI:return Math.floor(usableBits/13);case Mode.BYTE:default:return Math.floor(usableBits/8)}},exports.getBestVersionForData=function getBestVersionForData(data,errorCorrectionLevel){let seg;const ecl=ECLevel.from(errorCorrectionLevel,ECLevel.M);if(Array.isArray(data)){if(data.length>1)return function getBestVersionForMixedData(segments,errorCorrectionLevel){for(let currentVersion=1;currentVersion<=40;currentVersion++)if(getTotalBitsFromDataArray(segments,currentVersion)<=exports.getCapacity(currentVersion,errorCorrectionLevel,Mode.MIXED))return currentVersion}(data,ecl);if(0===data.length)return 1;seg=data[0]}else seg=data;return function getBestVersionForDataLength(mode,length,errorCorrectionLevel){for(let currentVersion=1;currentVersion<=40;currentVersion++)if(length<=exports.getCapacity(currentVersion,errorCorrectionLevel,mode))return currentVersion}(seg.mode,seg.getLength(),ecl)},exports.getEncodedBits=function getEncodedBits(version){if(!VersionCheck.isValid(version)||version<7)throw new Error("Invalid QR Code version");let d=version<<12;for(;Utils.getBCHDigit(d)-G18_BCH>=0;)d^=7973<<Utils.getBCHDigit(d)-G18_BCH;return version<<12|d}}(version)),version}var hasRequiredFormatInfo,formatInfo={};var numericData,hasRequiredNumericData,alphanumericData,hasRequiredAlphanumericData,byteData,hasRequiredByteData,kanjiData,hasRequiredKanjiData,segments={};var hasRequiredDijkstra,hasRequiredSegments,hasRequiredQrcode,dijkstra={exports:{}};function requireDijkstra(){return hasRequiredDijkstra||(hasRequiredDijkstra=1,function(module){var dijkstra={single_source_shortest_paths:function(graph,s,d){var predecessors={},costs={};costs[s]=0;var closest,u,v,cost_of_s_to_u,adjacent_nodes,cost_of_s_to_u_plus_cost_of_e,cost_of_s_to_v,open=dijkstra.PriorityQueue.make();for(open.push(s,0);!open.empty();)for(v in u=(closest=open.pop()).value,cost_of_s_to_u=closest.cost,adjacent_nodes=graph[u]||{})adjacent_nodes.hasOwnProperty(v)&&(cost_of_s_to_u_plus_cost_of_e=cost_of_s_to_u+adjacent_nodes[v],cost_of_s_to_v=costs[v],(void 0===costs[v]||cost_of_s_to_v>cost_of_s_to_u_plus_cost_of_e)&&(costs[v]=cost_of_s_to_u_plus_cost_of_e,open.push(v,cost_of_s_to_u_plus_cost_of_e),predecessors[v]=u));if(void 0!==d&&void 0===costs[d]){var msg=["Could not find a path from ",s," to ",d,"."].join("");throw new Error(msg)}return predecessors},extract_shortest_path_from_predecessor_list:function(predecessors,d){for(var nodes=[],u=d;u;)nodes.push(u),predecessors[u],u=predecessors[u];return nodes.reverse(),nodes},find_path:function(graph,s,d){var predecessors=dijkstra.single_source_shortest_paths(graph,s,d);return dijkstra.extract_shortest_path_from_predecessor_list(predecessors,d)},PriorityQueue:{make:function(opts){var key,T=dijkstra.PriorityQueue,t={};for(key in opts=opts||{},T)T.hasOwnProperty(key)&&(t[key]=T[key]);return t.queue=[],t.sorter=opts.sorter||T.default_sorter,t},default_sorter:function(a,b){return a.cost-b.cost},push:function(value,cost){var item={value:value,cost:cost};this.queue.push(item),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};module.exports=dijkstra}(dijkstra)),dijkstra.exports}function requireSegments(){return hasRequiredSegments||(hasRequiredSegments=1,function(exports){const Mode=requireMode(),NumericData=function requireNumericData(){if(hasRequiredNumericData)return numericData;hasRequiredNumericData=1;const Mode=requireMode();function NumericData(data){this.mode=Mode.NUMERIC,this.data=data.toString()}return NumericData.getBitsLength=function getBitsLength(length){return 10*Math.floor(length/3)+(length%3?length%3*3+1:0)},NumericData.prototype.getLength=function getLength(){return this.data.length},NumericData.prototype.getBitsLength=function getBitsLength(){return NumericData.getBitsLength(this.data.length)},NumericData.prototype.write=function write(bitBuffer){let i,group,value;for(i=0;i+3<=this.data.length;i+=3)group=this.data.substr(i,3),value=parseInt(group,10),bitBuffer.put(value,10);const remainingNum=this.data.length-i;remainingNum>0&&(group=this.data.substr(i),value=parseInt(group,10),bitBuffer.put(value,3*remainingNum+1))},numericData=NumericData}(),AlphanumericData=function requireAlphanumericData(){if(hasRequiredAlphanumericData)return alphanumericData;hasRequiredAlphanumericData=1;const Mode=requireMode(),ALPHA_NUM_CHARS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData(data){this.mode=Mode.ALPHANUMERIC,this.data=data}return AlphanumericData.getBitsLength=function getBitsLength(length){return 11*Math.floor(length/2)+length%2*6},AlphanumericData.prototype.getLength=function getLength(){return this.data.length},AlphanumericData.prototype.getBitsLength=function getBitsLength(){return AlphanumericData.getBitsLength(this.data.length)},AlphanumericData.prototype.write=function write(bitBuffer){let i;for(i=0;i+2<=this.data.length;i+=2){let value=45*ALPHA_NUM_CHARS.indexOf(this.data[i]);value+=ALPHA_NUM_CHARS.indexOf(this.data[i+1]),bitBuffer.put(value,11)}this.data.length%2&&bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]),6)},alphanumericData=AlphanumericData}(),ByteData=function requireByteData(){if(hasRequiredByteData)return byteData;hasRequiredByteData=1;const Mode=requireMode();function ByteData(data){this.mode=Mode.BYTE,this.data="string"==typeof data?(new TextEncoder).encode(data):new Uint8Array(data)}return ByteData.getBitsLength=function getBitsLength(length){return 8*length},ByteData.prototype.getLength=function getLength(){return this.data.length},ByteData.prototype.getBitsLength=function getBitsLength(){return ByteData.getBitsLength(this.data.length)},ByteData.prototype.write=function(bitBuffer){for(let i=0,l=this.data.length;i<l;i++)bitBuffer.put(this.data[i],8)},byteData=ByteData}(),KanjiData=function requireKanjiData(){if(hasRequiredKanjiData)return kanjiData;hasRequiredKanjiData=1;const Mode=requireMode(),Utils=requireUtils$1();function KanjiData(data){this.mode=Mode.KANJI,this.data=data}return KanjiData.getBitsLength=function getBitsLength(length){return 13*length},KanjiData.prototype.getLength=function getLength(){return this.data.length},KanjiData.prototype.getBitsLength=function getBitsLength(){return KanjiData.getBitsLength(this.data.length)},KanjiData.prototype.write=function(bitBuffer){let i;for(i=0;i<this.data.length;i++){let value=Utils.toSJIS(this.data[i]);if(value>=33088&&value<=40956)value-=33088;else{if(!(value>=57408&&value<=60351))throw new Error("Invalid SJIS character: "+this.data[i]+"\nMake sure your charset is UTF-8");value-=49472}value=192*(value>>>8&255)+(255&value),bitBuffer.put(value,13)}},kanjiData=KanjiData}(),Regex=requireRegex(),Utils=requireUtils$1(),dijkstra=requireDijkstra();function getStringByteLength(str){return unescape(encodeURIComponent(str)).length}function getSegments(regex,mode,str){const segments=[];let result;for(;null!==(result=regex.exec(str));)segments.push({data:result[0],index:result.index,mode:mode,length:result[0].length});return segments}function getSegmentsFromString(dataStr){const numSegs=getSegments(Regex.NUMERIC,Mode.NUMERIC,dataStr),alphaNumSegs=getSegments(Regex.ALPHANUMERIC,Mode.ALPHANUMERIC,dataStr);let byteSegs,kanjiSegs;Utils.isKanjiModeEnabled()?(byteSegs=getSegments(Regex.BYTE,Mode.BYTE,dataStr),kanjiSegs=getSegments(Regex.KANJI,Mode.KANJI,dataStr)):(byteSegs=getSegments(Regex.BYTE_KANJI,Mode.BYTE,dataStr),kanjiSegs=[]);return numSegs.concat(alphaNumSegs,byteSegs,kanjiSegs).sort((function(s1,s2){return s1.index-s2.index})).map((function(obj){return{data:obj.data,mode:obj.mode,length:obj.length}}))}function getSegmentBitsLength(length,mode){switch(mode){case Mode.NUMERIC:return NumericData.getBitsLength(length);case Mode.ALPHANUMERIC:return AlphanumericData.getBitsLength(length);case Mode.KANJI:return KanjiData.getBitsLength(length);case Mode.BYTE:return ByteData.getBitsLength(length)}}function buildSingleSegment(data,modesHint){let mode;const bestMode=Mode.getBestModeForData(data);if(mode=Mode.from(modesHint,bestMode),mode!==Mode.BYTE&&mode.bit<bestMode.bit)throw new Error('"'+data+'" cannot be encoded with mode '+Mode.toString(mode)+".\n Suggested mode is: "+Mode.toString(bestMode));switch(mode!==Mode.KANJI||Utils.isKanjiModeEnabled()||(mode=Mode.BYTE),mode){case Mode.NUMERIC:return new NumericData(data);case Mode.ALPHANUMERIC:return new AlphanumericData(data);case Mode.KANJI:return new KanjiData(data);case Mode.BYTE:return new ByteData(data)}}exports.fromArray=function fromArray(array){return array.reduce((function(acc,seg){return"string"==typeof seg?acc.push(buildSingleSegment(seg,null)):seg.data&&acc.push(buildSingleSegment(seg.data,seg.mode)),acc}),[])},exports.fromString=function fromString(data,version){const nodes=function buildNodes(segs){const nodes=[];for(let i=0;i<segs.length;i++){const seg=segs[i];switch(seg.mode){case Mode.NUMERIC:nodes.push([seg,{data:seg.data,mode:Mode.ALPHANUMERIC,length:seg.length},{data:seg.data,mode:Mode.BYTE,length:seg.length}]);break;case Mode.ALPHANUMERIC:nodes.push([seg,{data:seg.data,mode:Mode.BYTE,length:seg.length}]);break;case Mode.KANJI:nodes.push([seg,{data:seg.data,mode:Mode.BYTE,length:getStringByteLength(seg.data)}]);break;case Mode.BYTE:nodes.push([{data:seg.data,mode:Mode.BYTE,length:getStringByteLength(seg.data)}])}}return nodes}(getSegmentsFromString(data,Utils.isKanjiModeEnabled())),graph=function buildGraph(nodes,version){const table={},graph={start:{}};let prevNodeIds=["start"];for(let i=0;i<nodes.length;i++){const nodeGroup=nodes[i],currentNodeIds=[];for(let j=0;j<nodeGroup.length;j++){const node=nodeGroup[j],key=""+i+j;currentNodeIds.push(key),table[key]={node:node,lastCount:0},graph[key]={};for(let n=0;n<prevNodeIds.length;n++){const prevNodeId=prevNodeIds[n];table[prevNodeId]&&table[prevNodeId].node.mode===node.mode?(graph[prevNodeId][key]=getSegmentBitsLength(table[prevNodeId].lastCount+node.length,node.mode)-getSegmentBitsLength(table[prevNodeId].lastCount,node.mode),table[prevNodeId].lastCount+=node.length):(table[prevNodeId]&&(table[prevNodeId].lastCount=node.length),graph[prevNodeId][key]=getSegmentBitsLength(node.length,node.mode)+4+Mode.getCharCountIndicator(node.mode,version))}}prevNodeIds=currentNodeIds}for(let n=0;n<prevNodeIds.length;n++)graph[prevNodeIds[n]].end=0;return{map:graph,table:table}}(nodes,version),path=dijkstra.find_path(graph.map,"start","end"),optimizedSegs=[];for(let i=1;i<path.length-1;i++)optimizedSegs.push(graph.table[path[i]].node);return exports.fromArray(function mergeSegments(segs){return segs.reduce((function(acc,curr){const prevSeg=acc.length-1>=0?acc[acc.length-1]:null;return prevSeg&&prevSeg.mode===curr.mode?(acc[acc.length-1].data+=curr.data,acc):(acc.push(curr),acc)}),[])}(optimizedSegs))},exports.rawSplit=function rawSplit(data){return exports.fromArray(getSegmentsFromString(data,Utils.isKanjiModeEnabled()))}}(segments)),segments}function requireQrcode(){if(hasRequiredQrcode)return qrcode;hasRequiredQrcode=1;const Utils=requireUtils$1(),ECLevel=requireErrorCorrectionLevel(),BitBuffer=function requireBitBuffer(){if(hasRequiredBitBuffer)return bitBuffer;function BitBuffer(){this.buffer=[],this.length=0}return hasRequiredBitBuffer=1,BitBuffer.prototype={get:function(index){const bufIndex=Math.floor(index/8);return 1==(this.buffer[bufIndex]>>>7-index%8&1)},put:function(num,length){for(let i=0;i<length;i++)this.putBit(1==(num>>>length-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(bit){const bufIndex=Math.floor(this.length/8);this.buffer.length<=bufIndex&&this.buffer.push(0),bit&&(this.buffer[bufIndex]|=128>>>this.length%8),this.length++}},bitBuffer=BitBuffer}(),BitMatrix=function requireBitMatrix(){if(hasRequiredBitMatrix)return bitMatrix;function BitMatrix(size){if(!size||size<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=size,this.data=new Uint8Array(size*size),this.reservedBit=new Uint8Array(size*size)}return hasRequiredBitMatrix=1,BitMatrix.prototype.set=function(row,col,value,reserved){const index=row*this.size+col;this.data[index]=value,reserved&&(this.reservedBit[index]=!0)},BitMatrix.prototype.get=function(row,col){return this.data[row*this.size+col]},BitMatrix.prototype.xor=function(row,col,value){this.data[row*this.size+col]^=value},BitMatrix.prototype.isReserved=function(row,col){return this.reservedBit[row*this.size+col]},bitMatrix=BitMatrix}(),AlignmentPattern=function requireAlignmentPattern(){return hasRequiredAlignmentPattern||(hasRequiredAlignmentPattern=1,function(exports){const getSymbolSize=requireUtils$1().getSymbolSize;exports.getRowColCoords=function getRowColCoords(version){if(1===version)return[];const posCount=Math.floor(version/7)+2,size=getSymbolSize(version),intervals=145===size?26:2*Math.ceil((size-13)/(2*posCount-2)),positions=[size-7];for(let i=1;i<posCount-1;i++)positions[i]=positions[i-1]-intervals;return positions.push(6),positions.reverse()},exports.getPositions=function getPositions(version){const coords=[],pos=exports.getRowColCoords(version),posLength=pos.length;for(let i=0;i<posLength;i++)for(let j=0;j<posLength;j++)0===i&&0===j||0===i&&j===posLength-1||i===posLength-1&&0===j||coords.push([pos[i],pos[j]]);return coords}}(alignmentPattern)),alignmentPattern}(),FinderPattern=function requireFinderPattern(){if(hasRequiredFinderPattern)return finderPattern;hasRequiredFinderPattern=1;const getSymbolSize=requireUtils$1().getSymbolSize;return finderPattern.getPositions=function getPositions(version){const size=getSymbolSize(version);return[[0,0],[size-7,0],[0,size-7]]},finderPattern}(),MaskPattern=function requireMaskPattern(){return hasRequiredMaskPattern||(hasRequiredMaskPattern=1,function(exports){exports.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const PenaltyScores_N1=3,PenaltyScores_N2=3,PenaltyScores_N3=40,PenaltyScores_N4=10;function getMaskAt(maskPattern,i,j){switch(maskPattern){case exports.Patterns.PATTERN000:return(i+j)%2==0;case exports.Patterns.PATTERN001:return i%2==0;case exports.Patterns.PATTERN010:return j%3==0;case exports.Patterns.PATTERN011:return(i+j)%3==0;case exports.Patterns.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case exports.Patterns.PATTERN101:return i*j%2+i*j%3==0;case exports.Patterns.PATTERN110:return(i*j%2+i*j%3)%2==0;case exports.Patterns.PATTERN111:return(i*j%3+(i+j)%2)%2==0;default:throw new Error("bad maskPattern:"+maskPattern)}}exports.isValid=function isValid(mask){return null!=mask&&""!==mask&&!isNaN(mask)&&mask>=0&&mask<=7},exports.from=function from(value){return exports.isValid(value)?parseInt(value,10):void 0},exports.getPenaltyN1=function getPenaltyN1(data){const size=data.size;let points=0,sameCountCol=0,sameCountRow=0,lastCol=null,lastRow=null;for(let row=0;row<size;row++){sameCountCol=sameCountRow=0,lastCol=lastRow=null;for(let col=0;col<size;col++){let module=data.get(row,col);module===lastCol?sameCountCol++:(sameCountCol>=5&&(points+=PenaltyScores_N1+(sameCountCol-5)),lastCol=module,sameCountCol=1),module=data.get(col,row),module===lastRow?sameCountRow++:(sameCountRow>=5&&(points+=PenaltyScores_N1+(sameCountRow-5)),lastRow=module,sameCountRow=1)}sameCountCol>=5&&(points+=PenaltyScores_N1+(sameCountCol-5)),sameCountRow>=5&&(points+=PenaltyScores_N1+(sameCountRow-5))}return points},exports.getPenaltyN2=function getPenaltyN2(data){const size=data.size;let points=0;for(let row=0;row<size-1;row++)for(let col=0;col<size-1;col++){const last=data.get(row,col)+data.get(row,col+1)+data.get(row+1,col)+data.get(row+1,col+1);4!==last&&0!==last||points++}return points*PenaltyScores_N2},exports.getPenaltyN3=function getPenaltyN3(data){const size=data.size;let points=0,bitsCol=0,bitsRow=0;for(let row=0;row<size;row++){bitsCol=bitsRow=0;for(let col=0;col<size;col++)bitsCol=bitsCol<<1&2047|data.get(row,col),col>=10&&(1488===bitsCol||93===bitsCol)&&points++,bitsRow=bitsRow<<1&2047|data.get(col,row),col>=10&&(1488===bitsRow||93===bitsRow)&&points++}return points*PenaltyScores_N3},exports.getPenaltyN4=function getPenaltyN4(data){let darkCount=0;const modulesCount=data.data.length;for(let i=0;i<modulesCount;i++)darkCount+=data.data[i];return Math.abs(Math.ceil(100*darkCount/modulesCount/5)-10)*PenaltyScores_N4},exports.applyMask=function applyMask(pattern,data){const size=data.size;for(let col=0;col<size;col++)for(let row=0;row<size;row++)data.isReserved(row,col)||data.xor(row,col,getMaskAt(pattern,row,col))},exports.getBestMask=function getBestMask(data,setupFormatFunc){const numPatterns=Object.keys(exports.Patterns).length;let bestPattern=0,lowerPenalty=1/0;for(let p=0;p<numPatterns;p++){setupFormatFunc(p),exports.applyMask(p,data);const penalty=exports.getPenaltyN1(data)+exports.getPenaltyN2(data)+exports.getPenaltyN3(data)+exports.getPenaltyN4(data);exports.applyMask(p,data),penalty<lowerPenalty&&(lowerPenalty=penalty,bestPattern=p)}return bestPattern}}(maskPattern)),maskPattern}(),ECCode=requireErrorCorrectionCode(),ReedSolomonEncoder=function requireReedSolomonEncoder(){if(hasRequiredReedSolomonEncoder)return reedSolomonEncoder;hasRequiredReedSolomonEncoder=1;const Polynomial=requirePolynomial();function ReedSolomonEncoder(degree){this.genPoly=void 0,this.degree=degree,this.degree&&this.initialize(this.degree)}return ReedSolomonEncoder.prototype.initialize=function initialize(degree){this.degree=degree,this.genPoly=Polynomial.generateECPolynomial(this.degree)},ReedSolomonEncoder.prototype.encode=function encode(data){if(!this.genPoly)throw new Error("Encoder not initialized");const paddedData=new Uint8Array(data.length+this.degree);paddedData.set(data);const remainder=Polynomial.mod(paddedData,this.genPoly),start=this.degree-remainder.length;if(start>0){const buff=new Uint8Array(this.degree);return buff.set(remainder,start),buff}return remainder},reedSolomonEncoder=ReedSolomonEncoder}(),Version=requireVersion(),FormatInfo=function requireFormatInfo(){if(hasRequiredFormatInfo)return formatInfo;hasRequiredFormatInfo=1;const Utils=requireUtils$1(),G15_BCH=Utils.getBCHDigit(1335);return formatInfo.getEncodedBits=function getEncodedBits(errorCorrectionLevel,mask){const data=errorCorrectionLevel.bit<<3|mask;let d=data<<10;for(;Utils.getBCHDigit(d)-G15_BCH>=0;)d^=1335<<Utils.getBCHDigit(d)-G15_BCH;return 21522^(data<<10|d)},formatInfo}(),Mode=requireMode(),Segments=requireSegments();function setupFormatInfo(matrix,errorCorrectionLevel,maskPattern){const size=matrix.size,bits=FormatInfo.getEncodedBits(errorCorrectionLevel,maskPattern);let i,mod;for(i=0;i<15;i++)mod=1==(bits>>i&1),i<6?matrix.set(i,8,mod,!0):i<8?matrix.set(i+1,8,mod,!0):matrix.set(size-15+i,8,mod,!0),i<8?matrix.set(8,size-i-1,mod,!0):i<9?matrix.set(8,15-i-1+1,mod,!0):matrix.set(8,15-i-1,mod,!0);matrix.set(size-8,8,1,!0)}function createData(version,errorCorrectionLevel,segments){const buffer=new BitBuffer;segments.forEach((function(data){buffer.put(data.mode.bit,4),buffer.put(data.getLength(),Mode.getCharCountIndicator(data.mode,version)),data.write(buffer)}));const dataTotalCodewordsBits=8*(Utils.getSymbolTotalCodewords(version)-ECCode.getTotalCodewordsCount(version,errorCorrectionLevel));for(buffer.getLengthInBits()+4<=dataTotalCodewordsBits&&buffer.put(0,4);buffer.getLengthInBits()%8!=0;)buffer.putBit(0);const remainingByte=(dataTotalCodewordsBits-buffer.getLengthInBits())/8;for(let i=0;i<remainingByte;i++)buffer.put(i%2?17:236,8);return function createCodewords(bitBuffer,version,errorCorrectionLevel){const totalCodewords=Utils.getSymbolTotalCodewords(version),ecTotalCodewords=ECCode.getTotalCodewordsCount(version,errorCorrectionLevel),dataTotalCodewords=totalCodewords-ecTotalCodewords,ecTotalBlocks=ECCode.getBlocksCount(version,errorCorrectionLevel),blocksInGroup2=totalCodewords%ecTotalBlocks,blocksInGroup1=ecTotalBlocks-blocksInGroup2,totalCodewordsInGroup1=Math.floor(totalCodewords/ecTotalBlocks),dataCodewordsInGroup1=Math.floor(dataTotalCodewords/ecTotalBlocks),dataCodewordsInGroup2=dataCodewordsInGroup1+1,ecCount=totalCodewordsInGroup1-dataCodewordsInGroup1,rs=new ReedSolomonEncoder(ecCount);let offset=0;const dcData=new Array(ecTotalBlocks),ecData=new Array(ecTotalBlocks);let maxDataSize=0;const buffer=new Uint8Array(bitBuffer.buffer);for(let b=0;b<ecTotalBlocks;b++){const dataSize=b<blocksInGroup1?dataCodewordsInGroup1:dataCodewordsInGroup2;dcData[b]=buffer.slice(offset,offset+dataSize),ecData[b]=rs.encode(dcData[b]),offset+=dataSize,maxDataSize=Math.max(maxDataSize,dataSize)}const data=new Uint8Array(totalCodewords);let i,r,index=0;for(i=0;i<maxDataSize;i++)for(r=0;r<ecTotalBlocks;r++)i<dcData[r].length&&(data[index++]=dcData[r][i]);for(i=0;i<ecCount;i++)for(r=0;r<ecTotalBlocks;r++)data[index++]=ecData[r][i];return data}(buffer,version,errorCorrectionLevel)}function createSymbol(data,version,errorCorrectionLevel,maskPattern){let segments;if(Array.isArray(data))segments=Segments.fromArray(data);else{if("string"!=typeof data)throw new Error("Invalid data");{let estimatedVersion=version;if(!estimatedVersion){const rawSegments=Segments.rawSplit(data);estimatedVersion=Version.getBestVersionForData(rawSegments,errorCorrectionLevel)}segments=Segments.fromString(data,estimatedVersion||40)}}const bestVersion=Version.getBestVersionForData(segments,errorCorrectionLevel);if(!bestVersion)throw new Error("The amount of data is too big to be stored in a QR Code");if(version){if(version<bestVersion)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+bestVersion+".\n")}else version=bestVersion;const dataBits=createData(version,errorCorrectionLevel,segments),moduleCount=Utils.getSymbolSize(version),modules=new BitMatrix(moduleCount);return function setupFinderPattern(matrix,version){const size=matrix.size,pos=FinderPattern.getPositions(version);for(let i=0;i<pos.length;i++){const row=pos[i][0],col=pos[i][1];for(let r=-1;r<=7;r++)if(!(row+r<=-1||size<=row+r))for(let c=-1;c<=7;c++)col+c<=-1||size<=col+c||(r>=0&&r<=6&&(0===c||6===c)||c>=0&&c<=6&&(0===r||6===r)||r>=2&&r<=4&&c>=2&&c<=4?matrix.set(row+r,col+c,!0,!0):matrix.set(row+r,col+c,!1,!0))}}(modules,version),function setupTimingPattern(matrix){const size=matrix.size;for(let r=8;r<size-8;r++){const value=r%2==0;matrix.set(r,6,value,!0),matrix.set(6,r,value,!0)}}(modules),function setupAlignmentPattern(matrix,version){const pos=AlignmentPattern.getPositions(version);for(let i=0;i<pos.length;i++){const row=pos[i][0],col=pos[i][1];for(let r=-2;r<=2;r++)for(let c=-2;c<=2;c++)-2===r||2===r||-2===c||2===c||0===r&&0===c?matrix.set(row+r,col+c,!0,!0):matrix.set(row+r,col+c,!1,!0)}}(modules,version),setupFormatInfo(modules,errorCorrectionLevel,0),version>=7&&function setupVersionInfo(matrix,version){const size=matrix.size,bits=Version.getEncodedBits(version);let row,col,mod;for(let i=0;i<18;i++)row=Math.floor(i/3),col=i%3+size-8-3,mod=1==(bits>>i&1),matrix.set(row,col,mod,!0),matrix.set(col,row,mod,!0)}(modules,version),function setupData(matrix,data){const size=matrix.size;let inc=-1,row=size-1,bitIndex=7,byteIndex=0;for(let col=size-1;col>0;col-=2)for(6===col&&col--;;){for(let c=0;c<2;c++)if(!matrix.isReserved(row,col-c)){let dark=!1;byteIndex<data.length&&(dark=1==(data[byteIndex]>>>bitIndex&1)),matrix.set(row,col-c,dark),bitIndex--,-1===bitIndex&&(byteIndex++,bitIndex=7)}if(row+=inc,row<0||size<=row){row-=inc,inc=-inc;break}}}(modules,dataBits),isNaN(maskPattern)&&(maskPattern=MaskPattern.getBestMask(modules,setupFormatInfo.bind(null,modules,errorCorrectionLevel))),MaskPattern.applyMask(maskPattern,modules),setupFormatInfo(modules,errorCorrectionLevel,maskPattern),{modules:modules,version:version,errorCorrectionLevel:errorCorrectionLevel,maskPattern:maskPattern,segments:segments}}return qrcode.create=function create(data,options){if(void 0===data||""===data)throw new Error("No input text");let version,mask,errorCorrectionLevel=ECLevel.M;return void 0!==options&&(errorCorrectionLevel=ECLevel.from(options.errorCorrectionLevel,ECLevel.M),version=Version.from(options.version),mask=MaskPattern.from(options.maskPattern),options.toSJISFunc&&Utils.setToSJISFunction(options.toSJISFunc)),createSymbol(data,version,errorCorrectionLevel,mask)},qrcode}var hasRequiredChunkstream,png$1={},png={},parserAsync={exports:{}},chunkstream={exports:{}};function requireChunkstream(){if(hasRequiredChunkstream)return chunkstream.exports;hasRequiredChunkstream=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,ChunkStream=chunkstream.exports=function(){Stream.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};return util.inherits(ChunkStream,Stream),ChunkStream.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}.bind(this))},ChunkStream.prototype.write=function(data,encoding){if(!this.writable)return this.emit("error",new Error("Stream not writable")),!1;let dataBuffer;return dataBuffer=Buffer.isBuffer(data)?data:Buffer.from(data,encoding||this._encoding),this._buffers.push(dataBuffer),this._buffered+=dataBuffer.length,this._process(),this._reads&&0===this._reads.length&&(this._paused=!0),this.writable&&!this._paused},ChunkStream.prototype.end=function(data,encoding){data&&this.write(data,encoding),this.writable=!1,this._buffers&&(0===this._buffers.length?this._end():(this._buffers.push(null),this._process()))},ChunkStream.prototype.destroySoon=ChunkStream.prototype.end,ChunkStream.prototype._end=function(){this._reads.length>0&&this.emit("error",new Error("Unexpected end of input")),this.destroy()},ChunkStream.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))},ChunkStream.prototype._processReadAllowingLess=function(read){this._reads.shift();let smallerBuf=this._buffers[0];smallerBuf.length>read.length?(this._buffered-=read.length,this._buffers[0]=smallerBuf.slice(read.length),read.func.call(this,smallerBuf.slice(0,read.length))):(this._buffered-=smallerBuf.length,this._buffers.shift(),read.func.call(this,smallerBuf))},ChunkStream.prototype._processRead=function(read){this._reads.shift();let pos=0,count=0,data=Buffer.alloc(read.length);for(;pos<read.length;){let buf=this._buffers[count++],len=Math.min(buf.length,read.length-pos);buf.copy(data,pos,0,len),pos+=len,len!==buf.length&&(this._buffers[--count]=buf.slice(len))}count>0&&this._buffers.splice(0,count),this._buffered-=read.length,read.func.call(this,data)},ChunkStream.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let read=this._reads[0];if(read.allowLess)this._processReadAllowingLess(read);else{if(!(this._buffered>=read.length))break;this._processRead(read)}}this._buffers&&!this.writable&&this._end()}catch(ex){this.emit("error",ex)}},chunkstream.exports}var hasRequiredInterlace,paethPredictor,hasRequiredPaethPredictor,hasRequiredFilterParse,hasRequiredFilterParseAsync,filterParseAsync={exports:{}},filterParse={exports:{}},interlace={};function requireInterlace(){if(hasRequiredInterlace)return interlace;hasRequiredInterlace=1;let imagePasses=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];return interlace.getImagePasses=function(width,height){let images=[],xLeftOver=width%8,yLeftOver=height%8,xRepeats=(width-xLeftOver)/8,yRepeats=(height-yLeftOver)/8;for(let i=0;i<imagePasses.length;i++){let pass=imagePasses[i],passWidth=xRepeats*pass.x.length,passHeight=yRepeats*pass.y.length;for(let j=0;j<pass.x.length&&pass.x[j]<xLeftOver;j++)passWidth++;for(let j=0;j<pass.y.length&&pass.y[j]<yLeftOver;j++)passHeight++;passWidth>0&&passHeight>0&&images.push({width:passWidth,height:passHeight,index:i})}return images},interlace.getInterlaceIterator=function(width){return function(x,y,pass){let outerXLeftOver=x%imagePasses[pass].x.length,outerX=(x-outerXLeftOver)/imagePasses[pass].x.length*8+imagePasses[pass].x[outerXLeftOver],outerYLeftOver=y%imagePasses[pass].y.length;return 4*outerX+((y-outerYLeftOver)/imagePasses[pass].y.length*8+imagePasses[pass].y[outerYLeftOver])*width*4}},interlace}function requirePaethPredictor(){return hasRequiredPaethPredictor?paethPredictor:(hasRequiredPaethPredictor=1,paethPredictor=function paethPredictor(left,above,upLeft){let paeth=left+above-upLeft,pLeft=Math.abs(paeth-left),pAbove=Math.abs(paeth-above),pUpLeft=Math.abs(paeth-upLeft);return pLeft<=pAbove&&pLeft<=pUpLeft?left:pAbove<=pUpLeft?above:upLeft})}function requireFilterParse(){if(hasRequiredFilterParse)return filterParse.exports;hasRequiredFilterParse=1;let interlaceUtils=requireInterlace(),paethPredictor=requirePaethPredictor();function getByteWidth(width,bpp,depth){let byteWidth=width*bpp;return 8!==depth&&(byteWidth=Math.ceil(byteWidth/(8/depth))),byteWidth}let Filter=filterParse.exports=function(bitmapInfo,dependencies){let width=bitmapInfo.width,height=bitmapInfo.height,interlace=bitmapInfo.interlace,bpp=bitmapInfo.bpp,depth=bitmapInfo.depth;if(this.read=dependencies.read,this.write=dependencies.write,this.complete=dependencies.complete,this._imageIndex=0,this._images=[],interlace){let passes=interlaceUtils.getImagePasses(width,height);for(let i=0;i<passes.length;i++)this._images.push({byteWidth:getByteWidth(passes[i].width,bpp,depth),height:passes[i].height,lineIndex:0})}else this._images.push({byteWidth:getByteWidth(width,bpp,depth),height:height,lineIndex:0});this._xComparison=8===depth?bpp:16===depth?2*bpp:1};return Filter.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},Filter.prototype._unFilterType1=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f1Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0;unfilteredLine[x]=rawByte+f1Left}},Filter.prototype._unFilterType2=function(rawData,unfilteredLine,byteWidth){let lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f2Up=lastLine?lastLine[x]:0;unfilteredLine[x]=rawByte+f2Up}},Filter.prototype._unFilterType3=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f3Up=lastLine?lastLine[x]:0,f3Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f3Add=Math.floor((f3Left+f3Up)/2);unfilteredLine[x]=rawByte+f3Add}},Filter.prototype._unFilterType4=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f4Up=lastLine?lastLine[x]:0,f4Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f4UpLeft=x>xBiggerThan&&lastLine?lastLine[x-xComparison]:0,f4Add=paethPredictor(f4Left,f4Up,f4UpLeft);unfilteredLine[x]=rawByte+f4Add}},Filter.prototype._reverseFilterLine=function(rawData){let unfilteredLine,filter=rawData[0],currentImage=this._images[this._imageIndex],byteWidth=currentImage.byteWidth;if(0===filter)unfilteredLine=rawData.slice(1,byteWidth+1);else switch(unfilteredLine=Buffer.alloc(byteWidth),filter){case 1:this._unFilterType1(rawData,unfilteredLine,byteWidth);break;case 2:this._unFilterType2(rawData,unfilteredLine,byteWidth);break;case 3:this._unFilterType3(rawData,unfilteredLine,byteWidth);break;case 4:this._unFilterType4(rawData,unfilteredLine,byteWidth);break;default:throw new Error("Unrecognised filter type - "+filter)}this.write(unfilteredLine),currentImage.lineIndex++,currentImage.lineIndex>=currentImage.height?(this._lastLine=null,this._imageIndex++,currentImage=this._images[this._imageIndex]):this._lastLine=unfilteredLine,currentImage?this.read(currentImage.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())},filterParse.exports}var constants,hasRequiredConstants,parser={exports:{}};function requireConstants(){return hasRequiredConstants?constants:(hasRequiredConstants=1,constants={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5})}var hasRequiredCrc,hasRequiredParser,crc={exports:{}};function requireCrc(){if(hasRequiredCrc)return crc.exports;hasRequiredCrc=1;let crcTable=[];!function(){for(let i=0;i<256;i++){let currentCrc=i;for(let j=0;j<8;j++)1&currentCrc?currentCrc=3988292384^currentCrc>>>1:currentCrc>>>=1;crcTable[i]=currentCrc}}();let CrcCalculator=crc.exports=function(){this._crc=-1};return CrcCalculator.prototype.write=function(data){for(let i=0;i<data.length;i++)this._crc=crcTable[255&(this._crc^data[i])]^this._crc>>>8;return!0},CrcCalculator.prototype.crc32=function(){return~this._crc},CrcCalculator.crc32=function(buf){let crc=-1;for(let i=0;i<buf.length;i++)crc=crcTable[255&(crc^buf[i])]^crc>>>8;return~crc},crc.exports}function requireParser(){if(hasRequiredParser)return parser.exports;hasRequiredParser=1;let constants=requireConstants(),CrcCalculator=requireCrc(),Parser=parser.exports=function(options,dependencies){this._options=options,options.checkCRC=!1!==options.checkCRC,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[constants.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[constants.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[constants.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[constants.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[constants.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[constants.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=dependencies.read,this.error=dependencies.error,this.metadata=dependencies.metadata,this.gamma=dependencies.gamma,this.transColor=dependencies.transColor,this.palette=dependencies.palette,this.parsed=dependencies.parsed,this.inflateData=dependencies.inflateData,this.finished=dependencies.finished,this.simpleTransparency=dependencies.simpleTransparency,this.headersFinished=dependencies.headersFinished||function(){}};return Parser.prototype.start=function(){this.read(constants.PNG_SIGNATURE.length,this._parseSignature.bind(this))},Parser.prototype._parseSignature=function(data){let signature=constants.PNG_SIGNATURE;for(let i=0;i<signature.length;i++)if(data[i]!==signature[i])return void this.error(new Error("Invalid file signature"));this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._parseChunkBegin=function(data){let length=data.readUInt32BE(0),type=data.readUInt32BE(4),name="";for(let i=4;i<8;i++)name+=String.fromCharCode(data[i]);let ancillary=Boolean(32&data[4]);if(this._hasIHDR||type===constants.TYPE_IHDR){if(this._crc=new CrcCalculator,this._crc.write(Buffer.from(name)),this._chunks[type])return this._chunks[type](length);ancillary?this.read(length+4,this._skipChunk.bind(this)):this.error(new Error("Unsupported critical chunk type "+name))}else this.error(new Error("Expected IHDR on beggining"))},Parser.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},Parser.prototype._parseChunkEnd=function(data){let fileCrc=data.readInt32BE(0),calcCrc=this._crc.crc32();this._options.checkCRC&&calcCrc!==fileCrc?this.error(new Error("Crc error - "+fileCrc+" - "+calcCrc)):this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},Parser.prototype._handleIHDR=function(length){this.read(length,this._parseIHDR.bind(this))},Parser.prototype._parseIHDR=function(data){this._crc.write(data);let width=data.readUInt32BE(0),height=data.readUInt32BE(4),depth=data[8],colorType=data[9],compr=data[10],filter=data[11],interlace=data[12];if(8!==depth&&4!==depth&&2!==depth&&1!==depth&&16!==depth)return void this.error(new Error("Unsupported bit depth "+depth));if(!(colorType in constants.COLORTYPE_TO_BPP_MAP))return void this.error(new Error("Unsupported color type"));if(0!==compr)return void this.error(new Error("Unsupported compression method"));if(0!==filter)return void this.error(new Error("Unsupported filter method"));if(0!==interlace&&1!==interlace)return void this.error(new Error("Unsupported interlace method"));this._colorType=colorType;let bpp=constants.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:width,height:height,depth:depth,interlace:Boolean(interlace),palette:Boolean(colorType&constants.COLORTYPE_PALETTE),color:Boolean(colorType&constants.COLORTYPE_COLOR),alpha:Boolean(colorType&constants.COLORTYPE_ALPHA),bpp:bpp,colorType:colorType}),this._handleChunkEnd()},Parser.prototype._handlePLTE=function(length){this.read(length,this._parsePLTE.bind(this))},Parser.prototype._parsePLTE=function(data){this._crc.write(data);let entries=Math.floor(data.length/3);for(let i=0;i<entries;i++)this._palette.push([data[3*i],data[3*i+1],data[3*i+2],255]);this.palette(this._palette),this._handleChunkEnd()},Parser.prototype._handleTRNS=function(length){this.simpleTransparency(),this.read(length,this._parseTRNS.bind(this))},Parser.prototype._parseTRNS=function(data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR){if(0===this._palette.length)return void this.error(new Error("Transparency chunk must be after palette"));if(data.length>this._palette.length)return void this.error(new Error("More transparent colors than palette size"));for(let i=0;i<data.length;i++)this._palette[i][3]=data[i];this.palette(this._palette)}this._colorType===constants.COLORTYPE_GRAYSCALE&&this.transColor([data.readUInt16BE(0)]),this._colorType===constants.COLORTYPE_COLOR&&this.transColor([data.readUInt16BE(0),data.readUInt16BE(2),data.readUInt16BE(4)]),this._handleChunkEnd()},Parser.prototype._handleGAMA=function(length){this.read(length,this._parseGAMA.bind(this))},Parser.prototype._parseGAMA=function(data){this._crc.write(data),this.gamma(data.readUInt32BE(0)/constants.GAMMA_DIVISION),this._handleChunkEnd()},Parser.prototype._handleIDAT=function(length){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-length,this._parseIDAT.bind(this,length))},Parser.prototype._parseIDAT=function(length,data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR&&0===this._palette.length)throw new Error("Expected palette not found");this.inflateData(data);let leftOverLength=length-data.length;leftOverLength>0?this._handleIDAT(leftOverLength):this._handleChunkEnd()},Parser.prototype._handleIEND=function(length){this.read(length,this._parseIEND.bind(this))},Parser.prototype._parseIEND=function(data){this._crc.write(data),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()},parser.exports}var hasRequiredBitmapper,formatNormaliser,hasRequiredFormatNormaliser,hasRequiredParserAsync,bitmapper={};function requireBitmapper(){if(hasRequiredBitmapper)return bitmapper;hasRequiredBitmapper=1;let interlaceUtils=requireInterlace(),pixelBppMapper=[function(){},function(pxData,data,pxPos,rawPos){if(rawPos===data.length)throw new Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+1>=data.length)throw new Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=data[rawPos+1]},function(pxData,data,pxPos,rawPos){if(rawPos+2>=data.length)throw new Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+3>=data.length)throw new Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=data[rawPos+3]}],pixelBppCustomMapper=[function(){},function(pxData,pixelData,pxPos,maxBit){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=pixelData[1]},function(pxData,pixelData,pxPos,maxBit){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=pixelData[3]}];function mapImage8Bit(image,pxData,getPxPos,bpp,data,rawPos){let imageWidth=image.width,imageHeight=image.height,imagePass=image.index;for(let y=0;y<imageHeight;y++)for(let x=0;x<imageWidth;x++){let pxPos=getPxPos(x,y,imagePass);pixelBppMapper[bpp](pxData,data,pxPos,rawPos),rawPos+=bpp}return rawPos}function mapImageCustomBit(image,pxData,getPxPos,bpp,bits,maxBit){let imageWidth=image.width,imageHeight=image.height,imagePass=image.index;for(let y=0;y<imageHeight;y++){for(let x=0;x<imageWidth;x++){let pixelData=bits.get(bpp),pxPos=getPxPos(x,y,imagePass);pixelBppCustomMapper[bpp](pxData,pixelData,pxPos,maxBit)}bits.resetAfterLine()}}return bitmapper.dataToBitMap=function(data,bitmapInfo){let bits,pxData,width=bitmapInfo.width,height=bitmapInfo.height,depth=bitmapInfo.depth,bpp=bitmapInfo.bpp,interlace=bitmapInfo.interlace;8!==depth&&(bits=function bitRetriever(data,depth){let leftOver=[],i=0;function split(){if(i===data.length)throw new Error("Ran out of data");let byte8,byte7,byte6,byte5,byte4,byte3,byte2,byte1,byte=data[i];switch(i++,depth){default:throw new Error("unrecognised depth");case 16:byte2=data[i],i++,leftOver.push((byte<<8)+byte2);break;case 4:byte2=15&byte,byte1=byte>>4,leftOver.push(byte1,byte2);break;case 2:byte4=3&byte,byte3=byte>>2&3,byte2=byte>>4&3,byte1=byte>>6&3,leftOver.push(byte1,byte2,byte3,byte4);break;case 1:byte8=1&byte,byte7=byte>>1&1,byte6=byte>>2&1,byte5=byte>>3&1,byte4=byte>>4&1,byte3=byte>>5&1,byte2=byte>>6&1,byte1=byte>>7&1,leftOver.push(byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8)}}return{get:function(count){for(;leftOver.length<count;)split();let returner=leftOver.slice(0,count);return leftOver=leftOver.slice(count),returner},resetAfterLine:function(){leftOver.length=0},end:function(){if(i!==data.length)throw new Error("extra data found")}}}(data,depth)),pxData=depth<=8?Buffer.alloc(width*height*4):new Uint16Array(width*height*4);let images,getPxPos,maxBit=Math.pow(2,depth)-1,rawPos=0;if(interlace)images=interlaceUtils.getImagePasses(width,height),getPxPos=interlaceUtils.getInterlaceIterator(width,height);else{let nonInterlacedPxPos=0;getPxPos=function(){let returner=nonInterlacedPxPos;return nonInterlacedPxPos+=4,returner},images=[{width:width,height:height}]}for(let imageIndex=0;imageIndex<images.length;imageIndex++)8===depth?rawPos=mapImage8Bit(images[imageIndex],pxData,getPxPos,bpp,data,rawPos):mapImageCustomBit(images[imageIndex],pxData,getPxPos,bpp,bits,maxBit);if(8===depth){if(rawPos!==data.length)throw new Error("extra data found")}else bits.end();return pxData},bitmapper}function requireFormatNormaliser(){if(hasRequiredFormatNormaliser)return formatNormaliser;return hasRequiredFormatNormaliser=1,formatNormaliser=function(indata,imageData){let depth=imageData.depth,width=imageData.width,height=imageData.height,colorType=imageData.colorType,transColor=imageData.transColor,palette=imageData.palette,outdata=indata;return 3===colorType?function dePalette(indata,outdata,width,height,palette){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let color=palette[indata[pxPos]];if(!color)throw new Error("index "+indata[pxPos]+" not in palette");for(let i=0;i<4;i++)outdata[pxPos+i]=color[i];pxPos+=4}}(indata,outdata,width,height,palette):(transColor&&function replaceTransparentColor(indata,outdata,width,height,transColor){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let makeTrans=!1;if(1===transColor.length?transColor[0]===indata[pxPos]&&(makeTrans=!0):transColor[0]===indata[pxPos]&&transColor[1]===indata[pxPos+1]&&transColor[2]===indata[pxPos+2]&&(makeTrans=!0),makeTrans)for(let i=0;i<4;i++)outdata[pxPos+i]=0;pxPos+=4}}(indata,outdata,width,height,transColor),8!==depth&&(16===depth&&(outdata=Buffer.alloc(width*height*4)),function scaleDepth(indata,outdata,width,height,depth){let maxInSample=Math.pow(2,depth)-1,pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){for(let i=0;i<4;i++)outdata[pxPos+i]=Math.floor(255*indata[pxPos+i]/maxInSample+.5);pxPos+=4}}(indata,outdata,width,height,depth))),outdata}}function requireParserAsync(){if(hasRequiredParserAsync)return parserAsync.exports;hasRequiredParserAsync=1;let util=require$$0__default$3.default,zlib=zlib__default.default,ChunkStream=requireChunkstream(),FilterAsync=function requireFilterParseAsync(){if(hasRequiredFilterParseAsync)return filterParseAsync.exports;hasRequiredFilterParseAsync=1;let util=require$$0__default$3.default,ChunkStream=requireChunkstream(),Filter=requireFilterParse(),FilterAsync=filterParseAsync.exports=function(bitmapInfo){ChunkStream.call(this);let buffers=[],that=this;this._filter=new Filter(bitmapInfo,{read:this.read.bind(this),write:function(buffer){buffers.push(buffer)},complete:function(){that.emit("complete",Buffer.concat(buffers))}}),this._filter.start()};return util.inherits(FilterAsync,ChunkStream),filterParseAsync.exports}(),Parser=requireParser(),bitmapper=requireBitmapper(),formatNormaliser=requireFormatNormaliser(),ParserAsync=parserAsync.exports=function(options){ChunkStream.call(this),this._parser=new Parser(options,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=options,this.writable=!0,this._parser.start()};return util.inherits(ParserAsync,ChunkStream),ParserAsync.prototype._handleError=function(err){this.emit("error",err),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",(function(){}))),this.errord=!0},ParserAsync.prototype._inflateData=function(data){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=zlib.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let imageSize=(1+(this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3))*this._bitmapInfo.height,chunkSize=Math.max(imageSize,zlib.Z_MIN_CHUNK);this._inflate=zlib.createInflate({chunkSize:chunkSize});let leftToInflate=imageSize,emitError=this.emit.bind(this,"error");this._inflate.on("error",(function(err){leftToInflate&&emitError(err)})),this._filter.on("complete",this._complete.bind(this));let filterWrite=this._filter.write.bind(this._filter);this._inflate.on("data",(function(chunk){leftToInflate&&(chunk.length>leftToInflate&&(chunk=chunk.slice(0,leftToInflate)),leftToInflate-=chunk.length,filterWrite(chunk))})),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(data)},ParserAsync.prototype._handleMetaData=function(metaData){this._metaData=metaData,this._bitmapInfo=Object.create(metaData),this._filter=new FilterAsync(this._bitmapInfo)},ParserAsync.prototype._handleTransColor=function(transColor){this._bitmapInfo.transColor=transColor},ParserAsync.prototype._handlePalette=function(palette){this._bitmapInfo.palette=palette},ParserAsync.prototype._simpleTransparency=function(){this._metaData.alpha=!0},ParserAsync.prototype._headersFinished=function(){this.emit("metadata",this._metaData)},ParserAsync.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))},ParserAsync.prototype._complete=function(filteredData){if(this.errord)return;let normalisedBitmapData;try{let bitmapData=bitmapper.dataToBitMap(filteredData,this._bitmapInfo);normalisedBitmapData=formatNormaliser(bitmapData,this._bitmapInfo),bitmapData=null}catch(ex){return void this._handleError(ex)}this.emit("parsed",normalisedBitmapData)},parserAsync.exports}var bitpacker,hasRequiredBitpacker,filterPack,hasRequiredFilterPack,hasRequiredPacker,hasRequiredPackerAsync,packerAsync={exports:{}},packer={exports:{}};function requirePacker(){if(hasRequiredPacker)return packer.exports;hasRequiredPacker=1;let constants=requireConstants(),CrcStream=requireCrc(),bitPacker=function requireBitpacker(){if(hasRequiredBitpacker)return bitpacker;hasRequiredBitpacker=1;let constants=requireConstants();return bitpacker=function(dataIn,width,height,options){let outHasAlpha=-1!==[constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType);if(options.colorType===options.inputColorType){let bigEndian=function(){let buffer=new ArrayBuffer(2);return new DataView(buffer).setInt16(0,256,!0),256!==new Int16Array(buffer)[0]}();if(8===options.bitDepth||16===options.bitDepth&&bigEndian)return dataIn}let data=16!==options.bitDepth?dataIn:new Uint16Array(dataIn.buffer),maxValue=255,inBpp=constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];4!==inBpp||options.inputHasAlpha||(inBpp=3);let outBpp=constants.COLORTYPE_TO_BPP_MAP[options.colorType];16===options.bitDepth&&(maxValue=65535,outBpp*=2);let outData=Buffer.alloc(width*height*outBpp),inIndex=0,outIndex=0,bgColor=options.bgColor||{};function getRGBA(){let red,green,blue,alpha=maxValue;switch(options.inputColorType){case constants.COLORTYPE_COLOR_ALPHA:alpha=data[inIndex+3],red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_COLOR:red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_ALPHA:alpha=data[inIndex+1],red=data[inIndex],green=red,blue=red;break;case constants.COLORTYPE_GRAYSCALE:red=data[inIndex],green=red,blue=red;break;default:throw new Error("input color type:"+options.inputColorType+" is not supported at present")}return options.inputHasAlpha&&(outHasAlpha||(alpha/=maxValue,red=Math.min(Math.max(Math.round((1-alpha)*bgColor.red+alpha*red),0),maxValue),green=Math.min(Math.max(Math.round((1-alpha)*bgColor.green+alpha*green),0),maxValue),blue=Math.min(Math.max(Math.round((1-alpha)*bgColor.blue+alpha*blue),0),maxValue))),{red:red,green:green,blue:blue,alpha:alpha}}void 0===bgColor.red&&(bgColor.red=maxValue),void 0===bgColor.green&&(bgColor.green=maxValue),void 0===bgColor.blue&&(bgColor.blue=maxValue);for(let y=0;y<height;y++)for(let x=0;x<width;x++){let rgba=getRGBA();switch(options.colorType){case constants.COLORTYPE_COLOR_ALPHA:case constants.COLORTYPE_COLOR:8===options.bitDepth?(outData[outIndex]=rgba.red,outData[outIndex+1]=rgba.green,outData[outIndex+2]=rgba.blue,outHasAlpha&&(outData[outIndex+3]=rgba.alpha)):(outData.writeUInt16BE(rgba.red,outIndex),outData.writeUInt16BE(rgba.green,outIndex+2),outData.writeUInt16BE(rgba.blue,outIndex+4),outHasAlpha&&outData.writeUInt16BE(rgba.alpha,outIndex+6));break;case constants.COLORTYPE_ALPHA:case constants.COLORTYPE_GRAYSCALE:{let grayscale=(rgba.red+rgba.green+rgba.blue)/3;8===options.bitDepth?(outData[outIndex]=grayscale,outHasAlpha&&(outData[outIndex+1]=rgba.alpha)):(outData.writeUInt16BE(grayscale,outIndex),outHasAlpha&&outData.writeUInt16BE(rgba.alpha,outIndex+2));break}default:throw new Error("unrecognised color Type "+options.colorType)}inIndex+=inBpp,outIndex+=outBpp}return outData}}(),filter=function requireFilterPack(){if(hasRequiredFilterPack)return filterPack;hasRequiredFilterPack=1;let paethPredictor=requirePaethPredictor(),filters={0:function filterNone(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++)rawData[rawPos+x]=pxData[pxPos+x]},1:function filterSub(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;rawData[rawPos+x]=val}},2:function filterUp(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++){let up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-up;rawData[rawPos+x]=val}},3:function filterAvg(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);rawData[rawPos+x]=val}},4:function filterPaeth(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);rawData[rawPos+x]=val}}},filterSums={0:function filterSumNone(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let i=pxPos;i<length;i++)sum+=Math.abs(pxData[i]);return sum},1:function filterSumSub(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;sum+=Math.abs(val)}return sum},2:function filterSumUp(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let x=pxPos;x<length;x++){let up=pxPos>0?pxData[x-byteWidth]:0,val=pxData[x]-up;sum+=Math.abs(val)}return sum},3:function filterSumAvg(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);sum+=Math.abs(val)}return sum},4:function filterSumPaeth(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);sum+=Math.abs(val)}return sum}};return filterPack=function(pxData,width,height,options,bpp){let filterTypes;if("filterType"in options&&-1!==options.filterType){if("number"!=typeof options.filterType)throw new Error("unrecognised filter types");filterTypes=[options.filterType]}else filterTypes=[0,1,2,3,4];16===options.bitDepth&&(bpp*=2);let byteWidth=width*bpp,rawPos=0,pxPos=0,rawData=Buffer.alloc((byteWidth+1)*height),sel=filterTypes[0];for(let y=0;y<height;y++){if(filterTypes.length>1){let min=1/0;for(let i=0;i<filterTypes.length;i++){let sum=filterSums[filterTypes[i]](pxData,pxPos,byteWidth,bpp);sum<min&&(sel=filterTypes[i],min=sum)}}rawData[rawPos]=sel,rawPos++,filters[sel](pxData,pxPos,byteWidth,rawData,rawPos,bpp),rawPos+=byteWidth,pxPos+=byteWidth}return rawData}}(),zlib=zlib__default.default,Packer=packer.exports=function(options){if(this._options=options,options.deflateChunkSize=options.deflateChunkSize||32768,options.deflateLevel=null!=options.deflateLevel?options.deflateLevel:9,options.deflateStrategy=null!=options.deflateStrategy?options.deflateStrategy:3,options.inputHasAlpha=null==options.inputHasAlpha||options.inputHasAlpha,options.deflateFactory=options.deflateFactory||zlib.createDeflate,options.bitDepth=options.bitDepth||8,options.colorType="number"==typeof options.colorType?options.colorType:constants.COLORTYPE_COLOR_ALPHA,options.inputColorType="number"==typeof options.inputColorType?options.inputColorType:constants.COLORTYPE_COLOR_ALPHA,-1===[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType))throw new Error("option color type:"+options.colorType+" is not supported at present");if(-1===[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.inputColorType))throw new Error("option input color type:"+options.inputColorType+" is not supported at present");if(8!==options.bitDepth&&16!==options.bitDepth)throw new Error("option bit depth:"+options.bitDepth+" is not supported at present")};return Packer.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},Packer.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},Packer.prototype.filterData=function(data,width,height){let packedData=bitPacker(data,width,height,this._options),bpp=constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];return filter(packedData,width,height,this._options,bpp)},Packer.prototype._packChunk=function(type,data){let len=data?data.length:0,buf=Buffer.alloc(len+12);return buf.writeUInt32BE(len,0),buf.writeUInt32BE(type,4),data&&data.copy(buf,8),buf.writeInt32BE(CrcStream.crc32(buf.slice(4,buf.length-4)),buf.length-4),buf},Packer.prototype.packGAMA=function(gamma){let buf=Buffer.alloc(4);return buf.writeUInt32BE(Math.floor(gamma*constants.GAMMA_DIVISION),0),this._packChunk(constants.TYPE_gAMA,buf)},Packer.prototype.packIHDR=function(width,height){let buf=Buffer.alloc(13);return buf.writeUInt32BE(width,0),buf.writeUInt32BE(height,4),buf[8]=this._options.bitDepth,buf[9]=this._options.colorType,buf[10]=0,buf[11]=0,buf[12]=0,this._packChunk(constants.TYPE_IHDR,buf)},Packer.prototype.packIDAT=function(data){return this._packChunk(constants.TYPE_IDAT,data)},Packer.prototype.packIEND=function(){return this._packChunk(constants.TYPE_IEND,null)},packer.exports}var hasRequiredSyncInflate,pngSync={},syncInflate={exports:{}};function requireSyncInflate(){return hasRequiredSyncInflate||(hasRequiredSyncInflate=1,function(module,exports){let assert=require$$4__default$1.default.ok,zlib=zlib__default.default,util=require$$0__default$3.default,kMaxLength=require$$3__default$1.default.kMaxLength;function Inflate(opts){if(!(this instanceof Inflate))return new Inflate(opts);opts&&opts.chunkSize<zlib.Z_MIN_CHUNK&&(opts.chunkSize=zlib.Z_MIN_CHUNK),zlib.Inflate.call(this,opts),this._offset=void 0===this._offset?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,opts&&null!=opts.maxLength&&(this._maxLength=opts.maxLength)}function _close(engine,callback){callback&&process.nextTick(callback),engine._handle&&(engine._handle.close(),engine._handle=null)}function inflateSync(buffer,opts){return function zlibBufferSync(engine,buffer){if("string"==typeof buffer&&(buffer=Buffer.from(buffer)),!(buffer instanceof Buffer))throw new TypeError("Not a string or buffer");let flushFlag=engine._finishFlushFlag;return null==flushFlag&&(flushFlag=zlib.Z_FINISH),engine._processChunk(buffer,flushFlag)}(new Inflate(opts),buffer)}Inflate.prototype._processChunk=function(chunk,flushFlag,asyncCb){if("function"==typeof asyncCb)return zlib.Inflate._processChunk.call(this,chunk,flushFlag,asyncCb);let error,res,self=this,availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,leftToInflate=this._maxLength,inOff=0,buffers=[],nread=0;function handleChunk(availInAfter,availOutAfter){if(self._hadError)return;let have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){let out=self._buffer.slice(self._offset,self._offset+have);if(self._offset+=have,out.length>leftToInflate&&(out=out.slice(0,leftToInflate)),buffers.push(out),nread+=out.length,leftToInflate-=out.length,0===leftToInflate)return!1}return(0===availOutAfter||self._offset>=self._chunkSize)&&(availOutBefore=self._chunkSize,self._offset=0,self._buffer=Buffer.allocUnsafe(self._chunkSize)),0===availOutAfter&&(inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!0)}this.on("error",(function(err){error=err})),assert(this._handle,"zlib binding closed");do{res=this._handle.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore),res=res||this._writeState}while(!this._hadError&&handleChunk(res[0],res[1]));if(this._hadError)throw error;if(nread>=kMaxLength)throw _close(this),new RangeError("Cannot create final Buffer. It would be larger than 0x"+kMaxLength.toString(16)+" bytes");let buf=Buffer.concat(buffers,nread);return _close(this),buf},util.inherits(Inflate,zlib.Inflate),module.exports=exports=inflateSync,exports.Inflate=Inflate,exports.createInflate=function createInflate(opts){return new Inflate(opts)},exports.inflateSync=inflateSync}(syncInflate,syncInflate.exports)),syncInflate.exports}var hasRequiredSyncReader,syncReader={exports:{}};function requireSyncReader(){if(hasRequiredSyncReader)return syncReader.exports;hasRequiredSyncReader=1;let SyncReader=syncReader.exports=function(buffer){this._buffer=buffer,this._reads=[]};return SyncReader.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback})},SyncReader.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let read=this._reads[0];if(!this._buffer.length||!(this._buffer.length>=read.length||read.allowLess))break;{this._reads.shift();let buf=this._buffer;this._buffer=buf.slice(read.length),read.func.call(this,buf.slice(0,read.length))}}return this._reads.length>0?new Error("There are some read requests waitng on finished stream"):this._buffer.length>0?new Error("unrecognised content at end of stream"):void 0},syncReader.exports}var hasRequiredFilterParseSync,parserSync,hasRequiredParserSync,packerSync,hasRequiredPackerSync,hasRequiredPngSync,hasRequiredPng$1,filterParseSync={};function requireParserSync(){if(hasRequiredParserSync)return parserSync;hasRequiredParserSync=1;let hasSyncZlib=!0,zlib=zlib__default.default,inflateSync=requireSyncInflate();zlib.deflateSync||(hasSyncZlib=!1);let SyncReader=requireSyncReader(),FilterSync=function requireFilterParseSync(){if(hasRequiredFilterParseSync)return filterParseSync;hasRequiredFilterParseSync=1;let SyncReader=requireSyncReader(),Filter=requireFilterParse();return filterParseSync.process=function(inBuffer,bitmapInfo){let outBuffers=[],reader=new SyncReader(inBuffer);return new Filter(bitmapInfo,{read:reader.read.bind(reader),write:function(bufferPart){outBuffers.push(bufferPart)},complete:function(){}}).start(),reader.process(),Buffer.concat(outBuffers)},filterParseSync}(),Parser=requireParser(),bitmapper=requireBitmapper(),formatNormaliser=requireFormatNormaliser();return parserSync=function(buffer,options){if(!hasSyncZlib)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let err,metaData,gamma;let inflateDataList=[];let reader=new SyncReader(buffer),parser=new Parser(options,{read:reader.read.bind(reader),error:function handleError(_err_){err=_err_},metadata:function handleMetaData(_metaData_){metaData=_metaData_},gamma:function handleGamma(_gamma_){gamma=_gamma_},palette:function handlePalette(palette){metaData.palette=palette},transColor:function handleTransColor(transColor){metaData.transColor=transColor},inflateData:function handleInflateData(inflatedData){inflateDataList.push(inflatedData)},simpleTransparency:function handleSimpleTransparency(){metaData.alpha=!0}});if(parser.start(),reader.process(),err)throw err;let inflatedData,inflateData=Buffer.concat(inflateDataList);if(inflateDataList.length=0,metaData.interlace)inflatedData=zlib.inflateSync(inflateData);else{let imageSize=(1+(metaData.width*metaData.bpp*metaData.depth+7>>3))*metaData.height;inflatedData=inflateSync(inflateData,{chunkSize:imageSize,maxLength:imageSize})}if(inflateData=null,!inflatedData||!inflatedData.length)throw new Error("bad png - invalid inflate data response");let unfilteredData=FilterSync.process(inflatedData,metaData);inflateData=null;let bitmapData=bitmapper.dataToBitMap(unfilteredData,metaData);unfilteredData=null;let normalisedBitmapData=formatNormaliser(bitmapData,metaData);return metaData.data=normalisedBitmapData,metaData.gamma=gamma||0,metaData},parserSync}function requirePngSync(){if(hasRequiredPngSync)return pngSync;hasRequiredPngSync=1;let parse=requireParserSync(),pack=function requirePackerSync(){if(hasRequiredPackerSync)return packerSync;hasRequiredPackerSync=1;let hasSyncZlib=!0,zlib=zlib__default.default;zlib.deflateSync||(hasSyncZlib=!1);let constants=requireConstants(),Packer=requirePacker();return packerSync=function(metaData,opt){if(!hasSyncZlib)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let packer=new Packer(opt||{}),chunks=[];chunks.push(Buffer.from(constants.PNG_SIGNATURE)),chunks.push(packer.packIHDR(metaData.width,metaData.height)),metaData.gamma&&chunks.push(packer.packGAMA(metaData.gamma));let filteredData=packer.filterData(metaData.data,metaData.width,metaData.height),compressedData=zlib.deflateSync(filteredData,packer.getDeflateOptions());if(filteredData=null,!compressedData||!compressedData.length)throw new Error("bad png - invalid compressed data response");return chunks.push(packer.packIDAT(compressedData)),chunks.push(packer.packIEND()),Buffer.concat(chunks)},packerSync}();return pngSync.read=function(buffer,options){return parse(buffer,options||{})},pngSync.write=function(png,options){return pack(png,options)},pngSync}function requirePng$1(){if(hasRequiredPng$1)return png;hasRequiredPng$1=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,Parser=requireParserAsync(),Packer=function requirePackerAsync(){if(hasRequiredPackerAsync)return packerAsync.exports;hasRequiredPackerAsync=1;let util=require$$0__default$3.default,Stream=require$$0__default$2.default,constants=requireConstants(),Packer=requirePacker(),PackerAsync=packerAsync.exports=function(opt){Stream.call(this);let options=opt||{};this._packer=new Packer(options),this._deflate=this._packer.createDeflate(),this.readable=!0};return util.inherits(PackerAsync,Stream),PackerAsync.prototype.pack=function(data,width,height,gamma){this.emit("data",Buffer.from(constants.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(width,height)),gamma&&this.emit("data",this._packer.packGAMA(gamma));let filteredData=this._packer.filterData(data,width,height);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(compressedData){this.emit("data",this._packer.packIDAT(compressedData))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(filteredData)},packerAsync.exports}(),PNGSync=requirePngSync(),PNG=png.PNG=function(options){Stream.call(this),options=options||{},this.width=0|options.width,this.height=0|options.height,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,options.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new Parser(options),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",function(data){this.data=data,this.emit("parsed",data)}.bind(this)),this._packer=new Packer(options),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};return util.inherits(PNG,Stream),PNG.sync=PNGSync,PNG.prototype.pack=function(){return this.data&&this.data.length?(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this):(this.emit("error","No data provided"),this)},PNG.prototype.parse=function(data,callback){if(callback){let onParsed,onError;onParsed=function(parsedData){this.removeListener("error",onError),this.data=parsedData,callback(null,this)}.bind(this),onError=function(err){this.removeListener("parsed",onParsed),callback(err,null)}.bind(this),this.once("parsed",onParsed),this.once("error",onError)}return this.end(data),this},PNG.prototype.write=function(data){return this._parser.write(data),!0},PNG.prototype.end=function(data){this._parser.end(data)},PNG.prototype._metadata=function(metadata){this.width=metadata.width,this.height=metadata.height,this.emit("metadata",metadata)},PNG.prototype._gamma=function(gamma){this.gamma=gamma},PNG.prototype._handleClose=function(){this._parser.writable||this._packer.readable||this.emit("close")},PNG.bitblt=function(src,dst,srcX,srcY,width,height,deltaX,deltaY){if(srcY|=0,width|=0,height|=0,deltaX|=0,deltaY|=0,(srcX|=0)>src.width||srcY>src.height||srcX+width>src.width||srcY+height>src.height)throw new Error("bitblt reading outside image");if(deltaX>dst.width||deltaY>dst.height||deltaX+width>dst.width||deltaY+height>dst.height)throw new Error("bitblt writing outside image");for(let y=0;y<height;y++)src.data.copy(dst.data,(deltaY+y)*dst.width+deltaX<<2,(srcY+y)*src.width+srcX<<2,(srcY+y)*src.width+srcX+width<<2)},PNG.prototype.bitblt=function(dst,srcX,srcY,width,height,deltaX,deltaY){return PNG.bitblt(this,dst,srcX,srcY,width,height,deltaX,deltaY),this},PNG.adjustGamma=function(src){if(src.gamma){for(let y=0;y<src.height;y++)for(let x=0;x<src.width;x++){let idx=src.width*y+x<<2;for(let i=0;i<3;i++){let sample=src.data[idx+i]/255;sample=Math.pow(sample,1/2.2/src.gamma),src.data[idx+i]=Math.round(255*sample)}}src.gamma=0}},PNG.prototype.adjustGamma=function(){PNG.adjustGamma(this)},png}var hasRequiredUtils,hasRequiredPng,utils={};function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(exports){function hex2rgba(hex){if("number"==typeof hex&&(hex=hex.toString()),"string"!=typeof hex)throw new Error("Color should be defined as hex string");let hexCode=hex.slice().replace("#","").split("");if(hexCode.length<3||5===hexCode.length||hexCode.length>8)throw new Error("Invalid hex color: "+hex);3!==hexCode.length&&4!==hexCode.length||(hexCode=Array.prototype.concat.apply([],hexCode.map((function(c){return[c,c]})))),6===hexCode.length&&hexCode.push("F","F");const hexValue=parseInt(hexCode.join(""),16);return{r:hexValue>>24&255,g:hexValue>>16&255,b:hexValue>>8&255,a:255&hexValue,hex:"#"+hexCode.slice(0,6).join("")}}exports.getOptions=function getOptions(options){options||(options={}),options.color||(options.color={});const margin=void 0===options.margin||null===options.margin||options.margin<0?4:options.margin,width=options.width&&options.width>=21?options.width:void 0,scale=options.scale||4;return{width:width,scale:width?4:scale,margin:margin,color:{dark:hex2rgba(options.color.dark||"#000000ff"),light:hex2rgba(options.color.light||"#ffffffff")},type:options.type,rendererOpts:options.rendererOpts||{}}},exports.getScale=function getScale(qrSize,opts){return opts.width&&opts.width>=qrSize+2*opts.margin?opts.width/(qrSize+2*opts.margin):opts.scale},exports.getImageWidth=function getImageWidth(qrSize,opts){const scale=exports.getScale(qrSize,opts);return Math.floor((qrSize+2*opts.margin)*scale)},exports.qrToImageData=function qrToImageData(imgData,qr,opts){const size=qr.modules.size,data=qr.modules.data,scale=exports.getScale(size,opts),symbolSize=Math.floor((size+2*opts.margin)*scale),scaledMargin=opts.margin*scale,palette=[opts.color.light,opts.color.dark];for(let i=0;i<symbolSize;i++)for(let j=0;j<symbolSize;j++){let posDst=4*(i*symbolSize+j),pxColor=opts.color.light;if(i>=scaledMargin&&j>=scaledMargin&&i<symbolSize-scaledMargin&&j<symbolSize-scaledMargin){pxColor=palette[data[Math.floor((i-scaledMargin)/scale)*size+Math.floor((j-scaledMargin)/scale)]?1:0]}imgData[posDst++]=pxColor.r,imgData[posDst++]=pxColor.g,imgData[posDst++]=pxColor.b,imgData[posDst]=pxColor.a}}}(utils)),utils}var hasRequiredUtf8,utf8={};var hasRequiredTerminal$1,terminal$1={},terminal={};var hasRequiredTerminalSmall,hasRequiredTerminal,terminalSmall={};function requireTerminal(){if(hasRequiredTerminal)return terminal$1;hasRequiredTerminal=1;const big=function requireTerminal$1(){return hasRequiredTerminal$1||(hasRequiredTerminal$1=1,terminal.render=function(qrData,options,cb){const size=qrData.modules.size,data=qrData.modules.data,white=" ";let output="";const hMargin=Array(size+3).join(white),vMargin=Array(2).join(white);output+=hMargin+"\n";for(let i=0;i<size;++i){output+=white;for(let j=0;j<size;j++)output+=data[i*size+j]?" ":white;output+=vMargin+"\n"}return output+=hMargin+"\n","function"==typeof cb&&cb(null,output),output}),terminal}(),small=function requireTerminalSmall(){if(hasRequiredTerminalSmall)return terminalSmall;hasRequiredTerminalSmall=1;const mkCodePixel=function(modules,size,x,y){const sizePlus=size+1;return x>=sizePlus||y>=sizePlus||y<-1||x<-1?"0":x>=size||y>=size||y<0||x<0?"1":modules[y*size+x]?"2":"1"},mkCode=function(modules,size,x,y){return mkCodePixel(modules,size,x,y)+mkCodePixel(modules,size,x,y+1)};return terminalSmall.render=function(qrData,options,cb){const size=qrData.modules.size,data=qrData.modules.data,inverse=!(!options||!options.inverse),lineSetup=options&&options.inverse?"":"",palette=function(lineSetup,foregroundWhite,foregroundBlack){return{"00":" "+lineSetup,"01":""+foregroundWhite+"▄"+lineSetup,"02":""+foregroundBlack+"▄"+lineSetup,10:""+foregroundWhite+"▀"+lineSetup,11:" ",12:"▄",20:""+foregroundBlack+"▀"+lineSetup,21:"▀",22:"█"}}(lineSetup,inverse?"":"",inverse?"":""),newLine="\n"+lineSetup;let output=lineSetup;for(let y=-1;y<size+1;y+=2){for(let x=-1;x<size;x++)output+=palette[mkCode(data,size,x,y)];output+=palette[mkCode(data,size,size,y)]+newLine}return output+="","function"==typeof cb&&cb(null,output),output},terminalSmall}();return terminal$1.render=function(qrData,options,cb){return options&&options.small?small.render(qrData,options,cb):big.render(qrData,options,cb)},terminal$1}var hasRequiredSvgTag,hasRequiredSvg,svg={},svgTag={};function requireSvgTag(){if(hasRequiredSvgTag)return svgTag;hasRequiredSvgTag=1;const Utils=requireUtils();function getColorAttrib(color,attrib){const alpha=color.a/255,str=attrib+'="'+color.hex+'"';return alpha<1?str+" "+attrib+'-opacity="'+alpha.toFixed(2).slice(1)+'"':str}function svgCmd(cmd,x,y){let str=cmd+x;return void 0!==y&&(str+=" "+y),str}return svgTag.render=function render(qrData,options,cb){const opts=Utils.getOptions(options),size=qrData.modules.size,data=qrData.modules.data,qrcodesize=size+2*opts.margin,bg=opts.color.light.a?"<path "+getColorAttrib(opts.color.light,"fill")+' d="M0 0h'+qrcodesize+"v"+qrcodesize+'H0z"/>':"",path="<path "+getColorAttrib(opts.color.dark,"stroke")+' d="'+function qrToPath(data,size,margin){let path="",moveBy=0,newRow=!1,lineLength=0;for(let i=0;i<data.length;i++){const col=Math.floor(i%size),row=Math.floor(i/size);col||newRow||(newRow=!0),data[i]?(lineLength++,i>0&&col>0&&data[i-1]||(path+=newRow?svgCmd("M",col+margin,.5+row+margin):svgCmd("m",moveBy,0),moveBy=0,newRow=!1),col+1<size&&data[i+1]||(path+=svgCmd("h",lineLength),lineLength=0)):moveBy++}return path}(data,size,opts.margin)+'"/>',viewBox='viewBox="0 0 '+qrcodesize+" "+qrcodesize+'"',svgTag='<svg xmlns="http://www.w3.org/2000/svg" '+(opts.width?'width="'+opts.width+'" height="'+opts.width+'" ':"")+viewBox+' shape-rendering="crispEdges">'+bg+path+"</svg>\n";return"function"==typeof cb&&cb(null,svgTag),svgTag},svgTag}var hasRequiredCanvas,hasRequiredBrowser,hasRequiredServer,lib,hasRequiredLib,browser={},canvas={};function requireCanvas(){return hasRequiredCanvas||(hasRequiredCanvas=1,function(exports){const Utils=requireUtils();exports.render=function render(qrData,canvas,options){let opts=options,canvasEl=canvas;void 0!==opts||canvas&&canvas.getContext||(opts=canvas,canvas=void 0),canvas||(canvasEl=function getCanvasElement(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),opts=Utils.getOptions(opts);const size=Utils.getImageWidth(qrData.modules.size,opts),ctx=canvasEl.getContext("2d"),image=ctx.createImageData(size,size);return Utils.qrToImageData(image.data,qrData,opts),function clearCanvas(ctx,canvas,size){ctx.clearRect(0,0,canvas.width,canvas.height),canvas.style||(canvas.style={}),canvas.height=size,canvas.width=size,canvas.style.height=size+"px",canvas.style.width=size+"px"}(ctx,canvasEl,size),ctx.putImageData(image,0,0),canvasEl},exports.renderToDataURL=function renderToDataURL(qrData,canvas,options){let opts=options;void 0!==opts||canvas&&canvas.getContext||(opts=canvas,canvas=void 0),opts||(opts={});const canvasEl=exports.render(qrData,canvas,opts),type=opts.type||"image/png",rendererOpts=opts.rendererOpts||{};return canvasEl.toDataURL(type,rendererOpts.quality)}}(canvas)),canvas}function requireServer(){if(hasRequiredServer)return server;hasRequiredServer=1;const canPromise=requireCanPromise(),QRCode=requireQrcode(),PngRenderer=function requirePng(){return hasRequiredPng||(hasRequiredPng=1,function(exports){const fs=fs__default.default,PNG=requirePng$1().PNG,Utils=requireUtils();exports.render=function render(qrData,options){const opts=Utils.getOptions(options),pngOpts=opts.rendererOpts,size=Utils.getImageWidth(qrData.modules.size,opts);pngOpts.width=size,pngOpts.height=size;const pngImage=new PNG(pngOpts);return Utils.qrToImageData(pngImage.data,qrData,opts),pngImage},exports.renderToDataURL=function renderToDataURL(qrData,options,cb){void 0===cb&&(cb=options,options=void 0),exports.renderToBuffer(qrData,options,(function(err,output){err&&cb(err);let url="data:image/png;base64,";url+=output.toString("base64"),cb(null,url)}))},exports.renderToBuffer=function renderToBuffer(qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const png=exports.render(qrData,options),buffer=[];png.on("error",cb),png.on("data",(function(data){buffer.push(data)})),png.on("end",(function(){cb(null,Buffer.concat(buffer))})),png.pack()},exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);let called=!1;const done=(...args)=>{called||(called=!0,cb.apply(null,args))},stream=fs.createWriteStream(path);stream.on("error",done),stream.on("close",done),exports.renderToFileStream(stream,qrData,options)},exports.renderToFileStream=function renderToFileStream(stream,qrData,options){exports.render(qrData,options).pack().pipe(stream)}}(png$1)),png$1}(),Utf8Renderer=function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(exports){const Utils=requireUtils(),BLOCK_CHAR={WW:" ",WB:"▄",BB:"█",BW:"▀"},INVERTED_BLOCK_CHAR={BB:" ",BW:"▄",WW:"█",WB:"▀"};function getBlockChar(top,bottom,blocks){return top&&bottom?blocks.BB:top&&!bottom?blocks.BW:!top&&bottom?blocks.WB:blocks.WW}exports.render=function(qrData,options,cb){const opts=Utils.getOptions(options);let blocks=BLOCK_CHAR;"#ffffff"!==opts.color.dark.hex&&"#000000"!==opts.color.light.hex||(blocks=INVERTED_BLOCK_CHAR);const size=qrData.modules.size,data=qrData.modules.data;let output="",hMargin=Array(size+2*opts.margin+1).join(blocks.WW);hMargin=Array(opts.margin/2+1).join(hMargin+"\n");const vMargin=Array(opts.margin+1).join(blocks.WW);output+=hMargin;for(let i=0;i<size;i+=2){output+=vMargin;for(let j=0;j<size;j++)output+=getBlockChar(data[i*size+j],data[(i+1)*size+j],blocks);output+=vMargin+"\n"}return output+=hMargin.slice(0,-1),"function"==typeof cb&&cb(null,output),output},exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const fs=fs__default.default,utf8=exports.render(qrData,options);fs.writeFile(path,utf8,cb)}}(utf8)),utf8}(),TerminalRenderer=requireTerminal(),SvgRenderer=function requireSvg(){return hasRequiredSvg||(hasRequiredSvg=1,function(exports){const svgTagRenderer=requireSvgTag();exports.render=svgTagRenderer.render,exports.renderToFile=function renderToFile(path,qrData,options,cb){void 0===cb&&(cb=options,options=void 0);const fs=fs__default.default,xmlStr='<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+exports.render(qrData,options);fs.writeFile(path,xmlStr,cb)}}(svg)),svg}();function checkParams(text,opts,cb){if(void 0===text)throw new Error("String required as first argument");if(void 0===cb&&(cb=opts,opts={}),"function"!=typeof cb){if(!canPromise())throw new Error("Callback required as last argument");opts=cb||{},cb=null}return{opts:opts,cb:cb}}function getRendererFromType(type){switch(type){case"svg":return SvgRenderer;case"txt":case"utf8":return Utf8Renderer;default:return PngRenderer}}function render(renderFunc,text,params){if(!params.cb)return new Promise((function(resolve,reject){try{const data=QRCode.create(text,params.opts);return renderFunc(data,params.opts,(function(err,data){return err?reject(err):resolve(data)}))}catch(e){reject(e)}}));try{const data=QRCode.create(text,params.opts);return renderFunc(data,params.opts,params.cb)}catch(e){params.cb(e)}}return server.create=QRCode.create,server.toCanvas=function requireBrowser(){if(hasRequiredBrowser)return browser;hasRequiredBrowser=1;const canPromise=requireCanPromise(),QRCode=requireQrcode(),CanvasRenderer=requireCanvas(),SvgRenderer=requireSvgTag();function renderCanvas(renderFunc,canvas,text,opts,cb){const args=[].slice.call(arguments,1),argsNum=args.length,isLastArgCb="function"==typeof args[argsNum-1];if(!isLastArgCb&&!canPromise())throw new Error("Callback required as last argument");if(!isLastArgCb){if(argsNum<1)throw new Error("Too few arguments provided");return 1===argsNum?(text=canvas,canvas=opts=void 0):2!==argsNum||canvas.getContext||(opts=text,text=canvas,canvas=void 0),new Promise((function(resolve,reject){try{const data=QRCode.create(text,opts);resolve(renderFunc(data,canvas,opts))}catch(e){reject(e)}}))}if(argsNum<2)throw new Error("Too few arguments provided");2===argsNum?(cb=text,text=canvas,canvas=opts=void 0):3===argsNum&&(canvas.getContext&&void 0===cb?(cb=opts,opts=void 0):(cb=opts,opts=text,text=canvas,canvas=void 0));try{const data=QRCode.create(text,opts);cb(null,renderFunc(data,canvas,opts))}catch(e){cb(e)}}return browser.create=QRCode.create,browser.toCanvas=renderCanvas.bind(null,CanvasRenderer.render),browser.toDataURL=renderCanvas.bind(null,CanvasRenderer.renderToDataURL),browser.toString=renderCanvas.bind(null,(function(data,_,opts){return SvgRenderer.render(data,opts)})),browser}().toCanvas,server.toString=function toString(text,opts,cb){const params=checkParams(text,opts,cb),renderer=function getStringRendererFromType(type){switch(type){case"svg":return SvgRenderer;case"terminal":return TerminalRenderer;default:return Utf8Renderer}}(params.opts?params.opts.type:void 0);return render(renderer.render,text,params)},server.toDataURL=function toDataURL(text,opts,cb){const params=checkParams(text,opts,cb);return render(getRendererFromType(params.opts.type).renderToDataURL,text,params)},server.toBuffer=function toBuffer(text,opts,cb){const params=checkParams(text,opts,cb);return render(getRendererFromType(params.opts.type).renderToBuffer,text,params)},server.toFile=function toFile(path,text,opts,cb){if("string"!=typeof path||"string"!=typeof text&&"object"!=typeof text)throw new Error("Invalid argument");if(arguments.length<3&&!canPromise())throw new Error("Too few arguments provided");const params=checkParams(text,opts,cb),type=params.opts.type||function getTypeFromFilename(path){return path.slice(2+(path.lastIndexOf(".")-1>>>0)).toLowerCase()}(path);return render(getRendererFromType(type).renderToFile.bind(null,path),text,params)},server.toFileStream=function toFileStream(stream,text,opts){if(arguments.length<2)throw new Error("Too few arguments provided");const params=checkParams(text,opts,stream.emit.bind(stream,"error"));render(getRendererFromType("png").renderToFileStream.bind(null,stream),text,params)},server}var QRCode=getDefaultExportFromCjs(function requireLib(){return hasRequiredLib?lib:(hasRequiredLib=1,lib=requireServer())}());const getDesTipoPag=tPag=>({"01":"Dinheiro","02":"Cheque","03":"Cartão de Crédito","04":"Cartão de Débito","05":"Cartão da Loja (Private Label), Crediário Digital, Outros Crediários",10:"Vale Alimentação",11:"Vale Refeição",12:"Vale Presente",13:"Vale Combustível",14:"Duplicata Mercantil",15:"Boleto Bancário",16:"Depósito Bancário",17:"Pagamento Instantâneo (PIX) - Dinâmico",18:"Transferência bancária, Carteira Digital",19:"Programa de fidelidade, Cashback, Crédito Virtual",20:"Pagamento Instantâneo (PIX) - Estático",21:"Crédito em Loja",22:"Pagamento Eletrônico não Informado - falha de hardware do sistema emissor",90:"Sem Pagamento",99:"Outros"}[tPag]||"Outros"),baseDir=path__default.default.dirname(require$$0$3.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&"SCRIPT"===document.currentScript.tagName.toUpperCase()&&document.currentScript.src||new URL("index.js",document.baseURI).href));class NFCEGerarDanfe{constructor(props){this.saveQRCode=async text=>{const filePath=path__default.default.resolve(baseDir,this.qrcodePath);try{await QRCode.toFile(`${filePath}/qrcode.png`,text,{color:{dark:"#000000",light:"#FFFFFF"},width:300})}catch(error){console.error("Erro ao gerar o QR code:",error),console.error(error.stack)}},this.getQRCodeBuffer=async text=>{try{return await QRCode.toBuffer(text,{color:{dark:"#000000",light:"#FFFFFF"},width:300})}catch(error){throw console.error("Erro ao gerar o QR code:",error),console.error(error.stack),new Error(`Erro ao gerar o QR code: ${error.message}`)}};const{data:data,chave:chave,outputPath:outputPath,pageWidth:pageWidth}=props;this.data=data,this.chave=chave.trim(),this.outputPath=outputPath,this.enviada=!1,this.qrcodePath=outputPath,this.documento=new ValidaCPFCNPJ,this.protNFe=data.protNFe;const nfeData=Array.isArray(data.NFe)?data.NFe[0]:data.NFe,{det:det,ide:ide,emit:emit,dest:dest,total:total,transp:transp,pag:pag,infAdic:infAdic}=nfeData.infNFe,infNFeSupl=nfeData.infNFeSupl;this.det=det,this.ide=ide,this.emit=emit,this.total=total,this.transp=transp,this.pag=pag,this.infAdic=infAdic,this.infNFeSupl=infNFeSupl,dest&&(this.dest=dest),this.protNFe?.infProt.nProt&&(this.enviada=!0),this.larguraPadrao=226.772,this.documentWidth=pageWidth||226.772;let itensLength=1;this.det instanceof Array&&(itensLength=this.det.length);const fontSize=function calculateFontSize(width){return.02646*Math.min(width)}(this.documentWidth);this.fontSize=fontSize,this.itemHeight=1.116*fontSize;const pageHeight=function calculateHeight(itemsLength,itemHeight){return 204.22975675056+itemsLength*itemHeight+5}(itensLength,this.itemHeight),fontPath=path__default.default.resolve(baseDir,"assets/fonts/ARIAL.TTF"),fontPathBold=path__default.default.resolve(baseDir,"assets/fonts/ARIALBD.TTF");this.doc=new PDFDocument__default.default({margins:{top:5.67,right:5.67,bottom:5.67,left:5.67},size:[this.documentWidth,pageHeight],bufferPages:!0,layout:"portrait"}),this.doc.registerFont("Arial",fontPath),this.doc.registerFont("Arial-bold",fontPathBold)}createDir(path){fs__default.default.existsSync(path)||fs__default.default.mkdirSync(path,{recursive:!0})}async generateBarcode(data){try{const barcode=(await bwipjs__default.default.toBuffer({bcid:"code128",text:data,scaleX:4,height:14,includetext:!1})).toString("base64"),barcodeDir=this.qrcodePath,barcodeFilePath=path__default.default.join(barcodeDir,"barcode.png");fs__default.default.writeFileSync(barcodeFilePath,Buffer.from(barcode,"base64"))}catch(err){return console.error("Erro ao gerar código de barras:",err),null}}centeredPos(texto){return(this.doc.page.width-this.doc.fontSize(this.fontSize).widthOfString(texto))/2}ajustarPosicao(posicaoOriginal,novaLargura){return posicaoOriginal*(novaLargura/this.larguraPadrao)}calculaPosicao(text){const{right:right,left:left}=this.doc.page.margins,[pageWidth]=this.doc.page.size,textWidth=this.doc.widthOfString(text);return Number(pageWidth)-textWidth-right-left}drawHeader(isFirstPage){this._buildHeader()}drawFooter(qrCodeBuffer){this._buildFooter(qrCodeBuffer)}_buildHeader(){const CNPJCPF=this.emit.CNPJCPF?.toString(),CNPJ=this.emit.CNPJ?.toString(),CPF=this.emit.CPF?.toString(),documento=this.documento.mascaraCnpjCpf(CNPJCPF||CNPJ||CPF||""),identificationJoined=`${this.emit.enderEmit.xLgr}, ${this.emit.enderEmit.nro}, ${this.emit.enderEmit.xBairro}, ${this.emit.enderEmit.UF}`;(()=>{const centeredPosEmit=this.centeredPos(`CNPJ: ${documento} ${this.emit.xNome}`),centeredPosEnd=this.centeredPos(identificationJoined),centeredPosText=this.centeredPos("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica");this.doc.font("Arial").fontSize(this.fontSize).text(`CNPJ: ${documento} `,centeredPosEmit,2,{lineBreak:!1}).font("Arial-bold").text(this.emit.xNome).fontSize(this.fontSize).font("Arial").text(identificationJoined,centeredPosEnd).text("Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica",centeredPosText)})()}_buildProdutos(){const{right:right,left:left,top:top}=this.doc.page.margins,tableWidth=this.documentWidth-left-right,startX=left,tableTop=this.doc.y+top,columnWidths={codigo:tableWidth*.15,descricao:tableWidth*.4,qtdeUn:tableWidth*.15,unit:tableWidth*.15,total:tableWidth*.15},row=(top,item)=>{const quant=parseFloat(String(item.prod.qCom||item.prod.qTrib)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),valUnit=parseFloat(String(item.prod.vUnCom||item.prod.vUnTrib||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2}),valLiq=parseFloat(String(item.prod.vProd||"0")).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:2});let x=startX;this.doc.font("Arial").fontSize(this.fontSize).text(item.prod.cProd,x,top,{width:columnWidths.codigo}),x+=columnWidths.codigo+0,this.doc.text(item.prod.xProd.slice(0,24),x,top,{width:columnWidths.descricao}),x+=columnWidths.descricao+0,this.doc.text(`${quant} ${item.prod.uCom}`,x,top,{width:columnWidths.qtdeUn,align:"right"}),x+=columnWidths.qtdeUn+0,this.doc.text(valUnit,x,top,{width:columnWidths.unit,align:"right"}),x+=columnWidths.unit+0,this.doc.text(valLiq,x,top,{width:columnWidths.total,align:"right"})};(top=>{let x=startX;this.doc.font("Arial-bold").fontSize(this.fontSize).text("Código",x,top,{width:columnWidths.codigo}),x+=columnWidths.codigo+0,this.doc.text("Descrição",x,top,{width:columnWidths.descricao}),x+=columnWidths.descricao+0,this.doc.text("Qtde",x,top,{width:columnWidths.qtdeUn,align:"right"}),x+=columnWidths.qtdeUn+0,this.doc.text("Unit",x,top,{width:columnWidths.unit,align:"right"}),x+=columnWidths.unit+0,this.doc.text("Total",x,top,{width:columnWidths.total,align:"right"})})(tableTop);let y=tableTop+this.itemHeight;this.det instanceof Array?this.det.forEach((prod=>{row(y,prod),y+=this.itemHeight})):row(y,this.det)}_buildTotais(){let tableTop=this.doc.y+5;const quantidadeTotalDeItens=Array.isArray(this.det)?this.det.length:1;let valTotal=0,acrescimo=0,desconto=0;Array.isArray(this.det)?(valTotal=this.det.reduce(((sum,item)=>sum+parseFloat(item.prod.vProd)),0),acrescimo=this.det.reduce(((sum,item)=>sum+(parseFloat(item.prod.vFrete||"0")+parseFloat(item.prod.vSeg||"0")+parseFloat(item.prod.vOutro||"0"))),0),desconto=this.det.reduce(((sum,item)=>sum+parseFloat(item.prod.vDesc||"0")),0)):(valTotal=parseFloat(this.det.prod.vProd),acrescimo=parseFloat(this.det.prod.vFrete||"0")+parseFloat(this.det.prod.vSeg||"0")+parseFloat(this.det.prod.vOutro||"0"),desconto=parseFloat(this.det.prod.vDesc||"0"));const valorTotal=valTotal.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),acrescimoTotal=acrescimo.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3}),descontoTotal=desconto.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});if(this.doc.text("Qtd. total de itens",2,tableTop),this.doc.text(String(quantidadeTotalDeItens),this.calculaPosicao(String(quantidadeTotalDeItens)),tableTop,{align:"right"}),tableTop+=this.itemHeight,this.doc.text("Valor total R$",2,tableTop),this.doc.text(valorTotal,this.calculaPosicao(valorTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight,desconto>0&&(this.doc.text("Desconto R$",2,tableTop),this.doc.text(descontoTotal,this.calculaPosicao(descontoTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight),acrescimo>0&&(this.doc.text("Acréscimo R$",2,tableTop),this.doc.text(acrescimoTotal,this.calculaPosicao(acrescimoTotal),tableTop,{align:"right"}),tableTop+=this.itemHeight),desconto>0||acrescimo>0){const totalPagar=parseFloat(String(valTotal+acrescimo-desconto)).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.font("Arial-bold").text("Valor a Pagar R$",2,tableTop),this.doc.text(totalPagar,this.calculaPosicao(totalPagar),tableTop,{align:"right"})}tableTop+=this.itemHeight+2,this.doc.font("Arial").text("FORMA PAGAMENTO",2,tableTop);let topTiposPag=tableTop;if(Array.isArray(this.pag.detPag))for(let pagto of this.pag.detPag)pagto.xPag||(pagto.xPag=getDesTipoPag(pagto.tPag)),this.doc.text(pagto.xPag||"Não informado",2,topTiposPag+this.itemHeight),topTiposPag+=this.itemHeight;else this.pag.detPag.xPag||(this.pag.detPag.xPag=getDesTipoPag(this.pag.detPag.tPag)),this.doc.text(this.pag.detPag.xPag||"Não informado",2,topTiposPag+this.itemHeight);this.doc.text("VALOR PAGO R$",this.calculaPosicao("VALOR PAGO R$"),tableTop,{align:"right"});let topValPags=tableTop;if(Array.isArray(this.pag.detPag))for(let pagto of this.pag.detPag){const val=parseFloat(pagto.vPag).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text(val,this.calculaPosicao(val),topValPags+this.itemHeight,{align:"right"}),topValPags+=this.itemHeight}else{const val=parseFloat(this.pag.detPag.vPag).toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text(val,this.calculaPosicao(val),topValPags+this.itemHeight,{align:"right"})}tableTop=topValPags,tableTop+=2*this.itemHeight;let valTroco=0;valTroco=Array.isArray(this.pag.detPag)?this.pag.detPag.reduce(((sum,item)=>sum+parseFloat(item.vTroco||"0")),0):parseFloat(this.pag.detPag.vTroco||"0");const troco=valTroco.toLocaleString("pt-BR",{minimumFractionDigits:2,maximumFractionDigits:3});this.doc.text("Troco R$",2,tableTop),this.doc.text(troco,this.calculaPosicao(troco),tableTop,{align:"right"})}_buildFooter(qrCodeBuffer){let tableTop=this.doc.y+5;this.doc.font("Arial-bold").text("Consulte pela Chave de Acesso em",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.font("Arial").text(this.infNFeSupl?.urlChave||"",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.text(this.protNFe?.infProt.chNFe||"",0,tableTop,{align:"center"}),tableTop+=this.itemHeight,this.doc.image(qrCodeBuffer,2,tableTop,{width:70.87,height:70.87}),tableTop+=4;let topBeforeQrCode=tableTop;const CNPJCPF=this.documento.mascaraCnpjCpf(this.dest?.CNPJCPF||this.dest?.CNPJ||this.dest?.CPF||this.dest?.idEstrangeiro||""),xNome=this.dest?.xNome??"Sem cliente identificado",xLgr=this.dest?.enderDest?.xLgr??"",nro=this.dest?.enderDest?.nro??"",xBairro=this.dest?.enderDest?.xBairro??null,xMun=this.dest?.enderDest?.xMun??"",UF=this.dest?.enderDest?.UF??"",enderecoStr=[xLgr&&`${xLgr}`,nro&&`${nro}`,xBairro&&`bairro: ${xBairro}`,xMun&&`${xMun}`,UF&&`${UF}`].filter(Boolean).join(", ");CNPJCPF&&""!==CNPJCPF?(this.doc.font("Arial-bold").text(`CONSUMIDOR - DOC ${CNPJCPF}`,75,tableTop,{align:"left",lineGap:1,continued:!0}).font("Arial").text(` - ${xNome} -`,{lineGap:1,continued:!0}).text(enderecoStr),tableTop=this.doc.y+4):(this.doc.text("CONSUMIDOR NÃO IDENTIFICADO",75,tableTop,{align:"left"}),tableTop=this.doc.y+4);const dtaEmi=format(parseISO(this.ide.dhEmi),"dd/MM/yyyy HH:mm:ss");let dtaAut=format(new Date,"dd/MM/yyyy HH:mm:ss");if(this.protNFe?.infProt.dhRecbto){dtaAut=format(parseISO(this.protNFe?.infProt.dhRecbto),"dd/MM/yyyy HH:mm:ss")}this.doc.font("Arial-bold").text(`NCF-e nº ${this.ide.nNF} Série ${this.ide.serie} ${dtaEmi}`,75,tableTop,{align:"left",lineGap:1}).text("Protocolo de autorização: ",{continued:!0,lineGap:1}).font("Arial").text(this.protNFe?.infProt.nProt||"123").font("Arial-bold").text("Data de autorização ",{continued:!0,lineGap:1}).font("Arial").text(dtaAut),tableTop=this.doc.y+20,topBeforeQrCode+=70.87,this.doc.text("Tributos Totais Incidentes (Lei Federal 12.741/2012): R$ 22,90",0,topBeforeQrCode,{align:"center"})}async generatePDF(exibirMarcaDaguaDanfe){try{this.exibirMarcaDaguaDanfe=exibirMarcaDaguaDanfe||!0;const qrCodeBuffer=await this.getQRCodeBuffer(this.infNFeSupl?.qrCode||"");return this.doc.pipe(fs__default.default.createWriteStream(this.outputPath)),this.drawHeader(!0),this._buildProdutos(),this._buildTotais(),this.drawFooter(qrCodeBuffer),this.doc.end(),{message:` DANFE Gerada em '${this.outputPath}'`,success:!0}}catch(error){throw new Error(`Erro ao gerar DANFE: ${error.message}`)}}}exports.default=class NFeWizard{constructor(){if(this.certificate=null,this.cert_key=null,this.config={},this.certificate=null,this.cert_key=null,this.environment={},this.utility={},this.xmlBuilder={},this.axios={},new.target)return new Proxy(this,{get(target,prop,receiver){const origMethod=target[prop];return"function"==typeof origMethod?async function(...args){return"NFE_LoadEnvironment"===prop||await target.validateEnvironment(prop),origMethod.apply(target,args)}:Reflect.get(target,prop,receiver)}})}async NFE_LoadEnvironment({config:config}){try{this.config=config,this.environment=new Environment(this.config);const{axios:axios}=await this.environment.loadEnvironment();this.axios=axios,this.utility=new Utility(this.environment),this.xmlBuilder=new XmlBuilder(this.environment),console.log("==================================="),console.log("Biblioteca Inicializada com Sucesso"),console.log("===================================")}catch(error){throw console.log(error),new Error(`Erro ao inicializar a lib: ${error}`)}}async NFE_ConsultaStatusServico(){try{const nfeStatusServico=new NFEStatusServico$1(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeStatusServico.Exec();return console.log("Retorno NFE_ConsultaStatusServico"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_ConsultaStatusServico: ${error.message}`)}}async NFE_ConsultaProtocolo(chave){try{const nfeConsultaProtocolo=new NFEConsultaProtocolo$1(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeConsultaProtocolo.Exec(chave);return console.log("Retorno NFE_ConsultaProtocolo"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_ConsultaProtocolo: ${error.message}`)}}async NFE_RecepcaoEvento(evento){try{const nfeRecepcaoEvento=new NFERecepcaoEvento(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeRecepcaoEvento.Exec(evento);return console.log("Retorno NFE_RecepcaoEvento"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_RecepcaoEvento: ${error.message}`)}}async NFE_EventoPrevioDeEmissaoEmContingencia(evento){try{const nfeEpec=new NFEEpec(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeEpec.Exec(evento);return console.log("Retorno NFEEpec"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFEEpec: ${error.message}`)}}async NFE_Cancelamento(evento){try{const nfeCancelamento=new NFECancelamento(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCancelamento.Exec(evento);return console.log("Retorno NFE_Cancelamento"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_Cancelamento: ${error.message}`)}}async NFE_CienciaDaOperacao(evento){try{const nfeCienciaDaOperacao=new NFECienciaDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCienciaDaOperacao.Exec(evento);return console.log("Retorno NFE_CienciaDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_CienciaDaOperacao: ${error.message}`)}}async NFE_ConfirmacaoDaOperacao(evento){try{const nfeConfirmacaoDaOperacao=new NFEConfirmacaoDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeConfirmacaoDaOperacao.Exec(evento);return console.log("Retorno NFE_ConfirmacaoDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_ConfirmacaoDaOperacao: ${error.message}`)}}async NFE_OperacaoNaoRealizada(evento){try{const nfeOperacaoNaoRealizada=new NFEOperacaoNaoRealizada(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeOperacaoNaoRealizada.Exec(evento);return console.log("Retorno NFE_OperacaoNaoRealizada"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_OperacaoNaoRealizada: ${error.message}`)}}async NFE_CartaDeCorrecao(evento){try{const nfeCartaDeCorrecao=new NFECartaDeCorrecao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeCartaDeCorrecao.Exec(evento);return console.log("Retorno NFE_CartaDeCorrecao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_CartaDeCorrecao: ${error.message}`)}}async NFE_DesconhecimentoDaOperacao(evento){try{const nfeDesconhecimentoDaOperacao=new NFEDesconhecimentoDaOperacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await nfeDesconhecimentoDaOperacao.Exec(evento);return console.log("Retorno NFE_DesconhecimentoDaOperacao"),console.table(response.xMotivos),console.log("==================================="),response.response}catch(error){throw new Error(`NFE_DesconhecimentoDaOperacao: ${error.message}`)}}async NFE_DistribuicaoDFe(data){try{const distribuicaoDFe=new NFEDistribuicaoDFe(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFe"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFe: ${error.message}`)}}async NFE_DistribuicaoDFePorUltNSU(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorUltNSU(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorUltNSU"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorUltNSU: ${error.message}`)}}async NFE_DistribuicaoDFePorNSU(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorNSU(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorNSU"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorNSU: ${error.message}`)}}async NFE_DistribuicaoDFePorChave(data){try{const distribuicaoDFe=new NFEDistribuicaoDFePorChave(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_DistribuicaoDFePorChave"),console.log(` ${response.xMotivo}`),console.log("==================================="),response.data}catch(error){throw new Error(`NFE_DistribuicaoDFePorChave: ${error.message}`)}}async NFE_Autorizacao(data){try{const distribuicaoDFe=new NFEAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_Autorizacao"),console.table(response.xMotivo),console.log("==================================="),response.xmls}catch(error){throw new Error(`NFE_Autorizacao: ${error.message}`)}}async NFCE_Autorizacao(data){try{const distribuicaoDFe=new NFCEAutorizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFCE_Autorizacao"),console.table(response.xMotivo),console.log("==================================="),response.xmls}catch(error){throw new Error(`NFCE_Autorizacao: ${error.message}`)}}async NFE_Inutilizacao(data){try{const distribuicaoDFe=new NFEInutilizacao(this.environment,this.utility,this.xmlBuilder,this.axios),response=await distribuicaoDFe.Exec(data);return console.log("Retorno NFE_Inutilizacao"),console.log(` ${response.xMotivo}`),console.log("==================================="),response}catch(error){throw new Error(`NFE_Inutilizacao: ${error.message}`)}}async NFE_GerarDanfe(data){try{const{dfe:{exibirMarcaDaguaDanfe:exibirMarcaDaguaDanfe}}=this.environment.getConfig(),distribuicaoDFe=new NFEGerarDanfe(data),response=await distribuicaoDFe.generatePDF(exibirMarcaDaguaDanfe);return console.log("Retorno NFE_GerarDanfe"),console.log(response.message),console.log("==================================="),response}catch(error){throw new Error(`NFE_GerarDanfe: ${error.message}`)}}async NFCE_GerarDanfe(data){try{const{dfe:{exibirMarcaDaguaDanfe:exibirMarcaDaguaDanfe}}=this.environment.getConfig(),distribuicaoDFe=new NFCEGerarDanfe(data),response=await distribuicaoDFe.generatePDF(exibirMarcaDaguaDanfe);return console.log("Retorno NFCE_GerarDanfe"),console.log(response.message),console.log("==================================="),response}catch(error){throw new Error(`NFCE_GerarDanfe: ${error.message}`)}}NFE_EnviaEmail(mailParams){try{const response=new MailController(this.environment).sendEmail(mailParams);return console.log("Retorno NFE_EnviaEmail"),console.log("E-mail enviado com sucesso."),console.log("==================================="),response}catch(error){throw new Error(`NFE_EnviaEmail: ${error.message}`)}}async validateEnvironment(prop){if(!this.environment.isLoaded)throw new Error(`Ambiente não carregado. Por favor, carregue o ambiente utilizando o método "NFE_LoadEnvironment({ sua_configuracao })" antes de chamar o método ${prop}.`)}},exports.mountCOFINS=mountCOFINS,exports.mountICMS=mountICMS,exports.mountPIS=mountPIS;//# sourceMappingURL=index.js.map