@softtynet/zplus-worker 1.0.23 → 1.0.24
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/cli.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -224,7 +224,7 @@ ${S}`),O.pop(),`{${P}}`}case"number":return isFinite(m)?String(m):t?t(m):"null";
|
|
|
224
224
|
`:`
|
|
225
225
|
`),H=nFn.bind(null,{[r_t]:"",[o_t]:i,[s_t]:K,[a_t]:Ibe,[wbe]:N,[c_t]:W}),ee="";h!==null&&(y===void 0?ee=H(h):ee=H(Object.assign({},h,{name:y})));let Ae=s instanceof Function?s:s?h_t:SFn,ue=Ae().indexOf(":")+1;if(S&&!m)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(_&&typeof _!="function")throw Error(`Unknown mixin type "${typeof _}" - expected "function"`);if(R&&typeof R!="string")throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`);XWn(b,m,S);let se=f_t(m,S);typeof o.emit=="function"&&o.emit("message",{code:"PINO_CONFIG",config:{levels:se,messageKey:c,errorKey:l}}),ZWn(O);let de=QWn(O);return Object.assign(t,{levels:se,[mFn]:de,[gFn]:S,[lFn]:o,[sFn]:Ae,[cFn]:ue,[a_t]:Ibe,[wbe]:N,[s_t]:K,[pFn]:q,[fFn]:U,[dFn]:c,[hFn]:l,[yFn]:p,[MFn]:p?`,${JSON.stringify(p)}:{`:"",[o_t]:i,[bFn]:_,[_Fn]:M,[r_t]:ee,[c_t]:W,[OFn]:T,silent:rFn,onChild:C,[AFn]:R}),Object.setPrototypeOf(t,$Wn()),YWn(t),t[uFn](b),t}fp.exports=Pbe;fp.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=i_t(e.dest||process.stdout.fd),n_t(e)):n_t({dest:i_t(e),minLength:0});fp.exports.transport=ube();fp.exports.multistream=t_t();fp.exports.levels=f_t();fp.exports.stdSerializers=PFn;fp.exports.stdTimeFunctions=Object.assign({},u_t);fp.exports.symbols=p_t;fp.exports.version=oFn;fp.exports.default=Pbe;fp.exports.pino=Pbe});var b_t,QN,zbe=me(()=>{b_t=ke(y_t(),1),QN=(0,b_t.default)({timestamp:()=>`,"time":"${new Date().toJSON()}"`})});var zFn,xN,aI,m_t,CN,d2t,RFn,F2,g_t,Xgt,h2t,O_t,M_t,oye,jgt,Ygt,IH,__t,tm,Fc=me(()=>{ao();gOt();jh();zbe();ode();({version:zFn}=W9),xN="https://web.whatsapp.com",aI="CB:",m_t="TAG:",CN=10080*60,d2t="Noise_XX_25519_AESGCM_SHA256\0\0\0\0",RFn=3,F2=Buffer.from([5]),g_t=Buffer.from([87,65,6,RFn]),Xgt=/https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g,h2t={SERIAL:0},O_t=[Je.Message.HistorySyncNotification.HistorySyncType.INITIAL_BOOTSTRAP,Je.Message.HistorySyncNotification.HistorySyncType.PUSH_NAME,Je.Message.HistorySyncNotification.HistorySyncType.RECENT,Je.Message.HistorySyncNotification.HistorySyncType.FULL,Je.Message.HistorySyncNotification.HistorySyncType.ON_DEMAND],M_t={version:zFn,browser:gft.ubuntu("Chrome"),waWebSocketUrl:"wss://web.whatsapp.com/ws/chat",connectTimeoutMs:2e4,keepAliveIntervalMs:3e4,logger:QN.child({class:"baileys"}),emitOwnEvents:!0,defaultQueryTimeoutMs:6e4,customUploadHosts:[],retryRequestDelayMs:250,maxMsgRetryCount:5,fireInitQueries:!0,auth:void 0,markOnlineOnConnect:!0,syncFullHistory:!1,patchMessageBeforeSending:e=>e,shouldSyncHistoryMessage:()=>!0,shouldIgnoreJid:()=>!1,linkPreviewImageThumbnailWidth:192,transactionOpts:{maxCommitRetries:10,delayBetweenTriesMs:3e3},generateHighQualityLinkPreview:!1,options:{},appStateMacVerification:{patch:!1,snapshot:!1},countryCode:"US",getMessage:async()=>{},cachedGroupMetadata:async()=>{},makeSignalRepository:mOt},oye={image:"/mms/image",video:"/mms/video",document:"/mms/document",audio:"/mms/audio",sticker:"/mms/image","thumbnail-link":"/mms/image","product-catalog-image":"/product/image","md-app-state":"","md-msg-hist":"/mms/md-app-state"},jgt={audio:"Audio",document:"Document",gif:"Video",image:"Image",ppic:"",product:"Image",ptt:"Audio",sticker:"Image",video:"Video","thumbnail-document":"Document Thumbnail","thumbnail-image":"Image Thumbnail","thumbnail-video":"Video Thumbnail","thumbnail-link":"Link Thumbnail","md-msg-hist":"History","md-app-state":"App State","product-catalog-image":"","payment-bg-image":"Payment Background",ptv:"Video"},Ygt=Object.keys(oye),IH=5,__t=30,tm={SIGNAL_STORE:300,MSG_RETRY:3600,CALL_OFFER:300,USER_DEVICES:300}});async function xbe(e,t,r=3e4){return e={...e,images:e.images?await xFn(e.images,t,r):e.images},e}var A_t,S_t,wH,E_t,T_t,v_t,I_t,w_t,Rbe,ZN,xFn,kFn,CFn,P_t=me(()=>{A_t=ke(cc(),1),S_t=require("crypto"),wH=require("fs"),E_t=require("os"),T_t=require("path");Cr();jc();lO();v_t=e=>{let t=et(e,"product_catalog"),r=Yn(t,"product").map(ZN),o=et(t,"paging");return{products:r,nextPageCursor:o?ri(o,"after"):void 0}},I_t=e=>{let t=et(e,"collections");return{collections:Yn(t,"collection").map(o=>{let n=ri(o,"id"),a=ri(o,"name"),i=Yn(o,"product").map(ZN);return{id:n,name:a,products:i,status:CFn(o)}})}},w_t=e=>{let t=et(e,"order"),r=Yn(t,"product").map(a=>{let i=et(a,"image");return{id:ri(a,"id"),name:ri(a,"name"),imageUrl:ri(i,"url"),price:+ri(a,"price"),currency:ri(a,"currency"),quantity:+ri(a,"quantity")}}),o=et(t,"price");return{price:{total:+ri(o,"total"),currency:ri(o,"currency")},products:r}},Rbe=(e,t)=>{let r={},o=[];return typeof e<"u"&&o.push({tag:"id",attrs:{},content:Buffer.from(e)}),typeof t.name<"u"&&o.push({tag:"name",attrs:{},content:Buffer.from(t.name)}),typeof t.description<"u"&&o.push({tag:"description",attrs:{},content:Buffer.from(t.description)}),typeof t.retailerId<"u"&&o.push({tag:"retailer_id",attrs:{},content:Buffer.from(t.retailerId)}),t.images.length&&o.push({tag:"media",attrs:{},content:t.images.map(a=>{if(!("url"in a))throw new A_t.Boom("Expected img for product to already be uploaded",{statusCode:400});return{tag:"image",attrs:{},content:[{tag:"url",attrs:{},content:Buffer.from(a.url.toString())}]}})}),typeof t.price<"u"&&o.push({tag:"price",attrs:{},content:Buffer.from(t.price.toString())}),typeof t.currency<"u"&&o.push({tag:"currency",attrs:{},content:Buffer.from(t.currency)}),"originCountryCode"in t&&(typeof t.originCountryCode>"u"?r.compliance_category="COUNTRY_ORIGIN_EXEMPT":o.push({tag:"compliance_info",attrs:{},content:[{tag:"country_code_origin",attrs:{},content:Buffer.from(t.originCountryCode)}]})),typeof t.isHidden<"u"&&(r.is_hidden=t.isHidden.toString()),{tag:"product",attrs:r,content:o}},ZN=e=>{let t=e.attrs.is_hidden==="true",r=ri(e,"id"),o=et(e,"media"),n=et(e,"status_info");return{id:r,imageUrls:kFn(o),reviewStatus:{whatsapp:ri(n,"status")},availability:"in stock",name:ri(e,"name"),retailerId:ri(e,"retailer_id"),url:ri(e,"url"),description:ri(e,"description"),price:+ri(e,"price"),currency:ri(e,"currency"),isHidden:t}};xFn=async(e,t,r=3e4)=>await Promise.all(e.map(async n=>{if("url"in n){let h=n.url.toString();if(h.includes(".whatsapp.net"))return{url:h}}let{stream:a}=await PN(n),i=(0,S_t.createHash)("sha256"),s=(0,T_t.join)((0,E_t.tmpdir)(),"img"+ks()),c=(0,wH.createWriteStream)(s);for await(let h of a)i.update(h),c.write(h);let l=i.digest("base64"),{directPath:p}=await t(s,{mediaType:"product-catalog-image",fileEncSha256B64:l,timeoutMs:r});return await wH.promises.unlink(s).catch(h=>console.log("Error deleting temp file ",h)),{url:zN(p)}})),kFn=e=>{let t=et(e,"image");return{requested:ri(t,"request_image_url"),original:ri(t,"original_image_url")}},CFn=e=>{let t=et(e,"status_info");return{status:ri(t,"status"),canAppeal:ri(t,"can_appeal")==="true"}}});var PH,z_t=me(()=>{Cr();PH=class{constructor(){this.name="devices"}getQueryElement(){return{tag:"devices",attrs:{version:"2"}}}getUserElement(){return null}parser(t){let r=[],o;if(t.tag==="devices"){tp(t);let n=et(t,"device-list"),a=et(t,"key-index-list");if(Array.isArray(n?.content))for(let{tag:i,attrs:s}of n.content){let c=+s.id,l=+s["key-index"];i==="device"&&r.push({id:c,keyIndex:l,isHosted:!!(s.is_hosted&&s.is_hosted==="true")})}a?.tag==="key-index-list"&&(o={timestamp:+a.attrs.ts,signedKeyIndex:a?.content,expectedTimestamp:a.attrs.expected_ts?+a.attrs.expected_ts:void 0})}return{deviceList:r,keyIndex:o}}}});var fO,e6=me(()=>{fO=class{withId(t){return this.id=t,this}withLid(t){return this.lid=t,this}withPhone(t){return this.phone=t,this}withType(t){return this.type=t,this}withPersonaId(t){return this.personaId=t,this}}});var zH,R_t=me(()=>{Cr();e6();zH=class{constructor(){this.name="contact"}getQueryElement(){return{tag:"contact",attrs:{}}}getUserElement(t){return{tag:"contact",attrs:{},content:t.phone}}parser(t){return t.tag==="contact"?(tp(t),t?.attrs?.type==="in"):!1}}});var RH,x_t=me(()=>{Cr();RH=class{constructor(){this.name="status"}getQueryElement(){return{tag:"status",attrs:{}}}getUserElement(){return null}parser(t){if(t.tag==="status"){tp(t);let r=t?.content?.toString()??null,o=new Date(+(t?.attrs.t||0)*1e3);return r?typeof r=="string"&&r.length===0&&(r=null):t.attrs?.code&&+t.attrs.code==401?r="":r=null,{status:r,setAt:o}}}}});var xH,k_t=me(()=>{Cr();xH=class{constructor(){this.name="disappearing_mode"}getQueryElement(){return{tag:"disappearing_mode",attrs:{}}}getUserElement(){return null}parser(t){if(t.tag==="disappearing_mode"){tp(t);let r=+t?.attrs.duration,o=new Date(+(t?.attrs.t||0)*1e3);return{duration:r,setAt:o}}}}});var kbe=me(()=>{z_t();R_t();x_t();k_t()});var kH,C_t=me(()=>{Cr();e6();kH=class{constructor(){this.name="bot"}getQueryElement(){return{tag:"bot",attrs:{},content:[{tag:"profile",attrs:{v:"1"}}]}}getUserElement(t){return{tag:"bot",attrs:{},content:[{tag:"profile",attrs:{persona_id:t.personaId}}]}}parser(t){let r=et(t,"bot"),o=et(r,"profile"),n=et(o,"commands"),a=et(o,"prompts"),i=[],s=[];for(let c of Yn(n,"command"))i.push({name:ri(c,"name"),description:ri(c,"description")});for(let c of Yn(a,"prompt"))s.push(`${ri(c,"emoji")} ${ri(c,"text")}`);return{isDefault:!!et(o,"default"),jid:t.attrs.jid,name:ri(o,"name"),attributes:ri(o,"attributes"),description:ri(o,"description"),category:ri(o,"category"),personaId:o.attrs.persona_id,commandsDescription:ri(n,"description"),commands:i,prompts:s}}}});var CH,N_t=me(()=>{CH=class{constructor(){this.name="lid"}getQueryElement(){return{tag:"lid",attrs:{}}}getUserElement(){return null}parser(t){return t.tag==="lid"?t.attrs.val:null}}});var dO,D_t=me(()=>{Cr();C_t();N_t();kbe();e6();dO=class{constructor(){this.protocols=[],this.users=[],this.context="interactive",this.mode="query"}withMode(t){return this.mode=t,this}withContext(t){return this.context=t,this}withUser(t){return this.users.push(t),this}parseUSyncQueryResult(t){if(t.attrs.type!=="result")return;let r=Object.fromEntries(this.protocols.map(i=>[i.name,i.parser])),o={list:[],sideList:[]},n=et(t,"usync"),a=et(n,"list");return Array.isArray(a?.content)&&typeof a<"u"&&(o.list=a.content.map(i=>{let s=i?.attrs.jid;return{...Array.isArray(i?.content)?Object.fromEntries(i.content.map(l=>{let p=l.tag,h=r[p];return h?[p,h(l)]:[p,null]}).filter(([,l])=>l!==null)):{},id:s}})),o}withDeviceProtocol(){return this.protocols.push(new PH),this}withContactProtocol(){return this.protocols.push(new zH),this}withStatusProtocol(){return this.protocols.push(new RH),this}withDisappearingModeProtocol(){return this.protocols.push(new xH),this}withBotProfileProtocol(){return this.protocols.push(new kH),this}withLIDProtocol(){return this.protocols.push(new CH),this}}});var t6=me(()=>{kbe();D_t();e6()});var L_t,NH,Cbe=me(()=>{L_t=require("events"),NH=class extends L_t.EventEmitter{constructor(t,r){super(),this.url=t,this.config=r,this.setMaxListeners(0)}}});var DH,q_t=me(()=>{Uw();Fc();Cbe();DH=class extends NH{constructor(){super(...arguments),this.socket=null}get isOpen(){return this.socket?.readyState===Vs.OPEN}get isClosed(){return this.socket===null||this.socket?.readyState===Vs.CLOSED}get isClosing(){return this.socket===null||this.socket?.readyState===Vs.CLOSING}get isConnecting(){return this.socket?.readyState===Vs.CONNECTING}async connect(){if(this.socket)return;this.socket=new Vs(this.url,{origin:xN,headers:this.config.options?.headers,handshakeTimeout:this.config.connectTimeoutMs,timeout:this.config.connectTimeoutMs,agent:this.config.agent}),this.socket.setMaxListeners(0);let t=["close","error","upgrade","message","open","ping","pong","unexpected-response"];for(let r of t)this.socket?.on(r,(...o)=>this.emit(r,...o))}async close(){this.socket&&(this.socket.close(),this.socket=null)}send(t,r){return this.socket?.send(t,r),!!this.socket}}});var B_t=me(()=>{Cbe();q_t()});function Nbe(e){return t=>{e(new Ll.Boom(`WebSocket Error (${t?.message})`,{statusCode:Pft(t),data:t}))}}var Ll,LH,U_t,W_t,F_t,j_t=me(()=>{Ll=ke(cc(),1),LH=require("crypto"),U_t=require("url"),W_t=require("util");ao();Fc();k0();jh();Cr();B_t();F_t=e=>{let{waWebSocketUrl:t,connectTimeoutMs:r,logger:o,keepAliveIntervalMs:n,browser:a,auth:i,printQRInTerminal:s,defaultQueryTimeoutMs:c,transactionOpts:l,qrTimeout:p,makeSignalRepository:h}=e;s&&console.warn("\u26A0\uFE0F The printQRInTerminal option has been deprecated. You will no longer receive QR codes in the terminal automatically. Please listen to the connection.update event yourself and handle the QR your way. You can remove this message by removing this opttion. This message will be removed in a future version.");let y=typeof t=="string"?new U_t.URL(t):t;if(e.mobile||y.protocol==="tcp:")throw new Ll.Boom("Mobile API is not supported anymore",{statusCode:ba.loggedOut});y.protocol==="wss"&&i?.creds?.routingInfo&&y.searchParams.append("ED",i.creds.routingInfo.toString("base64url"));let b=new DH(y,e);b.connect();let m=nOt(o),O=Va.generateKeyPair(),_=p2t({keyPair:O,NOISE_HEADER:g_t,logger:o,routingInfo:i?.creds?.routingInfo}),{creds:M}=i,S=j2t(i.keys,o,l),v=h({creds:M,keys:S}),T,w=1,P,C,R=!1,N=Tft(),W=()=>`${N}${w++}`,k=(0,W_t.promisify)(b.send),K=async F=>{if(!b.isOpen)throw new Ll.Boom("Connection Closed",{statusCode:ba.connectionClosed});let X=_.encodeFrame(F);await BC(r,async(ie,J)=>{try{await k.call(b,X),ie()}catch(Y){J(Y)}})},U=F=>{o.level==="trace"&&o.trace({xml:qC(F),msg:"xml send"});let X=sft(F);return K(X)},q=(F,X)=>{o.error({err:F},`unexpected error in '${X}'`)},H=async F=>{if(!b.isOpen)throw new Ll.Boom("Connection Closed",{statusCode:ba.connectionClosed});let X,ie,J=BC(r,(Y,le)=>{X=Y,ie=Nbe(le),b.on("frame",X),b.on("close",ie),b.on("error",ie)}).finally(()=>{b.off("frame",X),b.off("close",ie),b.off("error",ie)});return F&&K(F).catch(ie),J},ee=async(F,X=c)=>{let ie,J;try{return await BC(X,(le,ye)=>{ie=le,J=fe=>{ye(fe||new Ll.Boom("Connection Closed",{statusCode:ba.connectionClosed}))},b.on(`TAG:${F}`,ie),b.on("close",J),b.off("error",J)})}finally{b.off(`TAG:${F}`,ie),b.off("close",J),b.off("error",J)}},Ae=async(F,X)=>{F.attrs.id||(F.attrs.id=W());let ie=F.attrs.id,[J]=await Promise.all([ee(ie,X),U(F)]);return"tag"in J&&tp(J),J},ue=async()=>{let F={clientHello:{ephemeral:O.public}};F=Je.HandshakeMessage.fromObject(F),o.info({browser:a,helloMsg:F},"connected to WA");let X=Je.HandshakeMessage.encode(F).finish(),ie=await H(X),J=Je.HandshakeMessage.decode(ie);o.trace({handshake:J},"handshake recv from WA");let Y=await _.processHandshake(J,M.noiseKey),le;M.me?(le=o2t(M.me.id,e),o.info({node:le},"logging in...")):(le=a2t(M,e),o.info({node:le},"not logged in, attempting registration..."));let ye=_.encrypt(Je.ClientPayload.encode(le).finish());await K(Je.HandshakeMessage.encode({clientFinish:{static:Y,payload:ye}}).finish()),_.finishInit(),je()},se=async()=>{let F=await Ae({tag:"iq",attrs:{id:W(),xmlns:"encrypt",type:"get",to:Jn},content:[{tag:"count",attrs:{}}]});return+et(F,"count").attrs.value},de=async(F=__t)=>{await S.transaction(async()=>{o.info({count:F},"uploading pre-keys");let{update:X,node:ie}=await t2t({creds:M,keys:S},F);await Ae(ie),m.emit("creds.update",X),o.info({count:F},"uploaded pre-keys")})},Oe=async()=>{let F=await se();o.info(`${F} pre-keys found on server`),F<=IH&&await de()},Te=F=>{_.decodeFrame(F,X=>{T=new Date;let ie=!1;if(ie=b.emit("frame",X),!(X instanceof Uint8Array)){let J=X.attrs.id;o.level==="trace"&&o.trace({xml:qC(X),msg:"recv xml"}),ie=b.emit(`${m_t}${J}`,X)||ie;let Y=X.tag,le=X.attrs||{},ye=Array.isArray(X.content)?X.content[0]?.tag:"";for(let fe of Object.keys(le))ie=b.emit(`${aI}${Y},${fe}:${le[fe]},${ye}`,X)||ie,ie=b.emit(`${aI}${Y},${fe}:${le[fe]}`,X)||ie,ie=b.emit(`${aI}${Y},${fe}`,X)||ie;ie=b.emit(`${aI}${Y},,${ye}`,X)||ie,ie=b.emit(`${aI}${Y}`,X)||ie,!ie&&o.level==="debug"&&o.debug({unhandled:!0,msgId:J,fromMe:!1,frame:X},"communication recv")}})},_e=F=>{if(R){o.trace({trace:F?.stack},"connection already closed");return}if(R=!0,o.info({trace:F?.stack},F?"connection errored":"connection closed"),clearInterval(P),clearTimeout(C),b.removeAllListeners("close"),b.removeAllListeners("open"),b.removeAllListeners("message"),!b.isClosed&&!b.isClosing)try{b.close()}catch{}m.emit("connection.update",{connection:"close",lastDisconnect:{error:F,date:new Date}}),m.removeAllListeners("connection.update")},xe=async()=>{if(b.isOpen)return;if(b.isClosed||b.isClosing)throw new Ll.Boom("Connection Closed",{statusCode:ba.connectionClosed});let F,X;await new Promise((ie,J)=>{F=()=>ie(void 0),X=Nbe(J),b.on("open",F),b.on("close",X),b.on("error",X)}).finally(()=>{b.off("open",F),b.off("close",X),b.off("error",X)})},je=()=>P=setInterval(()=>{T||(T=new Date),Date.now()-T.getTime()>n+5e3?_e(new Ll.Boom("Connection was lost",{statusCode:ba.connectionLost})):b.isOpen?Ae({tag:"iq",attrs:{id:W(),to:Jn,type:"get",xmlns:"w:p"},content:[{tag:"ping",attrs:{}}]}).catch(X=>{o.error({trace:X.stack},"error in sending keep alive")}):o.warn("keep alive called when WS not open")},n),Z=F=>Ae({tag:"iq",attrs:{to:Jn,xmlns:"passive",type:"set"},content:[{tag:F,attrs:{}}]}),pe=async F=>{let X=i.creds.me?.id;X&&await U({tag:"iq",attrs:{to:Jn,type:"set",id:W(),xmlns:"md"},content:[{tag:"remove-companion-device",attrs:{jid:X,reason:"user_initiated"}}]}),_e(new Ll.Boom(F||"Intentional Logout",{statusCode:ba.loggedOut}))},he=async(F,X)=>{let ie=X??zft((0,LH.randomBytes)(5));if(X&&X?.length!==8)throw new Error("Custom pairing code must be exactly 8 chars");return i.creds.pairingCode=ie,i.creds.me={id:C0(F,"s.whatsapp.net"),name:"~"},m.emit("creds.update",i.creds),await U({tag:"iq",attrs:{to:Jn,type:"set",id:W(),xmlns:"md"},content:[{tag:"link_code_companion_reg",attrs:{jid:i.creds.me.id,stage:"companion_hello",should_show_push_notification:"true"},content:[{tag:"link_code_pairing_wrapped_companion_ephemeral_pub",attrs:{},content:await V()},{tag:"companion_server_auth_key_pub",attrs:{},content:i.creds.noiseKey.public},{tag:"companion_platform_id",attrs:{},content:Oft(a[1])},{tag:"companion_platform_display",attrs:{},content:`${a[1]} (${a[0]})`},{tag:"link_code_pairing_nonce",attrs:{},content:"0"}]}]}),i.creds.pairingCode};async function V(){let F=(0,LH.randomBytes)(32),X=(0,LH.randomBytes)(16),ie=await Q9(i.creds.pairingCode,F),J=qft(i.creds.pairingEphemeralKeyPair.public,ie,X);return Buffer.concat([F,X,J])}let re=F=>Ae({tag:"iq",attrs:{to:Jn,id:W(),xmlns:"w:stats"},content:[{tag:"add",attrs:{},content:F}]});b.on("message",Te),b.on("open",async()=>{try{await ue()}catch(F){o.error({err:F},"error in validating connection"),_e(F)}}),b.on("error",Nbe(_e)),b.on("close",()=>_e(new Ll.Boom("Connection Terminated",{statusCode:ba.connectionClosed}))),b.on("CB:xmlstreamend",()=>_e(new Ll.Boom("Connection Terminated by Server",{statusCode:ba.connectionClosed}))),b.on("CB:iq,type:set,pair-device",async F=>{let X={tag:"iq",attrs:{to:Jn,type:"result",id:F.attrs.id}};await U(X);let ie=et(F,"pair-device"),J=Yn(ie,"ref"),Y=Buffer.from(M.noiseKey.public).toString("base64"),le=Buffer.from(M.signedIdentityKey.public).toString("base64"),ye=M.advSecretKey,fe=p||6e4,ze=()=>{if(!b.isOpen)return;let Ue=J.shift();if(!Ue){_e(new Ll.Boom("QR refs attempts ended",{statusCode:ba.timedOut}));return}let De=[Ue.content.toString("utf-8"),Y,le,ye].join(",");m.emit("connection.update",{qr:De}),C=setTimeout(ze,fe),fe=p||2e4};ze()}),b.on("CB:iq,,pair-success",async F=>{o.debug("pair success recv");try{let{reply:X,creds:ie}=s2t(F,M);o.info({me:ie.me,platform:ie.platform},"pairing configured successfully, expect to restart the connection..."),m.emit("creds.update",ie),m.emit("connection.update",{isNewLogin:!0,qr:void 0}),await U(X)}catch(X){o.info({trace:X.stack},"error in pairing"),_e(X)}}),b.on("CB:success",async F=>{await Oe(),await Z("active"),o.info("opened connection to WA"),clearTimeout(C),m.emit("creds.update",{me:{...i.creds.me,lid:F.attrs.lid}}),m.emit("connection.update",{connection:"open"})}),b.on("CB:stream:error",F=>{o.error({node:F},"stream errored out");let{reason:X,statusCode:ie}=Ift(F);_e(new Ll.Boom(`Stream Errored (${X})`,{statusCode:ie,data:F}))}),b.on("CB:failure",F=>{let X=+(F.attrs.reason||500);_e(new Ll.Boom("Connection Failure",{statusCode:X,data:F.attrs}))}),b.on("CB:ib,,downgrade_webclient",()=>{_e(new Ll.Boom("Multi-device beta not joined",{statusCode:ba.multideviceMismatch}))}),b.on("CB:ib,,offline_preview",F=>{o.info("offline preview received",JSON.stringify(F)),U({tag:"ib",attrs:{},content:[{tag:"offline_batch",attrs:{count:"100"}}]})}),b.on("CB:ib,,edge_routing",F=>{let X=et(F,"edge_routing"),ie=et(X,"routing_info");ie?.content&&(i.creds.routingInfo=Buffer.from(ie?.content),m.emit("creds.update",i.creds))});let ae=!1;return process.nextTick(()=>{M.me?.id&&(m.buffer(),ae=!0),m.emit("connection.update",{connection:"connecting",receivedPendingNotifications:!1,qr:void 0})}),b.on("CB:ib,,offline",F=>{let ie=+(et(F,"offline")?.attrs.count||0);o.info(`handled ${ie} offline messages/notifications`),ae&&(m.flush(),o.trace("flushed events for initial buffer")),m.emit("connection.update",{receivedPendingNotifications:!0})}),m.on("creds.update",F=>{let X=F.me?.name;M.me?.name!==X&&(o.debug({name:X},"updated pushName"),U({tag:"presence",attrs:{name:X}}).catch(ie=>{o.warn({trace:ie.stack},"error in sending presence update on name change")})),Object.assign(M,F)}),{type:"md",ws:b,ev:m,authState:{creds:M,keys:S},signalRepository:v,get user(){return i.creds.me},generateMessageTag:W,query:Ae,waitForMessage:ee,waitForSocketOpen:xe,sendRawMessage:K,sendNode:U,logout:pe,end:_e,onUnexpectedError:q,uploadPreKeys:de,uploadPreKeysToServerIfRequired:Oe,requestPairingCode:he,waitForConnectionUpdate:Sft(m),sendWAMBuffer:re}}});var G_t,K_t,H_t=me(()=>{G_t=ke(cc(),1);Cr();t6();j_t();K_t=e=>{let t=F_t(e),{generateMessageTag:r,query:o}=t;return{...t,executeUSyncQuery:async a=>{if(a.protocols.length===0)throw new G_t.Boom("USyncQuery must have at least one protocol");let s=a.users.map(y=>({tag:"user",attrs:{jid:y.phone?void 0:y.id},content:a.protocols.map(b=>b.getUserElement(y)).filter(b=>b!==null)})),c={tag:"list",attrs:{},content:s},l={tag:"query",attrs:{},content:a.protocols.map(y=>y.getQueryElement())},p={tag:"iq",attrs:{to:Jn,type:"get",xmlns:"usync"},content:[{tag:"usync",attrs:{context:a.context,mode:a.mode,sid:r(),last:"true",index:"0"},content:[l,c]}]},h=await o(p);return a.parseUSyncQueryResult(h)}}}});var qH,NFn,V_t,$_t=me(()=>{BN();qH=ke(cc(),1);ao();Fc();k0();ade();jh();VK();XK();Cr();t6();H_t();NFn=2,V_t=e=>{let{logger:t,markOnlineOnConnect:r,fireInitQueries:o,appStateMacVerification:n,shouldIgnoreJid:a,shouldSyncHistoryMessage:i}=e,s=K_t(e),{ev:c,ws:l,authState:p,generateMessageTag:h,sendNode:y,query:b,onUnexpectedError:m}=s,O,_=Il.Connecting,M=UN(),S,v=e.placeholderResendCache||new em({stdTTL:tm.MSG_RETRY,useClones:!1});e.placeholderResendCache||(e.placeholderResendCache=v);let T=async qe=>{let{[qe]:at}=await p.keys.get("app-state-sync-key",[qe]);return at},w=async(qe=!1)=>{if(!O||qe){let{content:at}=await b({tag:"iq",attrs:{xmlns:"privacy",to:Jn,type:"get"},content:[{tag:"privacy",attrs:{}}]});O=pde(at?.[0],"category")}return O},P=async(qe,at)=>{await b({tag:"iq",attrs:{xmlns:"privacy",to:Jn,type:"set"},content:[{tag:"privacy",attrs:{},content:[{tag:"category",attrs:{name:qe,value:at}}]}]})},C=async qe=>{await P("messages",qe)},R=async qe=>{await P("calladd",qe)},N=async qe=>{await P("last",qe)},W=async qe=>{await P("online",qe)},k=async qe=>{await P("profile",qe)},K=async qe=>{await P("status",qe)},U=async qe=>{await P("readreceipts",qe)},q=async qe=>{await P("groupadd",qe)},H=async qe=>{await b({tag:"iq",attrs:{xmlns:"disappearing_mode",to:Jn,type:"set"},content:[{tag:"disappearing_mode",attrs:{duration:qe.toString()}}]})},ee=async()=>{let qe=await b({tag:"iq",attrs:{xmlns:"bot",to:Jn,type:"get"},content:[{tag:"bot",attrs:{v:"2"}}]}),at=et(qe,"bot"),kt=[];for(let At of Yn(at,"section"))if(At.attrs.type==="all")for(let en of Yn(At,"bot"))kt.push({jid:en.attrs.jid,personaId:en.attrs.persona_id});return kt},Ae=async(...qe)=>{let at=new dO().withContactProtocol().withLIDProtocol();for(let At of qe){let en=`+${At.replace("+","").split("@")[0]?.split(":")[0]}`;at.withUser(new fO().withPhone(en))}let kt=await s.executeUSyncQuery(at);if(kt)return kt.list.filter(At=>!!At.contact).map(({contact:At,id:en,lid:Mn})=>({jid:en,exists:At,lid:Mn}))},ue=async(...qe)=>{let at=new dO().withStatusProtocol();for(let At of qe)at.withUser(new fO().withId(At));let kt=await s.executeUSyncQuery(at);if(kt)return kt.list},se=async(...qe)=>{let at=new dO().withDisappearingModeProtocol();for(let At of qe)at.withUser(new fO().withId(At));let kt=await s.executeUSyncQuery(at);if(kt)return kt.list},de=async(qe,at,kt)=>{let At;if(!qe)throw new qH.Boom("Illegal no-jid profile update. Please specify either your ID or the ID of the chat you wish to update");vi(qe)!==vi(p.creds.me.id)?At=vi(qe):At=void 0;let{img:en}=await LK(at,kt);await b({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:profile:picture",...At?{target:At}:{}},content:[{tag:"picture",attrs:{type:"image"},content:en}]})},Oe=async qe=>{let at;if(!qe)throw new qH.Boom("Illegal no-jid profile update. Please specify either your ID or the ID of the chat you wish to update");vi(qe)!==vi(p.creds.me.id)?at=vi(qe):at=void 0,await b({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:profile:picture",...at?{target:at}:{}}})},Te=async qe=>{await b({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"status"},content:[{tag:"status",attrs:{},content:Buffer.from(qe,"utf-8")}]})},_e=async qe=>{await Y({pushNameSetting:qe},"")},xe=async()=>{let qe=await b({tag:"iq",attrs:{xmlns:"blocklist",to:Jn,type:"get"}}),at=et(qe,"list");return Yn(at,"item").map(kt=>kt.attrs.jid)},je=async(qe,at)=>{await b({tag:"iq",attrs:{xmlns:"blocklist",to:Jn,type:"set"},content:[{tag:"item",attrs:{action:at,jid:qe}}]})},Z=async qe=>{let at=await b({tag:"iq",attrs:{to:"s.whatsapp.net",xmlns:"w:biz",type:"get"},content:[{tag:"business_profile",attrs:{v:"244"},content:[{tag:"profile",attrs:{jid:qe}}]}]}),kt=et(at,"business_profile"),At=et(kt,"profile");if(At){let en=et(At,"address"),Mn=et(At,"description"),Bn=et(At,"website"),An=et(At,"email"),Fn=et(et(At,"categories"),"category"),Ya=et(At,"business_hours"),Lo=Ya?Yn(Ya,"business_hours_config"):void 0,ar=Bn?.content?.toString();return{wid:At.attrs?.jid,address:en?.content?.toString(),description:Mn?.content?.toString()||"",website:ar?[ar]:[],email:An?.content?.toString(),category:Fn?.content?.toString(),business_hours:{timezone:Ya?.attrs?.timezone,business_config:Lo?.map(({attrs:li})=>li)}}}},pe=async(qe,at)=>{t.info({fromTimestamp:at},"clean dirty bits "+qe),await y({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"urn:xmpp:whatsapp:dirty",id:h()},content:[{tag:"clean",attrs:{type:qe,...at?{timestamp:at.toString()}:null}}]})},he=qe=>({onMutation(at){R2t(at,c,p.creds.me,qe?{accountSettings:p.creds.accountSettings}:void 0,t)}}),V=c.createBufferedFunction(async(qe,at)=>{let kt={},At={};await p.keys.transaction(async()=>{let Mn=new Set(qe),Bn={};for(;Mn.size;){let An={},Fn=[];for(let ar of Mn){let Di=(await p.keys.get("app-state-sync-version",[ar]))[ar];Di?typeof kt[ar]>"u"&&(kt[ar]=Di.version):Di=jK(),An[ar]=Di,t.info(`resyncing ${ar} from v${Di.version}`),Fn.push({tag:"collection",attrs:{name:ar,version:Di.version.toString(),return_snapshot:(!Di.version).toString()}})}let Ya=await b({tag:"iq",attrs:{to:Jn,xmlns:"w:sync:app:state",type:"set"},content:[{tag:"sync",attrs:{},content:Fn}]}),Lo=await I2t(Ya,e?.options);for(let ar in Lo){let li=ar,{patches:Di,hasMorePatches:Oa,snapshot:Nt}=Lo[li];try{if(Nt){let{state:qo,mutationMap:Bl}=await P2t(li,Nt,T,kt[li],n.snapshot);An[li]=qo,Object.assign(At,Bl),t.info(`restored state of ${li} from snapshot to v${qo.version} with mutations`),await p.keys.set({"app-state-sync-version":{[li]:qo}})}if(Di.length){let{state:qo,mutationMap:Bl}=await bye(li,Di,An[li],T,e.options,kt[li],t,n.patch);await p.keys.set({"app-state-sync-version":{[li]:qo}}),t.info(`synced ${li} to v${qo.version}`),kt[li]=qo.version,Object.assign(At,Bl)}Oa?t.info(`${li} has more patches...`):Mn.delete(li)}catch(qo){let Bl=Bn[li]>=NFn||qo.output?.statusCode===404||qo.name==="TypeError";t.info({name:li,error:qo.stack},`failed to sync state from version${Bl?"":", removing and trying from scratch"}`),await p.keys.set({"app-state-sync-version":{[li]:null}}),Bn[li]=(Bn[li]||0)+1,Bl&&Mn.delete(li)}}}});let{onMutation:en}=he(at);for(let Mn in At)en(At[Mn])}),re=async(qe,at="preview",kt)=>{qe=vi(qe);let At=await b({tag:"iq",attrs:{target:qe,to:Jn,type:"get",xmlns:"w:profile:picture"},content:[{tag:"picture",attrs:{type:at,query:"url"}}]},kt);return et(At,"picture")?.attrs?.url},ae=async(qe,at)=>{let kt=p.creds.me;if(qe==="available"||qe==="unavailable"){if(!kt.name){t.warn("no name present, ignoring presence update request...");return}c.emit("connection.update",{isOnline:qe==="available"}),await y({tag:"presence",attrs:{name:kt.name.replace(/@/g,""),type:qe}})}else{let{server:At}=Xo(at);await y({tag:"chatstate",attrs:{from:At==="lid"?kt.lid:kt.id,to:at},content:[{tag:qe==="recording"?"composing":qe,attrs:qe==="recording"?{media:"audio"}:{}}]})}},F=(qe,at)=>y({tag:"presence",attrs:{to:qe,id:h(),type:"subscribe"},content:at?[{tag:"tctoken",attrs:{},content:at}]:void 0}),X=({tag:qe,attrs:at,content:kt})=>{let At,en=at.from,Mn=at.participant||at.from;if(!(a(en)&&en!=="@s.whatsapp.net")){if(qe==="presence")At={lastKnownPresence:at.type==="unavailable"?"unavailable":"available",lastSeen:at.last&&at.last!=="deny"?+at.last:void 0};else if(Array.isArray(kt)){let[Bn]=kt,An=Bn.tag;An==="paused"&&(An="available"),Bn.attrs?.media==="audio"&&(An="recording"),At={lastKnownPresence:An}}else t.error({tag:qe,attrs:at,content:kt},"recv invalid presence node");At&&c.emit("presence.update",{id:en,presences:{[Mn]:At}})}},ie=async qe=>{let at=qe.type,kt=p.creds.myAppStateKeyId;if(!kt)throw new qH.Boom("App state key not present!",{statusCode:400});let At,en;if(await M.mutex(async()=>{await p.keys.transaction(async()=>{t.debug({patch:qe},"applying app patch"),await V([at],!1);let{[at]:Mn}=await p.keys.get("app-state-sync-version",[at]);At=Mn||jK(),en=await T2t(qe,kt,At,T);let{patch:Bn,state:An}=en,Fn={tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:sync:app:state"},content:[{tag:"sync",attrs:{},content:[{tag:"collection",attrs:{name:at,version:(An.version-1).toString(),return_snapshot:"false"},content:[{tag:"patch",attrs:{},content:Je.SyncdPatch.encode(Bn).finish()}]}]}]};await b(Fn),await p.keys.set({"app-state-sync-version":{[at]:An}})})}),e.emitOwnEvents){let{onMutation:Mn}=he(!1),{mutationMap:Bn}=await bye(at,[{...en.patch,version:{version:en.state.version}}],At,T,e.options,void 0,t);for(let An in Bn)Mn(Bn[An])}},J=async()=>{let qe=await b({tag:"iq",attrs:{to:Jn,xmlns:"w",type:"get"},content:[{tag:"props",attrs:{protocol:"2",hash:p?.creds?.lastPropHash||""}}]}),at=et(qe,"props"),kt={};return at&&(at.attrs?.hash&&(p.creds.lastPropHash=at?.attrs?.hash,c.emit("creds.update",p.creds)),kt=pde(at,"prop")),t.debug("fetched props"),kt},Y=(qe,at)=>{let kt=z2t(qe,at);return ie(kt)},le=qe=>Y({disableLinkPreviews:{isPreviewsDisabled:qe}},""),ye=(qe,at,kt)=>Y({star:{messages:at,star:kt}},qe),fe=(qe,at)=>Y({contact:at},qe),ze=qe=>Y({contact:null},qe),Ue=(qe,at)=>Y({addLabel:{...at}},qe),Ge=(qe,at)=>Y({addChatLabel:{labelId:at}},qe),De=(qe,at)=>Y({removeChatLabel:{labelId:at}},qe),tt=(qe,at,kt)=>Y({addMessageLabel:{messageId:at,labelId:kt}},qe),Mt=(qe,at,kt)=>Y({removeMessageLabel:{messageId:at,labelId:kt}},qe),Pt=async()=>{await Promise.all([J(),xe(),w()])},Zt=c.createBufferedFunction(async(qe,at)=>{if(c.emit("messages.upsert",{messages:[qe],type:at}),qe.pushName){let Mn=qe.key.fromMe?p.creds.me.id:qe.key.participant||qe.key.remoteJid;Mn=vi(Mn),qe.key.fromMe||c.emit("contacts.update",[{id:Mn,notify:qe.pushName,verifiedName:qe.verifiedBizName}]),qe.key.fromMe&&qe.pushName&&p.creds.me?.name!==qe.pushName&&c.emit("creds.update",{me:{...p.creds.me,name:qe.pushName}})}let kt=FK(qe.message),At=kt?i(kt)&&O_t.includes(kt.syncType):!1;kt&&_===Il.AwaitingInitialSync&&(S&&(clearTimeout(S),S=void 0),At?(_=Il.Syncing,t.info("Transitioned to Syncing state")):(_=Il.Online,t.info("History sync skipped, transitioning to Online state and flushing buffer"),c.flush()));let en=async()=>{if(_===Il.Syncing){t.info("Doing app state sync"),await V(Jpt,!0),_=Il.Online,t.info("App state sync complete, transitioning to Online state and flushing buffer"),c.flush();let Mn=(p.creds.accountSyncCounter||0)+1;c.emit("creds.update",{accountSyncCounter:Mn})}};await Promise.all([(async()=>{At&&await en()})(),Z2t(qe,{shouldProcessHistoryMsg:At,placeholderResendCache:v,ev:c,creds:p.creds,keyStore:p.keys,logger:t,options:e.options})]),qe.message?.protocolMessage?.appStateSyncKeyShare&&_===Il.Syncing&&(t.info("App state sync key arrived, triggering app state sync"),await en())});return l.on("CB:presence",X),l.on("CB:chatstate",X),l.on("CB:ib,,dirty",async qe=>{let{attrs:at}=et(qe,"dirty");switch(at.type){case"account_sync":if(at.timestamp){let{lastAccountSyncTimestamp:At}=p.creds;At&&await pe("account_sync",At),At=+at.timestamp,c.emit("creds.update",{lastAccountSyncTimestamp:At})}break;case"groups":break;default:t.info({node:qe},"received unknown sync");break}}),c.on("connection.update",({connection:qe,receivedPendingNotifications:at})=>{if(qe==="open"&&(o&&Pt().catch(At=>m(At,"init queries")),ae(r?"available":"unavailable").catch(At=>m(At,"presence update requests"))),!at||_!==Il.Connecting)return;if(_=Il.AwaitingInitialSync,t.info("Connection is now AwaitingInitialSync, buffering events"),c.buffer(),!i(Je.Message.HistorySyncNotification.fromObject({syncType:Je.HistorySync.HistorySyncType.RECENT}))){t.info("History sync is disabled by config, not waiting for notification. Transitioning to Online."),_=Il.Online,setTimeout(()=>c.flush(),0);return}t.info("History sync is enabled, awaiting notification with a 20s timeout."),S&&clearTimeout(S),S=setTimeout(()=>{_===Il.AwaitingInitialSync&&(t.warn("Timeout in AwaitingInitialSync, forcing state to Online and flushing buffer"),_=Il.Online,c.flush())},2e4)}),{...s,getBotListV2:ee,processingMutex:M,fetchPrivacySettings:w,upsertMessage:Zt,appPatch:ie,sendPresenceUpdate:ae,presenceSubscribe:F,profilePictureUrl:re,onWhatsApp:Ae,fetchBlocklist:xe,fetchStatus:ue,fetchDisappearingDuration:se,updateProfilePicture:de,removeProfilePicture:Oe,updateProfileStatus:Te,updateProfileName:_e,updateBlockStatus:je,updateDisableLinkPreviewsPrivacy:le,updateCallPrivacy:R,updateMessagesPrivacy:C,updateLastSeenPrivacy:N,updateOnlinePrivacy:W,updateProfilePicturePrivacy:k,updateStatusPrivacy:K,updateReadReceiptsPrivacy:U,updateGroupsAddPrivacy:q,updateDefaultDisappearingMode:H,getBusinessProfile:Z,resyncAppState:V,chatModify:Y,cleanDirtyBits:pe,addOrEditContact:fe,removeContact:ze,addLabel:Ue,addChatLabel:Ge,removeChatLabel:De,addMessageLabel:tt,removeMessageLabel:Mt,star:ye}}});var J_t,sI,Dbe=me(()=>{ao();k0();jh();Cr();$_t();J_t=e=>{let t=V_t(e),{authState:r,ev:o,query:n,upsertMessage:a}=t,i=async(l,p,h)=>n({tag:"iq",attrs:{type:p,xmlns:"w:g2",to:l},content:h}),s=async l=>{let p=await i(l,"get",[{tag:"query",attrs:{request:"interactive"}}]);return sI(p)},c=async()=>{let l=await n({tag:"iq",attrs:{to:"@g.us",xmlns:"w:g2",type:"get"},content:[{tag:"participating",attrs:{},content:[{tag:"participants",attrs:{}},{tag:"description",attrs:{}}]}]}),p={},h=et(l,"groups");if(h){let y=Yn(h,"group");for(let b of y){let m=sI({tag:"result",attrs:{},content:[b]});p[m.id]=m}}return t.ev.emit("groups.update",Object.values(p)),p};return t.ws.on("CB:ib,,dirty",async l=>{let{attrs:p}=et(l,"dirty");p.type==="groups"&&(await c(),await t.cleanDirtyBits("groups"))}),{...t,groupMetadata:s,groupCreate:async(l,p)=>{let h=ks(),y=await i("@g.us","set",[{tag:"create",attrs:{subject:l,key:h},content:p.map(b=>({tag:"participant",attrs:{jid:b}}))}]);return sI(y)},groupLeave:async l=>{await i("@g.us","set",[{tag:"leave",attrs:{},content:[{tag:"group",attrs:{id:l}}]}])},groupUpdateSubject:async(l,p)=>{await i(l,"set",[{tag:"subject",attrs:{},content:Buffer.from(p,"utf-8")}])},groupRequestParticipantsList:async l=>{let p=await i(l,"get",[{tag:"membership_approval_requests",attrs:{}}]),h=et(p,"membership_approval_requests");return Yn(h,"membership_approval_request").map(b=>b.attrs)},groupRequestParticipantsUpdate:async(l,p,h)=>{let y=await i(l,"set",[{tag:"membership_requests_action",attrs:{},content:[{tag:h,attrs:{},content:p.map(_=>({tag:"participant",attrs:{jid:_}}))}]}]),b=et(y,"membership_requests_action"),m=et(b,h);return Yn(m,"participant").map(_=>({status:_.attrs.error||"200",jid:_.attrs.jid}))},groupParticipantsUpdate:async(l,p,h)=>{let y=await i(l,"set",[{tag:h,attrs:{},content:p.map(O=>({tag:"participant",attrs:{jid:O}}))}]),b=et(y,h);return Yn(b,"participant").map(O=>({status:O.attrs.error||"200",jid:O.attrs.jid,content:O}))},groupUpdateDescription:async(l,p)=>{let y=(await s(l)).descId??null;await i(l,"set",[{tag:"description",attrs:{...p?{id:ks()}:{delete:"true"},...y?{prev:y}:{}},content:p?[{tag:"body",attrs:{},content:Buffer.from(p,"utf-8")}]:void 0}])},groupInviteCode:async l=>{let p=await i(l,"get",[{tag:"invite",attrs:{}}]);return et(p,"invite")?.attrs.code},groupRevokeInvite:async l=>{let p=await i(l,"set",[{tag:"invite",attrs:{}}]);return et(p,"invite")?.attrs.code},groupAcceptInvite:async l=>{let p=await i("@g.us","set",[{tag:"invite",attrs:{code:l}}]);return et(p,"group")?.attrs.jid},groupRevokeInviteV4:async(l,p)=>!!await i(l,"set",[{tag:"revoke",attrs:{},content:[{tag:"participant",attrs:{jid:p}}]}]),groupAcceptInviteV4:o.createBufferedFunction(async(l,p)=>{l=typeof l=="string"?{remoteJid:l}:l;let h=await i(p.groupJid,"set",[{tag:"accept",attrs:{code:p.inviteCode,expiration:p.inviteExpiration.toString(),admin:l.remoteJid}}]);return l.id&&(p=Je.Message.GroupInviteMessage.fromObject(p),p.inviteExpiration=0,p.inviteCode="",o.emit("messages.update",[{key:l,update:{message:{groupInviteMessage:p}}}])),await a({key:{remoteJid:p.groupJid,id:ks(t.user?.id),fromMe:!1,participant:l.remoteJid},messageStubType:Ln.GROUP_PARTICIPANT_ADD,messageStubParameters:[r.creds.me.id],participant:l.remoteJid,messageTimestamp:np()},"notify"),h.attrs.from}),groupGetInviteInfo:async l=>{let p=await i("@g.us","get",[{tag:"invite",attrs:{code:l}}]);return sI(p)},groupToggleEphemeral:async(l,p)=>{let h=p?{tag:"ephemeral",attrs:{expiration:p.toString()}}:{tag:"not_ephemeral",attrs:{}};await i(l,"set",[h])},groupSettingUpdate:async(l,p)=>{await i(l,"set",[{tag:p,attrs:{}}])},groupMemberAddMode:async(l,p)=>{await i(l,"set",[{tag:"member_add_mode",attrs:{},content:p}])},groupJoinApprovalMode:async(l,p)=>{await i(l,"set",[{tag:"membership_approval_mode",attrs:{},content:[{tag:"group_join",attrs:{state:p}}]}])},groupFetchAllParticipating:c}},sI=e=>{let t=et(e,"group"),r=et(t,"description"),o,n,a,i,s;r&&(o=ri(r,"body"),a=r.attrs.participant?vi(r.attrs.participant):void 0,i=r.attrs.participant_pn?vi(r.attrs.participant_pn):void 0,s=+r.attrs.t,n=r.attrs.id);let c=t.attrs.id.includes("@")?t.attrs.id:C0(t.attrs.id,"g.us"),l=et(t,"ephemeral")?.attrs.expiration,p=ri(t,"member_add_mode")==="all_member_add";return{id:c,addressingMode:t.attrs.addressing_mode,subject:t.attrs.subject,subjectOwner:t.attrs.s_o,subjectOwnerJid:t.attrs.s_o_pn,subjectTime:+t.attrs.s_t,size:t.attrs.size?+t.attrs.size:Yn(t,"participant").length,creation:+t.attrs.creation,owner:t.attrs.creator?vi(t.attrs.creator):void 0,ownerJid:t.attrs.creator_pn?vi(t.attrs.creator_pn):void 0,owner_country_code:t.attrs.creator_country_code,desc:o,descId:n,descOwner:a,descOwnerJid:i,descTime:s,linkedParent:et(t,"linked_parent")?.attrs.jid||void 0,restrict:!!et(t,"locked"),announce:!!et(t,"announcement"),isCommunity:!!et(t,"parent"),isCommunityAnnounce:!!et(t,"default_sub_group"),joinApprovalMode:!!et(t,"membership_approval_mode"),memberAddMode:p,participants:Yn(t,"participant").map(({attrs:y})=>({id:y.jid,jid:N0(y.jid)?y.jid:vi(y.phone_number),lid:iv(y.jid)?y.jid:y.lid,admin:y.type||null})),ephemeralDuration:l?+l:void 0}}});var Lbe,DFn,X_t,Y_t=me(()=>{Lbe=ke(cc(),1);Cr();DFn=(e,t,r,o)=>r({tag:"iq",attrs:{id:o(),type:"get",to:Jn,xmlns:"w:mex"},content:[{tag:"query",attrs:{query_id:t},content:Buffer.from(JSON.stringify({variables:e}),"utf-8")}]}),X_t=async(e,t,r,o,n)=>{let a=await DFn(e,t,o,n),i=et(a,"result");if(i?.content){let c=JSON.parse(i.content.toString());if(c.errors&&c.errors.length>0){let p=c.errors.map(b=>b.message||"Unknown error").join(", "),h=c.errors[0],y=h.extensions?.error_code||400;throw new Lbe.Boom(`GraphQL server error: ${p}`,{statusCode:y,data:h})}let l=r?c?.data?.[r]:c?.data;if(typeof l<"u")return l}let s=(r||"").startsWith("xwa2_")?r.substring(5).replace(/_/g," "):r?.replace(/_/g," ");throw new Lbe.Boom(`Failed to ${s}, unexpected response structure.`,{statusCode:400,data:a})}});var LFn,qFn,Q_t,Z_t=me(()=>{k0();lO();Cr();Y_t();LFn=e=>{let{id:t,thread_metadata:r,viewer_metadata:o}=e;return{id:t,owner:void 0,name:r.name.text,creation_time:parseInt(r.creation_time,10),description:r.description.text,invite:r.invite,subscribers:parseInt(r.subscribers_count,10),verification:r.verification,picture:{id:r.picture.id,directPath:r.picture.direct_path},mute_state:o.mute}},qFn=e=>typeof e!="object"||e===null?null:"id"in e&&typeof e.id=="string"?e:"result"in e&&typeof e.result=="object"&&e.result!==null&&"id"in e.result?e.result:null,Q_t=e=>{let{query:t,generateMessageTag:r}=e,o=(a,i,s)=>X_t(a,i,s,t,r),n=async(a,i)=>{let s={newsletter_id:a,updates:{...i,settings:null}};return o(s,wl.UPDATE_METADATA,"xwa2_newsletter_update")};return{...e,newsletterCreate:async(a,i)=>{let c=await o({input:{name:a,description:i??null}},wl.CREATE,Ru.xwa2_newsletter_create);return LFn(c)},newsletterUpdate:n,newsletterSubscribers:async a=>o({newsletter_id:a},wl.SUBSCRIBERS,Ru.xwa2_newsletter_subscribers),newsletterMetadata:async(a,i)=>{let s={fetch_creation_time:!0,fetch_full_image:!0,fetch_viewer_metadata:!0,input:{key:i,type:a.toUpperCase()}},c=await o(s,wl.METADATA,Ru.xwa2_newsletter_metadata);return qFn(c)},newsletterFollow:a=>o({newsletter_id:a},wl.FOLLOW,Ru.xwa2_newsletter_follow),newsletterUnfollow:a=>o({newsletter_id:a},wl.UNFOLLOW,Ru.xwa2_newsletter_unfollow),newsletterMute:a=>o({newsletter_id:a},wl.MUTE,Ru.xwa2_newsletter_mute_v2),newsletterUnmute:a=>o({newsletter_id:a},wl.UNMUTE,Ru.xwa2_newsletter_unmute_v2),newsletterUpdateName:async(a,i)=>await n(a,{name:i}),newsletterUpdateDescription:async(a,i)=>await n(a,{description:i}),newsletterUpdatePicture:async(a,i)=>{let{img:s}=await LK(i);return await n(a,{picture:s.toString("base64")})},newsletterRemovePicture:async a=>await n(a,{picture:""}),newsletterReactMessage:async(a,i,s)=>{await t({tag:"message",attrs:{to:a,...s?{}:{edit:"7"},type:"reaction",server_id:i,id:r()},content:[{tag:"reaction",attrs:s?{code:s}:{}}]})},newsletterFetchMessages:async(a,i,s,c)=>{let l={count:i.toString()};return typeof s=="number"&&(l.since=s.toString()),c&&(l.after=c.toString()),await t({tag:"iq",attrs:{id:r(),type:"get",xmlns:"newsletter",to:a},content:[{tag:"message_updates",attrs:l}]})},subscribeNewsletterUpdates:async a=>{let i=await t({tag:"iq",attrs:{id:r(),type:"set",xmlns:"newsletter",to:a},content:[{tag:"live_updates",attrs:{},content:[]}]}),c=et(i,"live_updates")?.attrs?.duration;return c?{duration:c}:null},newsletterAdminCount:async a=>(await o({newsletter_id:a},wl.ADMIN_COUNT,Ru.xwa2_newsletter_admin_count)).admin_count,newsletterChangeOwner:async(a,i)=>{await o({newsletter_id:a,user_id:i},wl.CHANGE_OWNER,Ru.xwa2_newsletter_change_owner)},newsletterDemote:async(a,i)=>{await o({newsletter_id:a,user_id:i},wl.DEMOTE,Ru.xwa2_newsletter_demote)},newsletterDelete:async a=>{await o({newsletter_id:a},wl.DELETE,Ru.xwa2_newsletter_delete_v2)}}}});var n6,eAt,tAt=me(()=>{BN();n6=ke(cc(),1);ao();Fc();jh();Pye();Cr();t6();Dbe();Z_t();eAt=e=>{let{logger:t,linkPreviewImageThumbnailWidth:r,generateHighQualityLinkPreview:o,options:n,patchMessageBeforeSending:a,cachedGroupMetadata:i}=e,s=Q_t(J_t(e)),{ev:c,authState:l,processingMutex:p,signalRepository:h,upsertMessage:y,query:b,fetchPrivacySettings:m,sendNode:O,groupMetadata:_,groupToggleEphemeral:M}=s,S=e.userDevicesCache||new em({stdTTL:tm.USER_DEVICES,useClones:!1}),v,T=async(ue=!1)=>{let se=await v;return(!se||ue||new Date().getTime()-se.fetchDate.getTime()>se.ttl*1e3)&&(v=(async()=>{let de=await b({tag:"iq",attrs:{type:"set",xmlns:"w:m",to:Jn},content:[{tag:"media_conn",attrs:{}}]}),Oe=et(de,"media_conn"),Te={hosts:Yn(Oe,"host").map(({attrs:_e})=>({hostname:_e.hostname,maxContentLengthBytes:+_e.maxContentLengthBytes})),auth:Oe.attrs.auth,ttl:+Oe.attrs.ttl,fetchDate:new Date};return t.debug("fetched media conn"),Te})()),v},w=async(ue,se,de,Oe)=>{if(!de||de.length===0)throw new n6.Boom("missing ids in receipt");let Te={tag:"receipt",attrs:{id:de[0]}};(Oe==="read"||Oe==="read-self")&&(Te.attrs.t=np().toString()),Oe==="sender"&&N0(ue)?(Te.attrs.recipient=ue,Te.attrs.to=se):(Te.attrs.to=ue,se&&(Te.attrs.participant=se)),Oe&&(Te.attrs.type=Oe);let xe=de.slice(1);xe.length&&(Te.content=[{tag:"list",attrs:{},content:xe.map(je=>({tag:"item",attrs:{id:je}}))}]),t.debug({attrs:Te.attrs,messageIds:de},"sending receipt for messages"),await O(Te)},P=async(ue,se)=>{let de=$gt(ue);for(let{jid:Oe,participant:Te,messageIds:_e}of de)await w(Oe,Te,_e,se)},C=async ue=>{let de=(await m()).readreceipts==="all"?"read":"read-self";await P(ue,de)},R=async(ue,se,de)=>{let Oe=[];se||t.debug("not using cache for devices");let Te=[];ue=Array.from(new Set(ue));for(let je of ue){let Z=Xo(je)?.user;if(je=vi(je),se){let pe=S.get(Z);pe?(Oe.push(...pe),t.trace({user:Z},"using cache for devices")):Te.push(je)}else Te.push(je)}if(!Te.length)return Oe;let _e=new dO().withContext("message").withDeviceProtocol();for(let je of Te)_e.withUser(new fO().withId(je));let xe=await s.executeUSyncQuery(_e);if(xe){let je=e2t(xe?.list,l.creds.me.id,de),Z={};for(let pe of je)Z[pe.user]=Z[pe.user]||[],Z[pe.user]?.push(pe),Oe.push(pe);for(let pe in Z)S.set(pe,Z[pe])}return Oe},N=async(ue,se)=>{let de=!1,Oe=[];if(se)Oe=ue;else{let Te=ue.map(xe=>h.jidToSignalProtocolAddress(xe)),_e=await l.keys.get("session",Te);for(let xe of ue){let je=h.jidToSignalProtocolAddress(xe);_e[je]||Oe.push(xe)}}if(Oe.length){t.debug({jidsRequiringFetch:Oe},"fetching sessions");let Te=await b({tag:"iq",attrs:{xmlns:"encrypt",type:"get",to:Jn},content:[{tag:"key",attrs:{},content:Oe.map(_e=>({tag:"user",attrs:{jid:_e}}))}]});await Zgt(Te,h),de=!0}return de},W=async ue=>{if(!l.creds.me?.id)throw new n6.Boom("Not authenticated");let se={protocolMessage:{peerDataOperationRequestMessage:ue,type:Je.Message.ProtocolMessage.Type.PEER_DATA_OPERATION_REQUEST_MESSAGE}},de=vi(l.creds.me.id);return await K(de,se,{additionalAttributes:{category:"peer",push_priority:"high_force"}})},k=async(ue,se,de)=>{let Oe=await a(se,ue);Array.isArray(Oe)||(Oe=ue?ue.map(xe=>({recipientJid:xe,...Oe})):[Oe]);let Te=!1;return{nodes:await Promise.all(Oe.map(async xe=>{let{recipientJid:je,...Z}=xe;if(!je)return{};let pe=hde(Z),{type:he,ciphertext:V}=await h.encryptMessage({jid:je,data:pe});return he==="pkmsg"&&(Te=!0),{tag:"to",attrs:{jid:je},content:[{tag:"enc",attrs:{v:"2",type:he,...de||{}},content:V}]}})),shouldIncludeDeviceIdentity:Te}},K=async(ue,se,{messageId:de,participant:Oe,additionalAttributes:Te,additionalNodes:_e,useUserDevicesCache:xe,useCachedGroupMetadata:je,statusJidList:Z})=>{let pe=l.creds.me.id,he=!1,{user:V,server:re}=Xo(ue),ae="status@broadcast",F=re==="g.us",X=ue===ae,ie=re==="lid",J=re==="newsletter";de=de||ks(s.user?.id),xe=xe!==!1,je=je!==!1&&!X;let Y=[],le=X?ae:C0(V,ie?"lid":F?"g.us":"s.whatsapp.net"),ye=[],fe=[],ze={deviceSentMessage:{destinationJid:le,message:se},messageContextInfo:se.messageContextInfo},Ue={};if(Oe){!F&&!X&&(Te={...Te,device_fanout:"false"});let{user:Ge,device:De}=Xo(Oe.jid);fe.push({user:Ge,device:De})}return await l.keys.transaction(async()=>{let Ge=q(se);if(Ge&&(Ue.mediatype=Ge),J){let tt=a?await a(se,[]):se,Mt=Rft(tt);ye.push({tag:"plaintext",attrs:{},content:Mt});let Pt={tag:"message",attrs:{to:ue,id:de,type:U(se),...Te||{}},content:ye};t.debug({msgId:de},`sending newsletter message to ${ue}`),await O(Pt);return}if(pp(se)?.pinInChatMessage&&(Ue["decrypt-fail"]="hide"),F||X){let[tt,Mt]=await Promise.all([(async()=>{let At=je&&i?await i(ue):void 0;return At&&Array.isArray(At?.participants)?t.trace({jid:ue,participants:At.participants.length},"using cached group metadata"):X||(At=await _(ue)),At})(),(async()=>!Oe&&!X?(await l.keys.get("sender-key-memory",[ue]))[ue]||{}:{})()]);if(!Oe){let At=tt&&!X?tt.participants.map(Mn=>Mn.id):[];X&&Z&&At.push(...Z),X||(Te={...Te,addressing_mode:tt?.addressingMode||"pn"});let en=await R(At,!!xe,!1);fe.push(...en)}let Pt=await a(se);if(Array.isArray(Pt))throw new n6.Boom("Per-jid patching is not supported in groups");let Zt=hde(Pt),{ciphertext:qe,senderKeyDistributionMessage:at}=await h.encryptGroupMessage({group:le,data:Zt,meId:pe}),kt=[];for(let{user:At,device:en}of fe){let Mn=C0(At,tt?.addressingMode==="lid"?"lid":"s.whatsapp.net",en);(!Mt[Mn]||Oe)&&(kt.push(Mn),Mt[Mn]=!0)}if(kt.length){t.debug({senderKeyJids:kt},"sending new sender key");let At={senderKeyDistributionMessage:{axolotlSenderKeyDistributionMessage:at,groupId:le}};await N(kt,!1);let en=await k(kt,At,Ue);he=he||en.shouldIncludeDeviceIdentity,Y.push(...en.nodes)}ye.push({tag:"enc",attrs:{v:"2",type:"skmsg"},content:qe}),await l.keys.set({"sender-key-memory":{[ue]:Mt}})}else{let{user:tt}=Xo(pe);if(!Oe&&(fe.push({user:V}),V!==tt&&fe.push({user:tt}),Te?.category!=="peer")){let en=await R([pe,ue],!!xe,!0);fe.push(...en)}let Mt=[],Pt=[],Zt=[];for(let{user:en,device:Mn}of fe){let Bn=en===tt,An=C0(Bn&&ie&&l.creds?.me?.lid.split(":")[0]||en,ie?"lid":"s.whatsapp.net",Mn);Bn?Pt.push(An):Zt.push(An),Mt.push(An)}await N(Mt,!1);let[{nodes:qe,shouldIncludeDeviceIdentity:at},{nodes:kt,shouldIncludeDeviceIdentity:At}]=await Promise.all([k(Pt,ze,Ue),k(Zt,se,Ue)]);Y.push(...qe),Y.push(...kt),he=he||at||At}if(Y.length)if(Te?.category==="peer"){let tt=Y[0]?.content?.[0];tt&&ye.push(tt)}else ye.push({tag:"participants",attrs:{},content:Y});let De={tag:"message",attrs:{id:de,type:U(se),...Te||{}},content:ye};Oe?zl(le)?(De.attrs.to=le,De.attrs.participant=Oe.jid):Pl(Oe.jid,pe)?(De.attrs.to=Oe.jid,De.attrs.recipient=le):De.attrs.to=Oe.jid:De.attrs.to=le,he&&(De.content.push({tag:"device-identity",attrs:{},content:NN(l.creds.account,!0)}),t.debug({jid:ue},"adding device identity")),_e&&_e.length>0&&De.content.push(..._e),t.debug({msgId:de},`sending message to ${Y.length} devices`),await O(De)}),de},U=ue=>ue.pollCreationMessage||ue.pollCreationMessageV2||ue.pollCreationMessageV3?"poll":"text",q=ue=>{if(ue.imageMessage)return"image";if(ue.videoMessage)return ue.videoMessage.gifPlayback?"gif":"video";if(ue.audioMessage)return ue.audioMessage.ptt?"ptt":"audio";if(ue.contactMessage)return"vcard";if(ue.documentMessage)return"document";if(ue.contactsArrayMessage)return"contact_array";if(ue.liveLocationMessage)return"livelocation";if(ue.stickerMessage)return"sticker";if(ue.listMessage)return"list";if(ue.listResponseMessage)return"list_response";if(ue.buttonsResponseMessage)return"buttons_response";if(ue.orderMessage)return"order";if(ue.productMessage)return"product";if(ue.interactiveResponseMessage)return"native_flow_response";if(ue.groupInviteMessage)return"url"},H=async ue=>{let se=np().toString();return await b({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"privacy"},content:[{tag:"tokens",attrs:{},content:ue.map(Oe=>({tag:"token",attrs:{jid:vi(Oe),t:se,type:"trusted_contact"}}))}]})},ee=qgt(e,T),Ae=bde(c,"messages.media-update");return{...s,getPrivacyTokens:H,assertSessions:N,relayMessage:K,sendReceipt:w,sendReceipts:P,readMessages:C,refreshMediaConn:T,waUploadToServer:ee,fetchPrivacySettings:m,sendPeerDataOperationMessage:W,createParticipantNodes:k,getUSyncDevices:R,updateMediaMessage:async ue=>{let se=Jgt(ue.message),de=se.mediaKey,Oe=l.creds.me.id,Te=await Ugt(ue.key,de,Oe),_e;if(await Promise.all([O(Te),Ae(async xe=>{let je=xe.find(Z=>Z.key.id===ue.key.id);if(je){if(je.error)_e=je.error;else try{let Z=await Fgt(je.media,de,je.key.id);if(Z.result!==Je.MediaRetryNotification.ResultType.SUCCESS){let pe=Je.MediaRetryNotification.ResultType[Z.result];throw new n6.Boom(`Media re-upload failed by device (${pe})`,{data:Z,statusCode:rye(Z.result)||404})}se.directPath=Z.directPath,se.url=zN(se.directPath),t.debug({directPath:Z.directPath,key:je.key},"media update successful")}catch(Z){_e=Z}return!0}})]),_e)throw _e;return c.emit("messages.update",[{key:ue.key,update:{message:ue.message}}]),ue},sendMessage:async(ue,se,de={})=>{let Oe=l.creds.me.id;if(typeof se=="object"&&"disappearingMessagesInChat"in se&&typeof se.disappearingMessagesInChat<"u"&&zl(ue)){let{disappearingMessagesInChat:Te}=se;await M(ue,typeof Te=="boolean"?Te?CN:0:Te)}else{let Te=await Vgt(ue,se,{logger:t,userJid:Oe,getUrlInfo:V=>Y2t(V,{thumbnailWidth:r,fetchOpts:{timeout:3e3,...n||{}},logger:t,uploadImage:o?ee:void 0}),getProfilePicUrl:s.profilePictureUrl,upload:ee,mediaCache:e.mediaCache,options:e.options,messageId:ks(s.user?.id),...de}),_e="delete"in se&&!!se.delete,xe="edit"in se&&!!se.edit,je="pin"in se&&!!se.pin,Z="poll"in se&&!!se.poll,pe={},he=[];return _e?zl(se.delete?.remoteJid)&&!se.delete?.fromMe?pe.edit="8":pe.edit="7":xe?pe.edit="1":je?pe.edit="2":Z&&he.push({tag:"meta",attrs:{polltype:"creation"}}),"cachedGroupMetadata"in de&&console.warn("cachedGroupMetadata in sendMessage are deprecated, now cachedGroupMetadata is part of the socket config."),await K(ue,Te.message,{messageId:Te.key.id,useCachedGroupMetadata:de.useCachedGroupMetadata,additionalAttributes:pe,statusJidList:de.statusJidList,additionalNodes:he}),e.emitOwnEvents&&process.nextTick(()=>{p.mutex(()=>y(Te,"append"))}),Te}}}}});var i6,BH,nAt,iAt=me(()=>{BN();i6=ke(cc(),1),BH=require("crypto");Hn();ao();Fc();k0();jh();VK();Cr();Dbe();tAt();nAt=e=>{let{logger:t,retryRequestDelayMs:r,maxMsgRetryCount:o,getMessage:n,shouldIgnoreJid:a}=e,i=eAt(e),{ev:s,authState:c,ws:l,processingMutex:p,signalRepository:h,query:y,upsertMessage:b,resyncAppState:m,onUnexpectedError:O,assertSessions:_,sendNode:M,relayMessage:S,sendReceipt:v,uploadPreKeys:T,sendPeerDataOperationMessage:w}=i,P=UN(),C=e.msgRetryCounterCache||new em({stdTTL:tm.MSG_RETRY,useClones:!1}),R=e.callOfferCache||new em({stdTTL:tm.CALL_OFFER,useClones:!1}),N=e.placeholderResendCache||new em({stdTTL:tm.MSG_RETRY,useClones:!1}),W=!1,k=async({tag:J,attrs:Y,content:le},ye)=>{let fe={tag:"ack",attrs:{id:Y.id,to:Y.from,class:J}};ye&&(fe.attrs.error=ye.toString()),Y.participant&&(fe.attrs.participant=Y.participant),Y.recipient&&(fe.attrs.recipient=Y.recipient),Y.type&&(J!=="message"||et({tag:J,attrs:Y,content:le},"unavailable")||ye!==0)&&(fe.attrs.type=Y.type),J==="message"&&et({tag:J,attrs:Y,content:le},"unavailable")&&(fe.attrs.from=c.creds.me.id),t.debug({recv:{tag:J,attrs:Y},sent:fe.attrs},"sent ack"),await M(fe)},K=async(J,Y)=>{let le={tag:"call",attrs:{from:c.creds.me.id,to:Y},content:[{tag:"reject",attrs:{"call-id":J,"call-creator":Y,count:"0"},content:void 0}]};await y(le)},U=async(J,Y=!1)=>{let{fullMessage:le}=J9(J,c.creds.me.id,c.creds.me.lid||""),{key:ye}=le,fe=ye.id,ze=`${fe}:${ye?.participant}`,Ue=C.get(ze)||0;if(Ue>=o){t.debug({retryCount:Ue,msgId:fe},"reached retry limit, clearing"),C.del(ze);return}Ue+=1,C.set(ze,Ue);let{account:Ge,signedPreKey:De,signedIdentityKey:tt}=c.creds;if(Ue===1){let Pt=await Z(ye);t.debug(`sendRetryRequest: requested placeholder resend for message ${Pt}`)}let Mt=NN(Ge,!0);await c.keys.transaction(async()=>{let Pt={tag:"receipt",attrs:{id:fe,type:"retry",to:J.attrs.from},content:[{tag:"retry",attrs:{count:Ue.toString(),id:J.attrs.id,t:J.attrs.t,v:"1"}},{tag:"registration",attrs:{},content:Wb(c.creds.registrationId)}]};if(J.attrs.recipient&&(Pt.attrs.recipient=J.attrs.recipient),J.attrs.participant&&(Pt.attrs.participant=J.attrs.participant),Ue>1||Y){let{update:Zt,preKeys:qe}=await uye(c,1),[at]=Object.keys(qe),kt=qe[+at];Pt.content.push({tag:"keys",attrs:{},content:[{tag:"type",attrs:{},content:Buffer.from(F2)},{tag:"identity",attrs:{},content:tt.public},lye(kt,+at),cye(De),{tag:"device-identity",attrs:{},content:Mt}]}),s.emit("creds.update",Zt)}await M(Pt),t.info({msgAttrs:J.attrs,retryCount:Ue},"sent retry receipt")})},q=async J=>{let Y=J.attrs.from;if(Y===Jn){let ye=+et(J,"count").attrs.value,fe=ye<IH;t.debug({count:ye,shouldUploadMorePreKeys:fe},"recv pre-key count"),fe&&await T()}else et(J,"identity")?t.info({jid:Y},"identity changed"):t.info({node:J},"unknown encrypt notification")},H=(J,Y,le)=>{let ye=et(Y,"participant")?.attrs?.jid||J;switch(Y?.tag){case"create":let fe=sI(Y);le.messageStubType=Ln.GROUP_CREATE,le.messageStubParameters=[fe.subject],le.key={participant:fe.owner},s.emit("chats.upsert",[{id:fe.id,name:fe.subject,conversationTimestamp:fe.creation}]),s.emit("groups.upsert",[{...fe,author:J}]);break;case"ephemeral":case"not_ephemeral":le.message={protocolMessage:{type:Je.Message.ProtocolMessage.Type.EPHEMERAL_SETTING,ephemeralExpiration:+(Y.attrs.expiration||0)}};break;case"modify":let ze=Yn(Y,"participant").map(Zt=>Zt.attrs.jid);le.messageStubParameters=ze||[],le.messageStubType=Ln.GROUP_PARTICIPANT_CHANGE_NUMBER;break;case"promote":case"demote":case"remove":case"add":case"leave":let Ue=`GROUP_PARTICIPANT_${Y.tag.toUpperCase()}`;le.messageStubType=Ln[Ue];let Ge=Yn(Y,"participant").map(Zt=>Zt.attrs.jid);Ge.length===1&&Pl(Ge[0],J)&&Y.tag==="remove"&&(le.messageStubType=Ln.GROUP_PARTICIPANT_LEAVE),le.messageStubParameters=Ge;break;case"subject":le.messageStubType=Ln.GROUP_CHANGE_SUBJECT,le.messageStubParameters=[Y.attrs.subject];break;case"description":let De=et(Y,"body")?.content?.toString();le.messageStubType=Ln.GROUP_CHANGE_DESCRIPTION,le.messageStubParameters=De?[De]:void 0;break;case"announcement":case"not_announcement":le.messageStubType=Ln.GROUP_CHANGE_ANNOUNCE,le.messageStubParameters=[Y.tag==="announcement"?"on":"off"];break;case"locked":case"unlocked":le.messageStubType=Ln.GROUP_CHANGE_RESTRICT,le.messageStubParameters=[Y.tag==="locked"?"on":"off"];break;case"invite":le.messageStubType=Ln.GROUP_CHANGE_INVITE_LINK,le.messageStubParameters=[Y.attrs.code];break;case"member_add_mode":let tt=Y.content;tt&&(le.messageStubType=Ln.GROUP_MEMBER_ADD_MODE,le.messageStubParameters=[tt.toString()]);break;case"membership_approval_mode":let Mt=et(Y,"group_join");Mt&&(le.messageStubType=Ln.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE,le.messageStubParameters=[Mt.attrs.state]);break;case"created_membership_requests":le.messageStubType=Ln.GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD,le.messageStubParameters=[ye,"created",Y.attrs.request_method];break;case"revoked_membership_requests":let Pt=Pl(ye,J);le.messageStubType=Ln.GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD,le.messageStubParameters=[ye,Pt?"revoked":"rejected"];break}},ee=async J=>{let Y={},[le]=ov(J),ye=J.attrs.type,fe=vi(J.attrs.from);switch(ye){case"privacy_token":let ze=Yn(le,"token");for(let{attrs:Di,content:Oa}of ze){let Nt=Di.jid;s.emit("chats.update",[{id:Nt,tcToken:Oa}]),t.debug({jid:Nt},"got privacy token update")}break;case"newsletter":await X(J);break;case"mex":await ie(J);break;case"w:gp2":H(J.attrs.participant,le,Y);break;case"mediaretry":let Ue=Wgt(J);s.emit("messages.media-update",[Ue]);break;case"encrypt":await q(J);break;case"devices":let Ge=Yn(le,"device");if(Pl(le.attrs.jid,c.creds.me.id)){let Di=Ge.map(Oa=>Oa.attrs.jid);t.info({deviceJids:Di},"got my own devices")}break;case"server_sync":let De=et(J,"collection");if(De){let Di=De.attrs.name;await m([Di],!1)}break;case"picture":let tt=et(J,"set"),Mt=et(J,"delete");if(s.emit("contacts.update",[{id:vi(J?.attrs?.from)||(tt||Mt)?.attrs?.hash||"",imgUrl:tt?"changed":"removed"}]),zl(fe)){let Di=tt||Mt;Y.messageStubType=Ln.GROUP_CHANGE_ICON,tt&&(Y.messageStubParameters=[tt.attrs.id]),Y.participant=Di?.attrs.author,Y.key={...Y.key||{},participant:tt?.attrs.author}}break;case"account_sync":if(le.tag==="disappearing_mode"){let Di=+le.attrs.duration,Oa=+le.attrs.t;t.info({newDuration:Di},"updated account disappearing mode"),s.emit("creds.update",{accountSettings:{...c.creds.accountSettings,defaultDisappearingMode:{ephemeralExpiration:Di,ephemeralSettingTimestamp:Oa}}})}else if(le.tag==="blocklist"){let Di=Yn(le,"item");for(let{attrs:Oa}of Di){let Nt=[Oa.jid],qo=Oa.action==="block"?"add":"remove";s.emit("blocklist.update",{blocklist:Nt,type:qo})}}break;case"link_code_companion_reg":let Pt=et(J,"link_code_companion_reg"),Zt=ue(ep(Pt,"link_code_pairing_ref")),qe=ue(ep(Pt,"primary_identity_pub")),at=ue(ep(Pt,"link_code_pairing_wrapped_primary_ephemeral_pub")),kt=await Ae(at),At=Va.sharedKey(c.creds.pairingEphemeralKeyPair.private,kt),en=(0,BH.randomBytes)(32),Mn=(0,BH.randomBytes)(32),Bn=await L0(At,32,{salt:Mn,info:"link_code_pairing_key_bundle_encryption_key"}),An=Buffer.concat([Buffer.from(c.creds.signedIdentityKey.public),qe,en]),Fn=(0,BH.randomBytes)(12),Ya=cv(An,Bn,Fn,Buffer.alloc(0)),Lo=Buffer.concat([Mn,Fn,Ya]),ar=Va.sharedKey(c.creds.signedIdentityKey.private,qe),li=Buffer.concat([At,ar,en]);c.creds.advSecretKey=(await L0(li,32,{info:"adv_secret"})).toString("base64"),await y({tag:"iq",attrs:{to:Jn,type:"set",id:i.generateMessageTag(),xmlns:"md"},content:[{tag:"link_code_companion_reg",attrs:{jid:c.creds.me.id,stage:"companion_finish"},content:[{tag:"link_code_pairing_wrapped_key_bundle",attrs:{},content:Lo},{tag:"companion_identity_public",attrs:{},content:c.creds.signedIdentityKey.public},{tag:"link_code_pairing_ref",attrs:{},content:Zt}]}]}),c.creds.registered=!0,s.emit("creds.update",c.creds)}if(Object.keys(Y).length)return Y};async function Ae(J){let Y=ue(J),le=Y.slice(0,32),ye=await Q9(c.creds.pairingCode,le),fe=Y.slice(32,48),ze=Y.slice(48,80);return Bft(ze,ye,fe)}function ue(J){if(J===void 0)throw new i6.Boom("Invalid buffer",{statusCode:400});return J instanceof Buffer?J:Buffer.from(J)}let se=(J,Y)=>{let le=`${J}:${Y}`;return(C.get(le)||0)<o},de=(J,Y)=>{let le=`${J}:${Y}`,ye=(C.get(le)||0)+1;C.set(le,ye)},Oe=async(J,Y,le)=>{let ye=await Promise.all(Y.map(Ge=>n({...J,id:Ge}))),fe=J.remoteJid,ze=J.participant||fe,Ue=!Xo(ze)?.device;await _([ze],!0),zl(fe)&&await c.keys.set({"sender-key-memory":{[fe]:null}}),t.debug({participant:ze,sendToAll:Ue},"forced new session for retry recp");for(let[Ge,De]of ye.entries())if(De){de(Y[Ge],ze);let tt={messageId:Y[Ge]};Ue?tt.useUserDevicesCache=!1:tt.participant={jid:ze,count:+le.attrs.count},await S(J.remoteJid,De,tt)}else t.debug({jid:J.remoteJid,id:Y[Ge]},"recv retry request, but message not available")},Te=async J=>{let{attrs:Y,content:le}=J,ye=Y.from.includes("lid"),fe=Pl(Y.participant||Y.from,ye?c.creds.me?.lid:c.creds.me?.id),ze=!fe||zl(Y.from)?Y.from:Y.recipient,Ue=!Y.recipient||(Y.type==="retry"||Y.type==="sender")&&fe,Ge={remoteJid:ze,id:"",fromMe:Ue,participant:Y.participant};if(a(ze)&&ze!=="@s.whatsapp.net"){t.debug({remoteJid:ze},"ignoring receipt from jid"),await k(J);return}let De=[Y.id];if(Array.isArray(le)){let tt=Yn(le[0],"item");De.push(...tt.map(Mt=>Mt.attrs.id))}try{await Promise.all([p.mutex(async()=>{let tt=vft(Y.type);if(typeof tt<"u"&&(tt>=Je.WebMessageInfo.Status.SERVER_ACK||!fe))if(zl(ze)||U2(ze)){if(Y.participant){let Mt=tt===Je.WebMessageInfo.Status.DELIVERY_ACK?"receiptTimestamp":"readTimestamp";s.emit("message-receipt.update",De.map(Pt=>({key:{...Ge,id:Pt},receipt:{userJid:vi(Y.participant),[Mt]:+Y.t}})))}}else s.emit("messages.update",De.map(Mt=>({key:{...Ge,id:Mt},update:{status:tt}})));if(Y.type==="retry"){Ge.participant=Ge.participant||Y.from;let Mt=et(J,"retry");if(se(De[0],Ge.participant))if(Ge.fromMe)try{t.debug({attrs:Y,key:Ge},"recv retry request"),await Oe(Ge,De,Mt)}catch(Pt){t.error({key:Ge,ids:De,trace:Pt.stack},"error in sending message again")}else t.info({attrs:Y,key:Ge},"recv retry for not fromMe message");else t.info({attrs:Y,key:Ge},"will not send message again, as sent too many times")}})])}finally{await k(J)}},_e=async J=>{let Y=J.attrs.from;if(a(Y)&&Y!=="@s.whatsapp.net"){t.debug({remoteJid:Y,id:J.attrs.id},"ignored notification"),await k(J);return}try{await Promise.all([p.mutex(async()=>{let le=await ee(J);if(le){let ye=Pl(J.attrs.participant||Y,c.creds.me.id);le.key={remoteJid:Y,fromMe:ye,participant:J.attrs.participant,id:J.attrs.id,...le.key||{}},le.participant??(le.participant=J.attrs.participant),le.messageTimestamp=+J.attrs.t;let fe=Je.WebMessageInfo.fromObject(le);await b(fe,"append")}})])}finally{await k(J)}},xe=async J=>{if(a(J.attrs.from)&&J.attrs.from!=="@s.whatsapp.net"){t.debug({key:J.attrs.key},"ignored message"),await k(J);return}let Y=et(J,"enc");if(Y&&Y.attrs.type==="msmsg"){t.debug({key:J.attrs.key},"ignored msmsg"),await k(J);return}let le;if(et(J,"unavailable")&&!Y){await k(J);let{key:Ge}=J9(J,c.creds.me.id,c.creds.me.lid||"").fullMessage;if(le=await Z(Ge),le==="RESOLVED")return;t.debug("received unavailable message, acked and requested resend from phone")}else N.get(J.attrs.id)&&N.del(J.attrs.id);let{fullMessage:ye,category:fe,author:ze,decrypt:Ue}=Cft(J,c.creds.me.id,c.creds.me.lid||"",h,t);le&&ye?.messageStubParameters?.[0]===$9&&(ye.messageStubParameters=[$9,le]),ye.message?.protocolMessage?.type===Je.Message.ProtocolMessage.Type.SHARE_PHONE_NUMBER&&J.attrs.sender_pn&&s.emit("chats.phoneNumberShare",{lid:J.attrs.from,jid:J.attrs.sender_pn});try{await Promise.all([p.mutex(async()=>{if(await Ue(),ye.messageStubType===Je.WebMessageInfo.StubType.CIPHERTEXT){if(ye?.messageStubParameters?.[0]===xft)return k(J,kft.ParsingError);P.mutex(async()=>{if(l.isOpen){if(et(J,"unavailable"))return;let Ge=et(J,"enc");await U(J,!Ge),r&&await sv(r)}else t.debug({node:J},"connection closed, ignoring retry req")})}else{let Ge,De=ye.key.participant;if(fe==="peer"?Ge="peer_msg":ye.key.fromMe?(Ge="sender",N0(ye.key.remoteJid)&&(De=ze)):W||(Ge="inactive"),await v(ye.key.remoteJid,De,[ye.key.id],Ge),FK(ye.message)){let Mt=vi(ye.key.remoteJid);await v(Mt,void 0,[ye.key.id],"hist_sync")}}Q2t(ye,c.creds.me.id),await b(ye,J.attrs.offline?"append":"notify")})])}catch(Ge){t.error({error:Ge,node:J},"error in handling message")}},je=async(J,Y,le)=>{if(!c.creds.me?.id)throw new i6.Boom("Not authenticated");let ye={historySyncOnDemandRequest:{chatJid:Y.remoteJid,oldestMsgFromMe:Y.fromMe,oldestMsgId:Y.id,oldestMsgTimestampMs:le,onDemandMsgCount:J},peerDataOperationRequestType:Je.Message.PeerDataOperationRequestType.HISTORY_SYNC_ON_DEMAND};return w(ye)},Z=async J=>{if(!c.creds.me?.id)throw new i6.Boom("Not authenticated");if(N.get(J?.id)){t.debug({messageKey:J},"already requested resend");return}else N.set(J?.id,!0);if(await sv(5e3),!N.get(J?.id))return t.debug({messageKey:J},"message received while resend requested"),"RESOLVED";let Y={placeholderMessageResendRequest:[{messageKey:J}],peerDataOperationRequestType:Je.Message.PeerDataOperationRequestType.PLACEHOLDER_MESSAGE_RESEND};return setTimeout(()=>{N.get(J?.id)&&(t.debug({messageKey:J},"PDO message without response after 15 seconds. Phone possibly offline"),N.del(J?.id))},15e3),w(Y)},pe=async J=>{let Y,{attrs:le}=J,[ye]=ov(J);if(!ye)throw new i6.Boom("Missing call info in call node");let fe=ye.attrs["call-id"],ze=ye.attrs.from||ye.attrs["call-creator"];if(Y=wft(ye),iv(ze)&&ye.tag==="relaylatency"&&!R.get(fe)){Y="offer";let tt={chatId:le.from,from:ze,id:fe,date:new Date(+le.t*1e3),offline:!!le.offline,status:Y};R.set(fe,tt)}let Ue={chatId:le.from,from:ze,id:fe,date:new Date(+le.t*1e3),offline:!!le.offline,status:Y};Y==="offer"&&(Ue.isVideo=!!et(ye,"video"),Ue.isGroup=ye.attrs.type==="group"||!!ye.attrs["group-jid"],Ue.groupJid=ye.attrs["group-jid"],R.set(Ue.id,Ue));let Ge=R.get(Ue.id);Ge&&(Ue.isVideo=Ge.isVideo,Ue.isGroup=Ge.isGroup),(Y==="reject"||Y==="accept"||Y==="timeout"||Y==="terminate")&&R.del(Ue.id),s.emit("call",[Ue]),await k(J)},he=async({attrs:J})=>{let Y={remoteJid:J.from,fromMe:!0,id:J.id};J.error&&(t.warn({attrs:J},"received error in ack"),s.emit("messages.update",[{key:Y,update:{status:nv.ERROR,messageStubParameters:[J.error]}}]))},V=async(J,Y,le)=>{s.buffer(),await ye(),s.flush();function ye(){return le(J,!1).catch(fe=>O(fe,Y))}},ae=(()=>{let J=new Map([["message",xe],["call",pe],["receipt",Te],["notification",_e]]),Y=[],le=!1;return{enqueue:(fe,ze)=>{if(Y.push({type:fe,node:ze}),le)return;le=!0,(async()=>{for(;Y.length&&l.isOpen;){let{type:Ge,node:De}=Y.shift(),tt=J.get(Ge);if(!tt){O(new Error(`unknown offline node type: ${Ge}`),"processing offline node");continue}await tt(De)}le=!1})().catch(Ge=>O(Ge,"processing offline nodes"))}}})(),F=(J,Y,le,ye)=>{!!Y.attrs.offline?ae.enqueue(J,Y):V(Y,le,ye)};async function X(J){let Y=J.attrs.from,le=ov(J)[0],ye=J.attrs.participant;switch(t.info({from:Y,child:le},"got newsletter notification"),le.tag){case"reaction":let fe={id:Y,server_id:le.attrs.message_id,reaction:{code:ri(le,"reaction"),count:1}};s.emit("newsletter.reaction",fe);break;case"view":let ze={id:Y,server_id:le.attrs.message_id,count:parseInt(le.content?.toString()||"0",10)};s.emit("newsletter.view",ze);break;case"participant":let Ue={id:Y,author:ye,user:le.attrs.jid,action:le.attrs.action,new_role:le.attrs.role};s.emit("newsletter-participants.update",Ue);break;case"update":let Ge=et(le,"settings");if(Ge){let tt={},Mt=et(Ge,"name");Mt?.content&&(tt.name=Mt.content.toString());let Pt=et(Ge,"description");Pt?.content&&(tt.description=Pt.content.toString()),s.emit("newsletter-settings.update",{id:Y,update:tt})}break;case"message":let De=et(le,"plaintext");if(De?.content)try{let tt=typeof De.content=="string"?Buffer.from(De.content,"binary"):Buffer.from(De.content),Mt=Je.Message.decode(tt),Pt=Je.WebMessageInfo.fromObject({key:{remoteJid:Y,id:le.attrs.message_id||le.attrs.server_id,fromMe:!1},message:Mt,messageTimestamp:+le.attrs.t});await b(Pt,"append"),t.info("Processed plaintext newsletter message")}catch(tt){t.error({error:tt},"Failed to decode plaintext newsletter message")}break;default:t.warn({node:J},"Unknown newsletter notification");break}}async function ie(J){let Y=et(J,"mex");if(!Y?.content){t.warn({node:J},"Invalid mex newsletter notification");return}let le;try{le=JSON.parse(Y.content.toString())}catch(ze){t.error({err:ze,node:J},"Failed to parse mex newsletter notification");return}let ye=le?.operation,fe=le?.updates;if(!fe||!ye){t.warn({data:le},"Invalid mex newsletter notification content");return}switch(t.info({operation:ye,updates:fe},"got mex newsletter notification"),ye){case"NotificationNewsletterUpdate":for(let ze of fe)ze.jid&&ze.settings&&Object.keys(ze.settings).length>0&&s.emit("newsletter-settings.update",{id:ze.jid,update:ze.settings});break;case"NotificationNewsletterAdminPromote":for(let ze of fe)ze.jid&&ze.user&&s.emit("newsletter-participants.update",{id:ze.jid,author:J.attrs.from,user:ze.user,new_role:"ADMIN",action:"promote"});break;default:t.info({operation:ye,data:le},"Unhandled mex newsletter notification");break}}return l.on("CB:message",J=>{F("message",J,"processing message",xe)}),l.on("CB:call",async J=>{F("call",J,"handling call",pe)}),l.on("CB:receipt",J=>{F("receipt",J,"handling receipt",Te)}),l.on("CB:notification",async J=>{F("notification",J,"handling notification",_e)}),l.on("CB:ack,class:message",J=>{he(J).catch(Y=>O(Y,"handling bad ack"))}),s.on("call",([J])=>{if(J&&(J.status==="timeout"||J.status==="offer"&&J.isGroup)){let Y={key:{remoteJid:J.chatId,id:J.id,fromMe:!1},messageTimestamp:np(J.date)};J.status==="timeout"?J.isGroup?Y.messageStubType=J.isVideo?Ln.CALL_MISSED_GROUP_VIDEO:Ln.CALL_MISSED_GROUP_VOICE:Y.messageStubType=J.isVideo?Ln.CALL_MISSED_VIDEO:Ln.CALL_MISSED_VOICE:Y.message={call:{callKey:Buffer.from(J.id)}};let le=Je.WebMessageInfo.fromObject(Y);b(le,J.offline?"append":"notify")}}),s.on("connection.update",({isOnline:J})=>{typeof J<"u"&&(W=J,t.trace(`sendActiveReceipts set to "${W}"`))}),{...i,sendMessageAck:k,sendRetryRequest:U,rejectCall:K,fetchMessageHistory:je,requestPlaceholderResend:Z}}});var rAt,oAt=me(()=>{P_t();Cr();fde();iAt();rAt=e=>{let t=nAt(e),{authState:r,query:o,waUploadToServer:n}=t,a=async({jid:h,limit:y,cursor:b})=>{h=h||r.creds.me?.id,h=vi(h);let m=[{tag:"limit",attrs:{},content:Buffer.from((y||10).toString())},{tag:"width",attrs:{},content:Buffer.from("100")},{tag:"height",attrs:{},content:Buffer.from("100")}];b&&m.push({tag:"after",attrs:{},content:b});let O=await o({tag:"iq",attrs:{to:Jn,type:"get",xmlns:"w:biz:catalog"},content:[{tag:"product_catalog",attrs:{jid:h,allow_shop_source:"true"},content:m}]});return v_t(O)},i=async(h,y=51)=>{h=h||r.creds.me?.id,h=vi(h);let b=await o({tag:"iq",attrs:{to:Jn,type:"get",xmlns:"w:biz:catalog",smax_id:"35"},content:[{tag:"collections",attrs:{biz_jid:h},content:[{tag:"collection_limit",attrs:{},content:Buffer.from(y.toString())},{tag:"item_limit",attrs:{},content:Buffer.from(y.toString())},{tag:"width",attrs:{},content:Buffer.from("100")},{tag:"height",attrs:{},content:Buffer.from("100")}]}]});return I_t(b)},s=async(h,y)=>{let b=await o({tag:"iq",attrs:{to:Jn,type:"get",xmlns:"fb:thrift_iq",smax_id:"5"},content:[{tag:"order",attrs:{op:"get",id:h},content:[{tag:"image_dimensions",attrs:{},content:[{tag:"width",attrs:{},content:Buffer.from("100")},{tag:"height",attrs:{},content:Buffer.from("100")}]},{tag:"token",attrs:{},content:Buffer.from(y)}]}]});return w_t(b)},c=async(h,y)=>{y=await xbe(y,n);let b=Rbe(h,y),m=await o({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:biz:catalog"},content:[{tag:"product_catalog_edit",attrs:{v:"1"},content:[b,{tag:"width",attrs:{},content:"100"},{tag:"height",attrs:{},content:"100"}]}]}),O=et(m,"product_catalog_edit"),_=et(O,"product");return ZN(_)},l=async h=>{h.isHidden=!!h.isHidden,h=await xbe(h,n);let y=Rbe(void 0,h),b=await o({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:biz:catalog"},content:[{tag:"product_catalog_add",attrs:{v:"1"},content:[y,{tag:"width",attrs:{},content:"100"},{tag:"height",attrs:{},content:"100"}]}]}),m=et(b,"product_catalog_add"),O=et(m,"product");return ZN(O)},p=async h=>{let y=await o({tag:"iq",attrs:{to:Jn,type:"set",xmlns:"w:biz:catalog"},content:[{tag:"product_catalog_delete",attrs:{v:"1"},content:h.map(m=>({tag:"product",attrs:{},content:[{tag:"id",attrs:{},content:Buffer.from(m)}]}))}]});return{deleted:+(et(y,"product_catalog_delete")?.attrs.deleted_count||0)}};return{...t,logger:e.logger,getOrderDetails:s,getCatalog:a,getCollections:i,productCreate:l,productDelete:p,productUpdate:c}}});var aAt,qbe,sAt=me(()=>{ao();k0();jh();zbe();Cr();oAt();aAt=e=>{let t=rAt(e),{authState:r,ev:o,query:n,upsertMessage:a}=t,i=async(h,y,b)=>n({tag:"iq",attrs:{type:y,xmlns:"w:g2",to:h},content:b}),s=async h=>{let y=await i(h,"get",[{tag:"query",attrs:{request:"interactive"}}]);return qbe(y)},c=async()=>{let h=await n({tag:"iq",attrs:{to:"@g.us",xmlns:"w:g2",type:"get"},content:[{tag:"participating",attrs:{},content:[{tag:"participants",attrs:{}},{tag:"description",attrs:{}}]}]}),y={},b=et(h,"communities");if(b){let m=Yn(b,"community");for(let O of m){let _=qbe({tag:"result",attrs:{},content:[O]});y[_.id]=_}}return t.ev.emit("groups.update",Object.values(y)),y};async function l(h){QN.info({node:h},"parseGroupResult");let y=et(h,"group");if(y)try{QN.info({groupNode:y},"groupNode");let b=await t.groupMetadata(`${y.attrs.id}@g.us`);return b||p.empty()}catch(b){return console.error("Error parsing group metadata:",b),p.empty()}return p.empty()}let p={empty:()=>null,of:h=>h!==null?{value:h}:null};return t.ws.on("CB:ib,,dirty",async h=>{let{attrs:y}=et(h,"dirty");y.type==="communities"&&(await c(),await t.cleanDirtyBits("groups"))}),{...t,communityMetadata:s,communityCreate:async(h,y)=>{let b=yde().substring(0,12),m=await i("@g.us","set",[{tag:"create",attrs:{subject:h},content:[{tag:"description",attrs:{id:b},content:[{tag:"body",attrs:{},content:Buffer.from(y||"","utf-8")}]},{tag:"parent",attrs:{default_membership_approval_mode:"request_required"}},{tag:"allow_non_admin_sub_group_creation",attrs:{}},{tag:"create_general_chat",attrs:{}}]}]);return await l(m)},communityLeave:async h=>{await i("@g.us","set",[{tag:"leave",attrs:{},content:[{tag:"community",attrs:{id:h}}]}])},communityUpdateSubject:async(h,y)=>{await i(h,"set",[{tag:"subject",attrs:{},content:Buffer.from(y,"utf-8")}])},communityRequestParticipantsList:async h=>{let y=await i(h,"get",[{tag:"membership_approval_requests",attrs:{}}]),b=et(y,"membership_approval_requests");return Yn(b,"membership_approval_request").map(O=>O.attrs)},communityRequestParticipantsUpdate:async(h,y,b)=>{let m=await i(h,"set",[{tag:"membership_requests_action",attrs:{},content:[{tag:b,attrs:{},content:y.map(S=>({tag:"participant",attrs:{jid:S}}))}]}]),O=et(m,"membership_requests_action"),_=et(O,b);return Yn(_,"participant").map(S=>({status:S.attrs.error||"200",jid:S.attrs.jid}))},communityParticipantsUpdate:async(h,y,b)=>{let m=await i(h,"set",[{tag:b,attrs:{},content:y.map(M=>({tag:"participant",attrs:{jid:M}}))}]),O=et(m,b);return Yn(O,"participant").map(M=>({status:M.attrs.error||"200",jid:M.attrs.jid,content:M}))},communityUpdateDescription:async(h,y)=>{let m=(await s(h)).descId??null;await i(h,"set",[{tag:"description",attrs:{...y?{id:yde()}:{delete:"true"},...m?{prev:m}:{}},content:y?[{tag:"body",attrs:{},content:Buffer.from(y,"utf-8")}]:void 0}])},communityInviteCode:async h=>{let y=await i(h,"get",[{tag:"invite",attrs:{}}]);return et(y,"invite")?.attrs.code},communityRevokeInvite:async h=>{let y=await i(h,"set",[{tag:"invite",attrs:{}}]);return et(y,"invite")?.attrs.code},communityAcceptInvite:async h=>{let y=await i("@g.us","set",[{tag:"invite",attrs:{code:h}}]);return et(y,"community")?.attrs.jid},communityRevokeInviteV4:async(h,y)=>!!await i(h,"set",[{tag:"revoke",attrs:{},content:[{tag:"participant",attrs:{jid:y}}]}]),communityAcceptInviteV4:o.createBufferedFunction(async(h,y)=>{h=typeof h=="string"?{remoteJid:h}:h;let b=await i(y.groupJid,"set",[{tag:"accept",attrs:{code:y.inviteCode,expiration:y.inviteExpiration.toString(),admin:h.remoteJid}}]);return h.id&&(y=Je.Message.GroupInviteMessage.fromObject(y),y.inviteExpiration=0,y.inviteCode="",o.emit("messages.update",[{key:h,update:{message:{groupInviteMessage:y}}}])),await a({key:{remoteJid:y.groupJid,id:ks(t.user?.id),fromMe:!1,participant:h.remoteJid},messageStubType:Ln.GROUP_PARTICIPANT_ADD,messageStubParameters:[r.creds.me.id],participant:h.remoteJid,messageTimestamp:np()},"notify"),b.attrs.from}),communityGetInviteInfo:async h=>{let y=await i("@g.us","get",[{tag:"invite",attrs:{code:h}}]);return qbe(y)},communityToggleEphemeral:async(h,y)=>{let b=y?{tag:"ephemeral",attrs:{expiration:y.toString()}}:{tag:"not_ephemeral",attrs:{}};await i(h,"set",[b])},communitySettingUpdate:async(h,y)=>{await i(h,"set",[{tag:y,attrs:{}}])},communityMemberAddMode:async(h,y)=>{await i(h,"set",[{tag:"member_add_mode",attrs:{},content:y}])},communityJoinApprovalMode:async(h,y)=>{await i(h,"set",[{tag:"membership_approval_mode",attrs:{},content:[{tag:"community_join",attrs:{state:y}}]}])},communityFetchAllParticipating:c}},qbe=e=>{let t=et(e,"community"),r=et(t,"description"),o,n;r&&(o=ri(r,"body"),n=r.attrs.id);let a=t.attrs.id?.includes("@")?t.attrs.id:C0(t.attrs.id||"","g.us"),i=et(t,"ephemeral")?.attrs.expiration,s=ri(t,"member_add_mode")==="all_member_add";return{id:a,subject:t.attrs.subject||"",subjectOwner:t.attrs.s_o,subjectTime:Number(t.attrs.s_t||0),size:Yn(t,"participant").length,creation:Number(t.attrs.creation||0),owner:t.attrs.creator?vi(t.attrs.creator):void 0,desc:o,descId:n,linkedParent:et(t,"linked_parent")?.attrs.jid||void 0,restrict:!!et(t,"locked"),announce:!!et(t,"announcement"),isCommunity:!!et(t,"parent"),isCommunityAnnounce:!!et(t,"default_sub_community"),joinApprovalMode:!!et(t,"membership_approval_mode"),memberAddMode:s,participants:Yn(t,"participant").map(({attrs:l})=>({id:l.jid,admin:l.type||null})),ephemeralDuration:i?+i:void 0,addressingMode:ri(t,"addressing_mode")}}});var BFn,cAt,lAt=me(()=>{Fc();sAt();BFn=e=>{let t={...M_t,...e};return e.shouldSyncHistoryMessage===void 0&&(t.shouldSyncHistoryMessage=()=>!!t.syncFullHistory),aAt(t)},cAt=BFn});var Bbe=me(()=>{});var Ube=me(()=>{});var uAt=me(()=>{Ube();Bbe()});var pAt=me(()=>{Bbe();uAt();Ube()});var fAt,dAt=me(()=>{lAt();ao();jh();k0();Fc();Cr();pAt();t6();fAt=cAt});var Wbe=L((Ovr,hAt)=>{"use strict";function UFn(e,t){return t}hAt.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=UFn;let r=new Error().stack;if(Error.prepareStackTrace=t,!Array.isArray(r))return;let o=r.slice(2),n=[];for(let a of o)a&&n.push(a.getFileName());return n}});var cI=L((Mvr,yAt)=>{"use strict";var WFn=Symbol("pino.setLevel"),FFn=Symbol("pino.getLevel"),jFn=Symbol("pino.levelVal"),GFn=Symbol("pino.levelComp"),KFn=Symbol("pino.useLevelLabels"),HFn=Symbol("pino.useOnlyCustomLevels"),VFn=Symbol("pino.mixin"),$Fn=Symbol("pino.lsCache"),JFn=Symbol("pino.chindings"),XFn=Symbol("pino.asJson"),YFn=Symbol("pino.write"),QFn=Symbol("pino.redactFmt"),ZFn=Symbol("pino.time"),e7n=Symbol("pino.timeSliceIndex"),t7n=Symbol("pino.stream"),n7n=Symbol("pino.stringify"),i7n=Symbol("pino.stringifySafe"),r7n=Symbol("pino.stringifiers"),o7n=Symbol("pino.end"),a7n=Symbol("pino.formatOpts"),s7n=Symbol("pino.messageKey"),c7n=Symbol("pino.errorKey"),l7n=Symbol("pino.nestedKey"),u7n=Symbol("pino.nestedKeyStr"),p7n=Symbol("pino.mixinMergeStrategy"),f7n=Symbol("pino.msgPrefix"),d7n=Symbol("pino.wildcardFirst"),h7n=Symbol.for("pino.serializers"),y7n=Symbol.for("pino.formatters"),b7n=Symbol.for("pino.hooks"),m7n=Symbol.for("pino.metadata");yAt.exports={setLevelSym:WFn,getLevelSym:FFn,levelValSym:jFn,levelCompSym:GFn,useLevelLabelsSym:KFn,mixinSym:VFn,lsCacheSym:$Fn,chindingsSym:JFn,asJsonSym:XFn,writeSym:YFn,serializersSym:h7n,redactFmtSym:QFn,timeSym:ZFn,timeSliceIndexSym:e7n,streamSym:t7n,stringifySym:n7n,stringifySafeSym:i7n,stringifiersSym:r7n,endSym:o7n,formatOptsSym:a7n,messageKeySym:s7n,errorKeySym:c7n,nestedKeySym:l7n,wildcardFirstSym:d7n,needsMetadataGsym:m7n,useOnlyCustomLevelsSym:HFn,formattersSym:y7n,hooksSym:b7n,nestedKeyStrSym:u7n,mixinMergeStrategySym:p7n,msgPrefixSym:f7n}});var jbe=L((_vr,OAt)=>{"use strict";var bAt=Jye(),{redactFmtSym:g7n,wildcardFirstSym:UH}=cI(),Fbe=/[^.[\]]+|\[([^[\]]*?)\]/g,mAt="[Redacted]",gAt=!1;function O7n(e,t){let{paths:r,censor:o,remove:n}=M7n(e),a=r.reduce((c,l)=>{Fbe.lastIndex=0;let p=Fbe.exec(l),h=Fbe.exec(l),y=p[1]!==void 0?p[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):p[0];if(y==="*"&&(y=UH),h===null)return c[y]=null,c;if(c[y]===null)return c;let{index:b}=h,m=`${l.substr(b,l.length-1)}`;return c[y]=c[y]||[],y!==UH&&c[y].length===0&&c[y].push(...c[UH]||[]),y===UH&&Object.keys(c).forEach(function(O){c[O]&&c[O].push(m)}),c[y].push(m),c},{}),i={[g7n]:bAt({paths:r,censor:o,serialize:t,strict:gAt,remove:n})},s=(...c)=>t(typeof o=="function"?o(...c):o);return[...Object.keys(a),...Object.getOwnPropertySymbols(a)].reduce((c,l)=>{if(a[l]===null)c[l]=p=>s(p,[l]);else{let p=typeof o=="function"?(h,y)=>o(h,[l,...y]):o;c[l]=bAt({paths:a[l],censor:p,serialize:t,strict:gAt,remove:n})}return c},i)}function M7n(e){if(Array.isArray(e))return e={paths:e,censor:mAt},e;let{paths:t,censor:r=mAt,remove:o}=e;if(Array.isArray(t)===!1)throw Error("pino \u2013 redact must contain an array of strings");return o===!0&&(r=void 0),{paths:t,censor:r,remove:o}}OAt.exports=O7n});var AAt=L((Avr,_At)=>{"use strict";var _7n=()=>"",A7n=()=>`,"time":${Date.now()}`,S7n=()=>`,"time":${Math.round(Date.now()/1e3)}`,E7n=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,T7n=1000000n,MAt=1000000000n,v7n=BigInt(Date.now())*T7n,I7n=process.hrtime.bigint(),w7n=()=>{let e=process.hrtime.bigint()-I7n,t=v7n+e,r=t/MAt,o=t%MAt,n=Number(r*1000n+o/1000000n),a=new Date(n),i=a.getUTCFullYear(),s=(a.getUTCMonth()+1).toString().padStart(2,"0"),c=a.getUTCDate().toString().padStart(2,"0"),l=a.getUTCHours().toString().padStart(2,"0"),p=a.getUTCMinutes().toString().padStart(2,"0"),h=a.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${i}-${s}-${c}T${l}:${p}:${h}.${o.toString().padStart(9,"0")}Z"`};_At.exports={nullTime:_7n,epochTime:A7n,unixTime:S7n,isoTime:E7n,isoTimeNano:w7n}});var SAt=L((Svr,P7n)=>{P7n.exports={name:"thread-stream",version:"3.1.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^20.1.0","@types/tap":"^15.0.0","@yao-pkg/pkg":"^5.11.5",desm:"^1.3.0",fastbench:"^1.0.1",husky:"^9.0.6","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1",standard:"^17.0.0",tap:"^16.2.0","ts-node":"^10.8.0",typescript:"^5.3.2","why-is-node-running":"^2.2.2"},scripts:{build:"tsc --noEmit",test:'standard && npm run build && npm run transpile && tap "test/**/*.test.*js" && tap --ts test/*.test.*ts',"test:ci":"standard && npm run transpile && npm run test:ci:js && npm run test:ci:ts","test:ci:js":'tap --no-check-coverage --timeout=120 --coverage-report=lcovonly "test/**/*.test.*js"',"test:ci:ts":'tap --ts --no-check-coverage --coverage-report=lcovonly "test/**/*.test.*ts"',"test:yarn":'npm run transpile && tap "test/**/*.test.js" --no-check-coverage',transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},standard:{ignore:["test/ts/**/*","test/syntax-error.mjs"]},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina <hello@matteocollina.com>",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var TAt=L((Evr,EAt)=>{"use strict";function z7n(e,t,r,o,n){let a=Date.now()+o,i=Atomics.load(e,t);if(i===r){n(null,"ok");return}let s=i,c=l=>{Date.now()>a?n(null,"timed-out"):setTimeout(()=>{s=i,i=Atomics.load(e,t),i===s?c(l>=1e3?1e3:l*2):i===r?n(null,"ok"):n(null,"not-equal")},l)};c(1)}function R7n(e,t,r,o,n){let a=Date.now()+o,i=Atomics.load(e,t);if(i!==r){n(null,"ok");return}let s=c=>{Date.now()>a?n(null,"timed-out"):setTimeout(()=>{i=Atomics.load(e,t),i!==r?n(null,"ok"):s(c>=1e3?1e3:c*2)},c)};s(1)}EAt.exports={wait:z7n,waitDiff:R7n}});var IAt=L((Tvr,vAt)=>{"use strict";vAt.exports={WRITE_INDEX:4,READ_INDEX:8}});var xAt=L((vvr,RAt)=>{"use strict";var{version:x7n}=SAt(),{EventEmitter:k7n}=require("events"),{Worker:C7n}=require("worker_threads"),{join:N7n}=require("path"),{pathToFileURL:D7n}=require("url"),{wait:L7n}=TAt(),{WRITE_INDEX:Bu,READ_INDEX:Vh}=IAt(),q7n=require("buffer"),B7n=require("assert"),bt=Symbol("kImpl"),U7n=q7n.constants.MAX_STRING_LENGTH,r6=class{constructor(t){this._value=t}deref(){return this._value}},FH=class{register(){}unregister(){}},W7n=process.env.NODE_V8_COVERAGE?FH:global.FinalizationRegistry||FH,F7n=process.env.NODE_V8_COVERAGE?r6:global.WeakRef||r6,wAt=new W7n(e=>{e.exited||e.terminate()});function j7n(e,t){let{filename:r,workerData:o}=t,a=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||N7n(__dirname,"lib","worker.js"),i=new C7n(a,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:r.indexOf("file://")===0?r:D7n(r).href,dataBuf:e[bt].dataBuf,stateBuf:e[bt].stateBuf,workerData:{$context:{threadStreamVersion:x7n},...o}}});return i.stream=new r6(e),i.on("message",G7n),i.on("exit",zAt),wAt.register(e,i),i}function PAt(e){B7n(!e[bt].sync),e[bt].needDrain&&(e[bt].needDrain=!1,e.emit("drain"))}function WH(e){let t=Atomics.load(e[bt].state,Bu),r=e[bt].data.length-t;if(r>0){if(e[bt].buf.length===0){e[bt].flushing=!1,e[bt].ending?$be(e):e[bt].needDrain&&process.nextTick(PAt,e);return}let o=e[bt].buf.slice(0,r),n=Buffer.byteLength(o);n<=r?(e[bt].buf=e[bt].buf.slice(r),jH(e,o,WH.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[bt].state,Vh,0),Atomics.store(e[bt].state,Bu,0);n>e[bt].data.length;)r=r/2,o=e[bt].buf.slice(0,r),n=Buffer.byteLength(o);e[bt].buf=e[bt].buf.slice(r),jH(e,o,WH.bind(null,e))}})}else if(r===0){if(t===0&&e[bt].buf.length===0)return;e.flush(()=>{Atomics.store(e[bt].state,Vh,0),Atomics.store(e[bt].state,Bu,0),WH(e)})}else $h(e,new Error("overwritten"))}function G7n(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new F7n(t),t.flush(()=>{t[bt].ready=!0,t.emit("ready")});break;case"ERROR":$h(t,e.err);break;case"EVENT":Array.isArray(e.args)?t.emit(e.name,...e.args):t.emit(e.name,e.args);break;case"WARNING":process.emitWarning(e.err);break;default:$h(t,new Error("this should not happen: "+e.code))}}function zAt(e){let t=this.stream.deref();t!==void 0&&(wAt.unregister(t),t.worker.exited=!0,t.worker.off("exit",zAt),$h(t,e!==0?new Error("the worker thread exited"):null))}var Kbe=class extends k7n{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[bt]={},this[bt].stateBuf=new SharedArrayBuffer(128),this[bt].state=new Int32Array(this[bt].stateBuf),this[bt].dataBuf=new SharedArrayBuffer(t.bufferSize||4*1024*1024),this[bt].data=Buffer.from(this[bt].dataBuf),this[bt].sync=t.sync||!1,this[bt].ending=!1,this[bt].ended=!1,this[bt].needDrain=!1,this[bt].destroyed=!1,this[bt].flushing=!1,this[bt].ready=!1,this[bt].finished=!1,this[bt].errored=null,this[bt].closed=!1,this[bt].buf="",this.worker=j7n(this,t),this.on("message",(r,o)=>{this.worker.postMessage(r,o)})}write(t){if(this[bt].destroyed)return Hbe(this,new Error("the worker has exited")),!1;if(this[bt].ending)return Hbe(this,new Error("the worker is ending")),!1;if(this[bt].flushing&&this[bt].buf.length+t.length>=U7n)try{Gbe(this),this[bt].flushing=!0}catch(r){return $h(this,r),!1}if(this[bt].buf+=t,this[bt].sync)try{return Gbe(this),!0}catch(r){return $h(this,r),!1}return this[bt].flushing||(this[bt].flushing=!0,setImmediate(WH,this)),this[bt].needDrain=this[bt].data.length-this[bt].buf.length-Atomics.load(this[bt].state,Bu)<=0,!this[bt].needDrain}end(){this[bt].destroyed||(this[bt].ending=!0,$be(this))}flush(t){if(this[bt].destroyed){typeof t=="function"&&process.nextTick(t,new Error("the worker has exited"));return}let r=Atomics.load(this[bt].state,Bu);L7n(this[bt].state,Vh,r,1/0,(o,n)=>{if(o){$h(this,o),process.nextTick(t,o);return}if(n==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[bt].destroyed||(Gbe(this),Vbe(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[bt].ready}get destroyed(){return this[bt].destroyed}get closed(){return this[bt].closed}get writable(){return!this[bt].destroyed&&!this[bt].ending}get writableEnded(){return this[bt].ending}get writableFinished(){return this[bt].finished}get writableNeedDrain(){return this[bt].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[bt].errored}};function Hbe(e,t){setImmediate(()=>{e.emit("error",t)})}function $h(e,t){e[bt].destroyed||(e[bt].destroyed=!0,t&&(e[bt].errored=t,Hbe(e,t)),e.worker.exited?setImmediate(()=>{e[bt].closed=!0,e.emit("close")}):e.worker.terminate().catch(()=>{}).then(()=>{e[bt].closed=!0,e.emit("close")}))}function jH(e,t,r){let o=Atomics.load(e[bt].state,Bu),n=Buffer.byteLength(t);return e[bt].data.write(t,o),Atomics.store(e[bt].state,Bu,o+n),Atomics.notify(e[bt].state,Bu),r(),!0}function $be(e){if(!(e[bt].ended||!e[bt].ending||e[bt].flushing)){e[bt].ended=!0;try{e.flushSync();let t=Atomics.load(e[bt].state,Vh);Atomics.store(e[bt].state,Bu,-1),Atomics.notify(e[bt].state,Bu);let r=0;for(;t!==-1;){if(Atomics.wait(e[bt].state,Vh,t,1e3),t=Atomics.load(e[bt].state,Vh),t===-2){$h(e,new Error("end() failed"));return}if(++r===10){$h(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[bt].finished=!0,e.emit("finish")})}catch(t){$h(e,t)}}}function Gbe(e){let t=()=>{e[bt].ending?$be(e):e[bt].needDrain&&process.nextTick(PAt,e)};for(e[bt].flushing=!1;e[bt].buf.length!==0;){let r=Atomics.load(e[bt].state,Bu),o=e[bt].data.length-r;if(o===0){Vbe(e),Atomics.store(e[bt].state,Vh,0),Atomics.store(e[bt].state,Bu,0);continue}else if(o<0)throw new Error("overwritten");let n=e[bt].buf.slice(0,o),a=Buffer.byteLength(n);if(a<=o)e[bt].buf=e[bt].buf.slice(o),jH(e,n,t);else{for(Vbe(e),Atomics.store(e[bt].state,Vh,0),Atomics.store(e[bt].state,Bu,0);a>e[bt].buf.length;)o=o/2,n=e[bt].buf.slice(0,o),a=Buffer.byteLength(n);e[bt].buf=e[bt].buf.slice(o),jH(e,n,t)}}}function Vbe(e){if(e[bt].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[bt].state,Bu),r=0;for(;;){let o=Atomics.load(e[bt].state,Vh);if(o===-2)throw Error("_flushSync failed");if(o!==t)Atomics.wait(e[bt].state,Vh,o,1e3);else break;if(++r===10)throw new Error("_flushSync took too long (10s)")}}RAt.exports=Kbe});var Ybe=L((Ivr,kAt)=>{"use strict";var{createRequire:K7n}=require("module"),H7n=Wbe(),{join:Jbe,isAbsolute:V7n,sep:$7n}=require("node:path"),J7n=fH(),Xbe=$N(),X7n=xAt();function Y7n(e){Xbe.register(e,Z7n),Xbe.registerBeforeExit(e,ejn),e.on("close",function(){Xbe.unregister(e)})}function Q7n(e,t,r,o){let n=new X7n({filename:e,workerData:t,workerOpts:r,sync:o});n.on("ready",a),n.on("close",function(){process.removeListener("exit",i)}),process.on("exit",i);function a(){process.removeListener("exit",i),n.unref(),r.autoEnd!==!1&&Y7n(n)}function i(){n.closed||(n.flushSync(),J7n(100),n.end())}return n}function Z7n(e){e.ref(),e.flushSync(),e.end(),e.once("close",function(){e.unref()})}function ejn(e){e.flushSync()}function tjn(e){let{pipeline:t,targets:r,levels:o,dedupe:n,worker:a={},caller:i=H7n(),sync:s=!1}=e,c={...e.options},l=typeof i=="string"?[i]:i,p="__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{},h=e.target;if(h&&r)throw new Error("only one of target or targets can be specified");return r?(h=p["pino-worker"]||Jbe(__dirname,"worker.js"),c.targets=r.filter(b=>b.target).map(b=>({...b,target:y(b.target)})),c.pipelines=r.filter(b=>b.pipeline).map(b=>b.pipeline.map(m=>({...m,level:b.level,target:y(m.target)})))):t&&(h=p["pino-worker"]||Jbe(__dirname,"worker.js"),c.pipelines=[t.map(b=>({...b,target:y(b.target)}))]),o&&(c.levels=o),n&&(c.dedupe=n),c.pinoWillSendConfig=!0,Q7n(y(h),c,a,s);function y(b){if(b=p[b]||b,V7n(b)||b.indexOf("file://")===0)return b;if(b==="pino/file")return Jbe(__dirname,"..","file.js");let m;for(let O of l)try{let _=O==="node:repl"?process.cwd()+$7n:O;m=K7n(_).resolve(b);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${b}"`);return m}}kAt.exports=tjn});var VH=L((wvr,HAt)=>{"use strict";var CAt=require("node:diagnostics_channel"),NAt=Qye(),{mapHttpRequest:njn,mapHttpResponse:ijn}=VN(),Zbe=nbe(),DAt=$N(),{lsCacheSym:rjn,chindingsSym:UAt,writeSym:LAt,serializersSym:WAt,formatOptsSym:qAt,endSym:ojn,stringifiersSym:FAt,stringifySym:jAt,stringifySafeSym:eme,wildcardFirstSym:GAt,nestedKeySym:ajn,formattersSym:KAt,messageKeySym:sjn,errorKeySym:cjn,nestedKeyStrSym:ljn,msgPrefixSym:GH}=cI(),{isMainThread:ujn}=require("worker_threads"),pjn=Ybe(),HH;typeof CAt.tracingChannel=="function"?HH=CAt.tracingChannel("pino_asJson"):HH={hasSubscribers:!1,traceSync(e,t,r,...o){return e.call(r,...o)}};function lI(){}function fjn(e,t){if(!t)return r;return function(...n){t.call(this,n,r,e)};function r(o,...n){if(typeof o=="object"){let a=o;o!==null&&(o.method&&o.headers&&o.socket?o=njn(o):typeof o.setHeader=="function"&&(o=ijn(o)));let i;a===null&&n.length===0?i=[null]:(a=n.shift(),i=n),typeof this[GH]=="string"&&a!==void 0&&a!==null&&(a=this[GH]+a),this[LAt](o,NAt(a,i,this[qAt]),e)}else{let a=o===void 0?n.shift():o;typeof this[GH]=="string"&&a!==void 0&&a!==null&&(a=this[GH]+a),this[LAt](null,NAt(a,n,this[qAt]),e)}}}function Qbe(e){let t="",r=0,o=!1,n=255,a=e.length;if(a>100)return JSON.stringify(e);for(var i=0;i<a&&n>=32;i++)n=e.charCodeAt(i),(n===34||n===92)&&(t+=e.slice(r,i)+"\\",r=i,o=!0);return o?t+=e.slice(r):t=e,n<32?JSON.stringify(e):'"'+t+'"'}function djn(e,t,r,o){if(HH.hasSubscribers===!1)return BAt.call(this,e,t,r,o);let n={instance:this,arguments};return HH.traceSync(BAt,n,this,e,t,r,o)}function BAt(e,t,r,o){let n=this[jAt],a=this[eme],i=this[FAt],s=this[ojn],c=this[UAt],l=this[WAt],p=this[KAt],h=this[sjn],y=this[cjn],b=this[rjn][r]+o;b=b+c;let m;p.log&&(e=p.log(e));let O=i[GAt],_="";for(let S in e)if(m=e[S],Object.prototype.hasOwnProperty.call(e,S)&&m!==void 0){l[S]?m=l[S](m):S===y&&l.err&&(m=l.err(m));let v=i[S]||O;switch(typeof m){case"undefined":case"function":continue;case"number":Number.isFinite(m)===!1&&(m=null);case"boolean":v&&(m=v(m));break;case"string":m=(v||Qbe)(m);break;default:m=(v||n)(m,a)}if(m===void 0)continue;let T=Qbe(S);_+=","+T+":"+m}let M="";if(t!==void 0){m=l[h]?l[h](t):t;let S=i[h]||O;switch(typeof m){case"function":break;case"number":Number.isFinite(m)===!1&&(m=null);case"boolean":S&&(m=S(m)),M=',"'+h+'":'+m;break;case"string":m=(S||Qbe)(m),M=',"'+h+'":'+m;break;default:m=(S||n)(m,a),M=',"'+h+'":'+m}}return this[ajn]&&_?b+this[ljn]+_.slice(1)+"}"+M+s:b+_+M+s}function hjn(e,t){let r,o=e[UAt],n=e[jAt],a=e[eme],i=e[FAt],s=i[GAt],c=e[WAt],l=e[KAt].bindings;t=l(t);for(let p in t)if(r=t[p],((p.length<5||p!=="level"&&p!=="serializers"&&p!=="formatters"&&p!=="customLevels")&&t.hasOwnProperty(p)&&r!==void 0)===!0){if(r=c[p]?c[p](r):r,r=(i[p]||s||n)(r,a),r===void 0)continue;o+=',"'+p+'":'+r}return o}function yjn(e){return e.write!==e.constructor.prototype.write}function KH(e){let t=new Zbe(e);return t.on("error",r),!e.sync&&ujn&&(DAt.register(t,bjn),t.on("close",function(){DAt.unregister(t)})),t;function r(o){if(o.code==="EPIPE"){t.write=lI,t.end=lI,t.flushSync=lI,t.destroy=lI;return}t.removeListener("error",r),t.emit("error",o)}}function bjn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function mjn(e){return function(r,o,n={},a){if(typeof n=="string")a=KH({dest:n}),n={};else if(typeof a=="string"){if(n&&n.transport)throw Error("only one of option.transport or stream can be specified");a=KH({dest:a})}else if(n instanceof Zbe||n.writable||n._writableState)a=n,n={};else if(n.transport){if(n.transport instanceof Zbe||n.transport.writable||n.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(n.transport.targets&&n.transport.targets.length&&n.formatters&&typeof n.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;n.customLevels&&(c=n.useOnlyCustomLevels?n.customLevels:Object.assign({},n.levels,n.customLevels)),a=pjn({caller:o,...n.transport,levels:c})}if(n=Object.assign({},e,n),n.serializers=Object.assign({},e.serializers,n.serializers),n.formatters=Object.assign({},e.formatters,n.formatters),n.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:i,onChild:s}=n;return i===!1&&(n.level="silent"),s||(n.onChild=lI),a||(yjn(process.stdout)?a=process.stdout:a=KH({fd:process.stdout.fd||1})),{opts:n,stream:a}}}function gjn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[eme])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Ojn(e,t,r){return{level:e,bindings:t,log:r}}function Mjn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}HAt.exports={noop:lI,buildSafeSonicBoom:KH,asChindings:hjn,asJson:djn,genLog:fjn,createArgsNormalizer:mjn,stringify:gjn,buildFormatters:Ojn,normalizeDestFileDescriptor:Mjn}});var $H=L((Pvr,VAt)=>{var _jn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},Ajn={ASC:"ASC",DESC:"DESC"};VAt.exports={DEFAULT_LEVELS:_jn,SORTING_ORDER:Ajn}});var ime=L((zvr,YAt)=>{"use strict";var{lsCacheSym:Sjn,levelValSym:tme,useOnlyCustomLevelsSym:Ejn,streamSym:Tjn,formattersSym:vjn,hooksSym:Ijn,levelCompSym:$At}=cI(),{noop:wjn,genLog:UA}=VH(),{DEFAULT_LEVELS:Jh,SORTING_ORDER:JAt}=$H(),XAt={fatal:e=>{let t=UA(Jh.fatal,e);return function(...r){let o=this[Tjn];if(t.call(this,...r),typeof o.flushSync=="function")try{o.flushSync()}catch{}}},error:e=>UA(Jh.error,e),warn:e=>UA(Jh.warn,e),info:e=>UA(Jh.info,e),debug:e=>UA(Jh.debug,e),trace:e=>UA(Jh.trace,e)},nme=Object.keys(Jh).reduce((e,t)=>(e[Jh[t]]=t,e),{}),Pjn=Object.keys(nme).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function zjn(e){let t=e[vjn].level,{labels:r}=e.levels,o={};for(let n in r){let a=t(r[n],Number(n));o[n]=JSON.stringify(a).slice(0,-1)}return e[Sjn]=o,e}function Rjn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function xjn(e){let{labels:t,values:r}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(r[e]===void 0)throw Error("unknown level "+e);let o=this[tme],n=this[tme]=r[e],a=this[Ejn],i=this[$At],s=this[Ijn].logMethod;for(let c in r){if(i(r[c],n)===!1){this[c]=wjn;continue}this[c]=Rjn(c,a)?XAt[c](s):UA(r[c],s)}this.emit("level-change",e,n,t[o],o,this)}function kjn(e){let{levels:t,levelVal:r}=this;return t&&t.labels?t.labels[r]:""}function Cjn(e){let{values:t}=this.levels,r=t[e];return r!==void 0&&this[$At](r,this[tme])}function Njn(e,t,r){return e===JAt.DESC?t<=r:t>=r}function Djn(e){return typeof e=="string"?Njn.bind(null,e):e}function Ljn(e=null,t=!1){let r=e?Object.keys(e).reduce((a,i)=>(a[e[i]]=i,a),{}):null,o=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:nme,r),n=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Jh,e);return{labels:o,values:n}}function qjn(e,t,r){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(a=>t[a]),r?[]:Object.keys(nme).map(a=>+a),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let o=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),r?null:Jh,t);if(!(e in o))throw Error(`default level:${e} must be included in custom levels`)}function Bjn(e,t){let{labels:r,values:o}=e;for(let n in t){if(n in o)throw Error("levels cannot be overridden");if(t[n]in r)throw Error("pre-existing level values cannot be used for new levels")}}function Ujn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(JAt).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}YAt.exports={initialLsCache:Pjn,genLsCache:zjn,levelMethods:XAt,getLevel:kjn,setLevel:xjn,isLevelEnabled:Cjn,mappings:Ljn,assertNoLevelCollisions:Bjn,assertDefaultLevelFound:qjn,genLevelComparison:Djn,assertLevelComparison:Ujn}});var rme=L((Rvr,QAt)=>{"use strict";QAt.exports={version:"9.14.0"}});var aSt=L((kvr,oSt)=>{"use strict";var{EventEmitter:Wjn}=require("node:events"),{lsCacheSym:Fjn,levelValSym:jjn,setLevelSym:XH,getLevelSym:ZAt,chindingsSym:YH,parsedChindingsSym:Gjn,mixinSym:Kjn,asJsonSym:tSt,writeSym:Hjn,mixinMergeStrategySym:Vjn,timeSym:$jn,timeSliceIndexSym:Jjn,streamSym:nSt,serializersSym:WA,formattersSym:o6,errorKeySym:Xjn,messageKeySym:Yjn,useOnlyCustomLevelsSym:Qjn,needsMetadataGsym:Zjn,redactFmtSym:e9n,stringifySym:t9n,formatOptsSym:n9n,stringifiersSym:i9n,msgPrefixSym:ame,hooksSym:r9n}=cI(),{getLevel:o9n,setLevel:a9n,isLevelEnabled:s9n,mappings:c9n,initialLsCache:l9n,genLsCache:u9n,assertNoLevelCollisions:p9n}=ime(),{asChindings:sme,asJson:f9n,buildFormatters:ome,stringify:eSt,noop:iSt}=VH(),{version:d9n}=rme(),h9n=jbe(),y9n=class{},rSt={constructor:y9n,child:b9n,bindings:m9n,setBindings:g9n,flush:_9n,isLevelEnabled:s9n,version:d9n,get level(){return this[ZAt]()},set level(e){this[XH](e)},get levelVal(){return this[jjn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[ame]},get[Symbol.toStringTag](){return"Pino"},[Fjn]:l9n,[Hjn]:M9n,[tSt]:f9n,[ZAt]:o9n,[XH]:a9n};Object.setPrototypeOf(rSt,Wjn.prototype);oSt.exports=function(){return Object.create(rSt)};var JH=e=>e;function b9n(e,t){if(!e)throw Error("missing bindings for child Pino");let r=this[WA],o=this[o6],n=Object.create(this);if(t==null)return n[o6].bindings!==JH&&(n[o6]=ome(o.level,JH,o.log)),n[YH]=sme(n,e),n[XH](this.level),this.onChild!==iSt&&this.onChild(n),n;if(t.hasOwnProperty("serializers")===!0){n[WA]=Object.create(null);for(let p in r)n[WA][p]=r[p];let c=Object.getOwnPropertySymbols(r);for(var a=0;a<c.length;a++){let p=c[a];n[WA][p]=r[p]}for(let p in t.serializers)n[WA][p]=t.serializers[p];let l=Object.getOwnPropertySymbols(t.serializers);for(var i=0;i<l.length;i++){let p=l[i];n[WA][p]=t.serializers[p]}}else n[WA]=r;if(t.hasOwnProperty("formatters")){let{level:c,bindings:l,log:p}=t.formatters;n[o6]=ome(c||o.level,l||JH,p||o.log)}else n[o6]=ome(o.level,JH,o.log);if(t.hasOwnProperty("customLevels")===!0&&(p9n(this.levels,t.customLevels),n.levels=c9n(t.customLevels,n[Qjn]),u9n(n)),typeof t.redact=="object"&&t.redact!==null||Array.isArray(t.redact)){n.redact=t.redact;let c=h9n(n.redact,eSt),l={stringify:c[e9n]};n[t9n]=eSt,n[i9n]=c,n[n9n]=l}typeof t.msgPrefix=="string"&&(n[ame]=(this[ame]||"")+t.msgPrefix),n[YH]=sme(n,e);let s=t.level||this.level;return n[XH](s),this.onChild(n),n}function m9n(){let t=`{${this[YH].substr(1)}}`,r=JSON.parse(t);return delete r.pid,delete r.hostname,r}function g9n(e){let t=sme(this,e);this[YH]=t,delete this[Gjn]}function O9n(e,t){return Object.assign(t,e)}function M9n(e,t,r){let o=this[$jn](),n=this[Kjn],a=this[Xjn],i=this[Yjn],s=this[Vjn]||O9n,c,l=this[r9n].streamWrite;e==null?c={}:e instanceof Error?(c={[a]:e},t===void 0&&(t=e.message)):(c=e,t===void 0&&e[i]===void 0&&e[a]&&(t=e[a].message)),n&&(c=s(c,n(c,r,this)));let p=this[tSt](c,t,r,o),h=this[nSt];h[Zjn]===!0&&(h.lastLevel=r,h.lastObj=c,h.lastMsg=t,h.lastTime=o.slice(this[Jjn]),h.lastLogger=this),h.write(l?l(p):p)}function _9n(e){if(e!=null&&typeof e!="function")throw Error("callback must be a function");let t=this[nSt];typeof t.flush=="function"?t.flush(e||iSt):e&&e()}});var uSt=L((Cvr,lSt)=>{"use strict";var cme=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:cSt}=$H(),A9n=cSt.info;function S9n(e,t){e=e||[],t=t||{dedupe:!1};let r=Object.create(cSt);r.silent=1/0,t.levels&&typeof t.levels=="object"&&Object.keys(t.levels).forEach(h=>{r[h]=t.levels[h]});let o={write:n,add:s,remove:c,emit:a,flushSync:i,end:l,minLevel:0,lastId:0,streams:[],clone:p,[cme]:!0,streamLevels:r};return Array.isArray(e)?e.forEach(s,o):s.call(o,e),e=null,o;function n(h){let y,b=this.lastLevel,{streams:m}=this,O=0,_;for(let M=E9n(m.length,t.dedupe);v9n(M,m.length,t.dedupe);M=T9n(M,t.dedupe))if(y=m[M],y.level<=b){if(O!==0&&O!==y.level)break;if(_=y.stream,_[cme]){let{lastTime:S,lastMsg:v,lastObj:T,lastLogger:w}=this;_.lastLevel=b,_.lastTime=S,_.lastMsg=v,_.lastObj=T,_.lastLogger=w}_.write(h),t.dedupe&&(O=y.level)}else if(!t.dedupe)break}function a(...h){for(let{stream:y}of this.streams)typeof y.emit=="function"&&y.emit(...h)}function i(){for(let{stream:h}of this.streams)typeof h.flushSync=="function"&&h.flushSync()}function s(h){if(!h)return o;let y=typeof h.write=="function"||h.stream,b=h.write?h:h.stream;if(!y)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:m,streamLevels:O}=this,_;typeof h.levelVal=="number"?_=h.levelVal:typeof h.level=="string"?_=O[h.level]:typeof h.level=="number"?_=h.level:_=A9n;let M={stream:b,level:_,levelVal:void 0,id:++o.lastId};return m.unshift(M),m.sort(sSt),this.minLevel=m[0].level,o}function c(h){let{streams:y}=this,b=y.findIndex(m=>m.id===h);return b>=0&&(y.splice(b,1),y.sort(sSt),this.minLevel=y.length>0?y[0].level:-1),o}function l(){for(let{stream:h}of this.streams)typeof h.flushSync=="function"&&h.flushSync(),h.end()}function p(h){let y=new Array(this.streams.length);for(let b=0;b<y.length;b++)y[b]={level:h,stream:this.streams[b].stream};return{write:n,add:s,remove:c,minLevel:h,streams:y,clone:p,emit:a,flushSync:i,[cme]:!0}}}function sSt(e,t){return e.level-t.level}function E9n(e,t){return t?e-1:0}function T9n(e,t){return t?e-1:e+1}function v9n(e,t,r){return r?e>=0:e<t}lSt.exports=S9n});var ESt=L((Nvr,dp)=>{"use strict";var I9n=require("node:os"),gSt=VN(),w9n=Wbe(),P9n=jbe(),OSt=AAt(),z9n=aSt(),MSt=cI(),{configure:R9n}=Tbe(),{assertDefaultLevelFound:x9n,mappings:_St,genLsCache:k9n,genLevelComparison:C9n,assertLevelComparison:N9n}=ime(),{DEFAULT_LEVELS:ASt,SORTING_ORDER:D9n}=$H(),{createArgsNormalizer:L9n,asChindings:q9n,buildSafeSonicBoom:pSt,buildFormatters:B9n,stringify:lme,normalizeDestFileDescriptor:fSt,noop:U9n}=VH(),{version:W9n}=rme(),{chindingsSym:dSt,redactFmtSym:F9n,serializersSym:hSt,timeSym:j9n,timeSliceIndexSym:G9n,streamSym:K9n,stringifySym:ySt,stringifySafeSym:ume,stringifiersSym:bSt,setLevelSym:H9n,endSym:V9n,formatOptsSym:$9n,messageKeySym:J9n,errorKeySym:X9n,nestedKeySym:Y9n,mixinSym:Q9n,levelCompSym:Z9n,useOnlyCustomLevelsSym:eGn,formattersSym:mSt,hooksSym:tGn,nestedKeyStrSym:nGn,mixinMergeStrategySym:iGn,msgPrefixSym:rGn}=MSt,{epochTime:SSt,nullTime:oGn}=OSt,{pid:aGn}=process,sGn=I9n.hostname(),cGn=gSt.err,lGn={level:"info",levelComparison:D9n.ASC,levels:ASt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:aGn,hostname:sGn},serializers:Object.assign(Object.create(null),{err:cGn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:SSt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},uGn=L9n(lGn),pGn=Object.assign(Object.create(null),gSt);function pme(...e){let t={},{opts:r,stream:o}=uGn(t,w9n(),...e);r.level&&typeof r.level=="string"&&ASt[r.level.toLowerCase()]!==void 0&&(r.level=r.level.toLowerCase());let{redact:n,crlf:a,serializers:i,timestamp:s,messageKey:c,errorKey:l,nestedKey:p,base:h,name:y,level:b,customLevels:m,levelComparison:O,mixin:_,mixinMergeStrategy:M,useOnlyCustomLevels:S,formatters:v,hooks:T,depthLimit:w,edgeLimit:P,onChild:C,msgPrefix:R}=r,N=R9n({maximumDepth:w,maximumBreadth:P}),W=B9n(v.level,v.bindings,v.log),k=lme.bind({[ume]:N}),K=n?P9n(n,k):{},U=n?{stringify:K[F9n]}:{stringify:k},q="}"+(a?`\r
|
|
226
226
|
`:`
|
|
227
|
-
`),H=q9n.bind(null,{[dSt]:"",[hSt]:i,[bSt]:K,[ySt]:lme,[ume]:N,[mSt]:W}),ee="";h!==null&&(y===void 0?ee=H(h):ee=H(Object.assign({},h,{name:y})));let Ae=s instanceof Function?s:s?SSt:oGn,ue=Ae().indexOf(":")+1;if(S&&!m)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(_&&typeof _!="function")throw Error(`Unknown mixin type "${typeof _}" - expected "function"`);if(R&&typeof R!="string")throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`);x9n(b,m,S);let se=_St(m,S);typeof o.emit=="function"&&o.emit("message",{code:"PINO_CONFIG",config:{levels:se,messageKey:c,errorKey:l}}),N9n(O);let de=C9n(O);return Object.assign(t,{levels:se,[Z9n]:de,[eGn]:S,[K9n]:o,[j9n]:Ae,[G9n]:ue,[ySt]:lme,[ume]:N,[bSt]:K,[V9n]:q,[$9n]:U,[J9n]:c,[X9n]:l,[Y9n]:p,[nGn]:p?`,${JSON.stringify(p)}:{`:"",[hSt]:i,[Q9n]:_,[iGn]:M,[dSt]:ee,[mSt]:W,[tGn]:T,silent:U9n,onChild:C,[rGn]:R}),Object.setPrototypeOf(t,z9n()),k9n(t),t[H9n](b),t}dp.exports=pme;dp.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=fSt(e.dest||process.stdout.fd),pSt(e)):pSt({dest:fSt(e),minLength:0});dp.exports.transport=Ybe();dp.exports.multistream=uSt();dp.exports.levels=_St();dp.exports.stdSerializers=pGn;dp.exports.stdTimeFunctions=Object.assign({},OSt);dp.exports.symbols=MSt;dp.exports.version=W9n;dp.exports.default=pme;dp.exports.pino=pme});function QH(e,t){let r=e.key,o=e.message,n=r.remoteJid||"",a="";r.fromMe?a=t:a=r.participant||r.remoteJid||"";let i="",s="text",c="";o?o.conversation?(i=o.conversation,s="text"):o.extendedTextMessage?(i=o.extendedTextMessage.text||"",s="text"):o.imageMessage?(i=o.imageMessage.caption||"",s="image",c=o.imageMessage.url||""):o.videoMessage?(i=o.videoMessage.caption||"",s="video",c=o.videoMessage.url||""):o.audioMessage?(s="audio",c=o.audioMessage.url||""):o.documentMessage?(i=o.documentMessage.title||o.documentMessage.fileName||"",s="file",c=o.documentMessage.url||""):o.stickerMessage?(s="sticker",c=o.stickerMessage.url||""):o.protocolMessage||o.senderKeyDistributionMessage?(s="system",i="System message"):(s="other",i="[Tin nh\u1EAFn kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3]"):(s="other",i="");let l={rawMsg:fGn(e)};if(e.pushName&&(l.pushName=e.pushName),o?.extendedTextMessage?.contextInfo?.quotedMessage){let h=o.extendedTextMessage.contextInfo;l.quotedMessage={participant:h.participant,stanzaId:h.stanzaId,text:h.quotedMessage?.conversation||h.quotedMessage?.extendedTextMessage?.text||""}}let p=e.messageTimestamp?Number(e.messageTimestamp)*1e3:Date.now();return{id:r.id||"",conversationId:n,senderId:a,senderName:e.pushName||void 0,text:i,type:s,mediaUrl:c,timestamp:p,platform:"whatsapp",isFromMe:!!r.fromMe,metadata:l}}function fGn(e){if(!e||typeof e!="object")return e;let t={};if(e.key&&(t.key={remoteJid:e.key.remoteJid,fromMe:e.key.fromMe,id:e.key.id,participant:e.key.participant}),e.pushName&&(t.pushName=e.pushName),e.messageTimestamp&&(t.messageTimestamp=e.messageTimestamp),e.status&&(t.status=e.status),e.message){let r=e.message;t.message={},r.conversation&&(t.message.conversation=r.conversation),r.extendedTextMessage&&(t.message.extendedTextMessage={text:r.extendedTextMessage.text},r.extendedTextMessage.contextInfo&&(t.message.extendedTextMessage.contextInfo={stanzaId:r.extendedTextMessage.contextInfo.stanzaId,participant:r.extendedTextMessage.contextInfo.participant})),r.imageMessage&&(t.message.imageMessage={caption:r.imageMessage.caption,mimetype:r.imageMessage.mimetype}),r.videoMessage&&(t.message.videoMessage={caption:r.videoMessage.caption,mimetype:r.videoMessage.mimetype}),r.audioMessage&&(t.message.audioMessage={mimetype:r.audioMessage.mimetype,seconds:r.audioMessage.seconds}),r.documentMessage&&(t.message.documentMessage={title:r.documentMessage.title,fileName:r.documentMessage.fileName,mimetype:r.documentMessage.mimetype}),r.stickerMessage&&(t.message.stickerMessage={mimetype:r.stickerMessage.mimetype})}return t}var TSt=me(()=>{"use strict"});function a6(e,t){let r=String(e.id||e.jid||""),o=String(e.name||e.verifiedName||e.notify||"WhatsApp User"),n=String(e.imgUrl||e.avatar||"");return{id:r,name:o,avatarUrl:n||void 0,platform:"whatsapp",phoneNumber:t||e.phoneNumber||void 0,rawContact:e}}function vSt(e){let t=String(e.id||e.jid||""),r=String(e.name||e.displayName||"WhatsApp Chat"),o=String(e.imgUrl||e.avatar||""),n="direct";return(t.endsWith("@g.us")||e.isGroup)&&(n="group"),{id:t,name:r,avatarUrl:o||void 0,type:n,unreadCount:Number(e.unreadCount||0),platform:"whatsapp",rawConversation:e}}var ISt=me(()=>{"use strict"});var xSt={};er(xSt,{WhatsAppAdapter:()=>fme});var wSt,PSt,zSt,RSt,fme,kSt=me(()=>{"use strict";dAt();wSt=ke(ESt()),PSt=ke(hL()),zSt=ke(bL()),RSt=ke(ML());sP();TSt();ISt();fme=class{accountId;platform="whatsapp";eventBus=new vd;status="disconnected";socket=null;session=null;isReconnecting=!1;chatsMap=new Map;contactsMap=new Map;constructor(t){this.accountId=t}async initialize(t){this.session=t,this.status="connecting",this.eventBus.emit("session:status_changed","connecting");let r=t.authData.sessionPath||`./sessions/whatsapp_${this.accountId}`;try{let{state:o,saveCreds:n}=await J2t(r),a=(0,wSt.default)({level:"silent"}),i=[2,3e3,1023223821];try{let c=await Eft();c&&c.version&&(i=c.version)}catch{}let s={version:i,auth:o,logger:a,printQRInTerminal:!1,defaultQueryTimeoutMs:3e4,connectTimeoutMs:3e4};if(t.proxy){let c=this.createProxyAgent(t.proxy);c&&(s.agent=c)}this.socket=fAt(s),this.socket.ev.on("creds.update",n),this.setupListeners()}catch(o){throw this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected",o.message||String(o)),o}}async disconnect(){if(this.isReconnecting=!1,this.socket){try{this.socket.end(void 0)}catch{}this.socket=null}this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected")}async sendMessage(t,r){if(!this.socket)throw new Error("WhatsApp adapter not initialized");await this.sendTyping(t,!0);let o=Math.floor(Math.random()*2e3)+1500;await new Promise(i=>setTimeout(i,o)),await this.sendTyping(t,!1);let n={};if(r.type==="text")n={text:r.text};else if(r.type==="image")n={image:{url:r.url||r.filePath},caption:r.caption||""};else if(r.type==="sticker")n={sticker:{url:r.url||r.filePath||r.stickerId}};else if(r.type==="file")n={document:{url:r.url||r.filePath},fileName:r.filename||"file"};else throw new Error(`Unsupported message payload type: ${r.type}`);r.quoteId&&(n.contextInfo={stanzaId:r.quoteId,participant:t.endsWith("@g.us")?void 0:t,quotedMessage:{conversation:"[Tr\xEDch d\u1EABn tin nh\u1EAFn]"}});let a=await this.socket.sendMessage(t,n);if(!a)throw new Error("Failed to send WhatsApp message");return QH(a,this.accountId)}async getConversations(t=20){let r=Array.from(this.chatsMap.values());return r.sort((o,n)=>Number(n.conversationTimestamp||0)-Number(o.conversationTimestamp||0)),r.slice(0,t).map(vSt)}async getMessageHistory(t,r=50,o){return[]}async getCurrentUser(){if(!this.socket)return null;let t=this.socket.authState?.creds?.me||this.socket.user;if(!t)return null;let r=t.id;r.includes(":")&&(r=r.split(":")[0]+"@s.whatsapp.net");let o=t.name||this.socket.user?.name||"WhatsApp User",n="";try{n=await this.socket.profilePictureUrl(r,"image")||""}catch{}return a6({id:r,name:o,imgUrl:n},this.accountId)}async getContactInfo(t){if(this.contactsMap.has(t))return a6(this.contactsMap.get(t));if(!this.socket)throw new Error("WhatsApp adapter not initialized");try{let r=await this.socket.profilePictureUrl(t,"image");return a6({id:t,name:"WhatsApp User",imgUrl:r})}catch{return a6({id:t,name:"WhatsApp User"})}}async markAsRead(t){if(this.socket)try{await this.socket.sendPresenceUpdate("paused",t)}catch{}}async sendTyping(t,r){if(this.socket)try{await this.socket.sendPresenceUpdate(r?"composing":"paused",t)}catch{}}getUnderlyingClient(){return this.socket}setupListeners(){this.socket&&(this.socket.ev.on("connection.update",t=>{let{connection:r,lastDisconnect:o,qr:n}=t;n&&this.eventBus.emit("auth:qr_received",n),r==="connecting"&&(this.status="connecting",this.eventBus.emit("session:status_changed","connecting")),r==="open"&&(this.status="connected",this.eventBus.emit("session:status_changed","connected")),r==="close"&&(o?.error?.output?.statusCode!==ba.loggedOut&&this.session?(this.isReconnecting=!0,this.initialize(this.session)):(this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected","Session logged out or expired")))}),this.socket.ev.on("messages.upsert",t=>{if(t.type==="notify"){for(let r of t.messages)if(r.message)try{let o=QH(r,this.accountId);this.eventBus.emit("message:received",o)}catch{}}}),this.socket.ev.on("presence.update",t=>{try{let r=t.id,o=Object.keys(t.presences);if(o.length>0){let n=o[0],a=t.presences[n];a&&this.eventBus.emit("chat:typing",{conversationId:r,senderId:n,isTyping:a.lastKnownPresence==="composing"})}}catch{}}),this.socket.ev.on("messaging-history.set",t=>{let{chats:r,contacts:o,messages:n}=t;if(r)for(let a of r)a.id&&this.chatsMap.set(a.id,a);if(o)for(let a of o)a.id&&this.contactsMap.set(a.id,a);if(n){for(let a of n)if(a.message)try{let i=QH(a,this.accountId);this.eventBus.emit("message:received",i)}catch{}}}),this.socket.ev.on("chats.upsert",t=>{for(let r of t)r.id&&this.chatsMap.set(r.id,r)}),this.socket.ev.on("chats.update",t=>{for(let r of t)if(r.id&&this.chatsMap.has(r.id)){let o=this.chatsMap.get(r.id);this.chatsMap.set(r.id,{...o,...r})}}),this.socket.ev.on("contacts.upsert",t=>{for(let r of t)r.id&&this.contactsMap.set(r.id,r)}),this.socket.ev.on("contacts.update",t=>{for(let r of t)if(r.id&&this.contactsMap.has(r.id)){let o=this.contactsMap.get(r.id);this.contactsMap.set(r.id,{...o,...r})}}))}createProxyAgent(t){try{return t.startsWith("socks")?new PSt.SocksProxyAgent(t):t.startsWith("https")?new RSt.HttpsProxyAgent(t):new zSt.HttpProxyAgent(t)}catch{return}}}});var ql=ke(require("fs")),dI=ke(require("path")),Xh=ke(require("os")),dc=require("child_process");var Ty=ke(require("os")),qm=ke(require("fs")),$I=ke(require("path")),Nge=ke(require("crypto"));function ewt(){return"1.0.23"}var Lp=ewt();function D6(){return{totalMemMb:Math.round(Ty.default.totalmem()/(1024*1024)),freeMemMb:Math.round(Ty.default.freemem()/(1024*1024)),cpuCount:Ty.default.cpus()?.length||1,platform:Ty.default.platform()}}function twt(e){try{let t=$I.default.join(Ty.default.homedir(),".zplus");qm.default.existsSync(t)||qm.default.mkdirSync(t,{recursive:!0});let r=e?`_slot_${e.replace(/[^a-zA-Z0-9_-]/g,"")}`:"",o=$I.default.join(t,`worker_identity${r}.json`);if(qm.default.existsSync(o)){let h=JSON.parse(qm.default.readFileSync(o,"utf-8"));if(h&&h.workerId)return{workerId:h.workerId,workerName:h.workerName||h.workerId}}let a=(Ty.default.hostname()||"node").replace(/[^a-zA-Z0-9_-]/g,"_").toLowerCase().slice(0,14),i=Nge.default.randomBytes(2).toString("hex"),s=`worker_${a}${r}_${i}`,c=e?` #${e}`:"",l=`Worker ${a.toUpperCase()}${c}`,p={workerId:s,workerName:l,slot:e||"default",createdAt:new Date().toISOString()};return qm.default.writeFileSync(o,JSON.stringify(p,null,2),"utf-8"),p}catch{let t=e?`_slot_${e}`:"",r=`worker_${Ty.default.hostname().replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,14)||"node"}${t}`;return{workerId:r,workerName:r}}}var N6=class{static loadFromEnv(t=process.argv.slice(2)){let r=N=>{for(let W of t){if(W.startsWith(`--${N}=`))return W.split("=").slice(1).join("=");if(W===`--${N}`&&t[t.indexOf(W)+1])return t[t.indexOf(W)+1]}},o=r("cloud-provider")||process.env.CLOUD_PROVIDER||"appwrite",n=r("token")||process.env.CLOUD_AUTH_TOKEN||process.env.APPWRITE_SESSION_TOKEN||process.env.WORKER_TOKEN||process.env.SESSION_TOKEN,a=r("jwt")||process.env.CLOUD_JWT||process.env.APPWRITE_JWT||process.env.JWT,i=r("api-key")||process.env.CLOUD_API_KEY||process.env.APPWRITE_API_KEY,s=r("secret")||process.env.DESKTOP_SECRET,c=r("team-id")||process.env.TEAM_ID||"default",l=t.includes("--enable-http")||r("enable-http")==="true"||process.env.ENABLE_HTTP==="true"||!1,p=r("port")||process.env.PORT,h=p?Number(p):l?8080:void 0,y=r("endpoint")||process.env.CLOUD_ENDPOINT||process.env.CLOUD_API_ENDPOINT||process.env.APPWRITE_ENDPOINT||process.env.VITE_APPWRITE_ENDPOINT||"https://api.softty.net/v1",b=r("project-id")||process.env.CLOUD_PROJECT_ID||process.env.CLOUD_TENANT_ID||process.env.APPWRITE_PROJECT_ID||process.env.VITE_APPWRITE_PROJECT_ID||"699cfc3100136099c1c1",m=r("database-id")||process.env.CLOUD_DATABASE_ID||process.env.APPWRITE_DATABASE_ID||process.env.VITE_APPWRITE_DATABASE_ID||"zplus_app",O=r("storage-bucket-id")||process.env.STORAGE_BUCKET_ID||process.env.APPWRITE_STORAGE_BUCKET_ID||process.env.VITE_APPWRITE_STORAGE_BUCKET_ID||"zplus-media-vault",_=Math.max(1,Math.round(Ty.default.totalmem()/(1024*1024*1024))),M=Math.min(200,Math.max(20,_*25)),S=r("max-capacity")||process.env.MAX_CAPACITY,v=Number(S||M),T=r("slot")||process.env.WORKER_SLOT||process.env.pm_id||process.env.NODE_APP_INSTANCE,w=twt(T),P=r("worker-id")||process.env.WORKER_ID||w.workerId,C=r("worker-name")||process.env.WORKER_NAME||process.env.HOSTNAME||w.workerName,R=r("user-id")||process.env.USER_ID||process.env.SOFTTY_USER_ID;return{workerId:P,version:Lp,enableHttp:l,port:h,userId:R,teamId:c,workerName:C,maxCapacity:v,recommendedCapacity:M,clusterPollIntervalMs:Number(r("poll-interval")||process.env.CLUSTER_POLL_INTERVAL_MS||5e3),cloudProvider:o,cloudEndpoint:y,cloudProjectId:b,cloudSessionToken:n,cloudJwt:a,cloudApiKey:i,cloudDatabaseId:m,appwriteEndpoint:y,appwriteProjectId:b,appwriteSessionToken:n,appwriteJwt:a,appwriteApiKey:i,storageBucketId:O,desktopSecret:s,databaseId:m,heartbeatIntervalMs:Number(r("heartbeat-interval")||process.env.HEARTBEAT_INTERVAL_MS||3e4),geminiApiKey:r("gemini-api-key")||process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY,openaiApiKey:r("openai-api-key")||process.env.OPENAI_API_KEY,deepseekApiKey:r("deepseek-api-key")||process.env.DEEPSEEK_API_KEY,anthropicApiKey:r("anthropic-api-key")||process.env.ANTHROPIC_API_KEY,customAiApiKey:r("custom-ai-api-key")||process.env.CUSTOM_AI_API_KEY,aiBaseUrl:r("ai-base-url")||process.env.AI_BASE_URL,aiProvider:r("ai-provider")||process.env.AI_PROVIDER,aiModel:r("ai-model")||process.env.AI_MODEL,nightSystemPrompt:r("night-system-prompt")||process.env.NIGHT_SYSTEM_PROMPT,nightFallbackReply:r("night-fallback-reply")||process.env.NIGHT_FALLBACK_REPLY,logLevel:r("log-level")||process.env.LOG_LEVEL||"info"}}};var fI=ke(require("fs")),dme=ke(require("os")),FA=ke(require("path")),VSt=ke(require("crypto")),$St=ke(co());var Gge=ke(co()),U6=class{runners=new Map;logger;constructor(t){this.logger=t||(0,Gge.createLogger)("ChannelRunnerRegistry")}register(t){let r=`${t.platform}:${t.accountId}`;this.runners.has(r)&&this.logger.warn(`Overwriting existing runner for ${r}`),this.runners.set(r,t),this.logger.info(`Registered runner for ${r}`)}unregister(t,r){let o=`${t}:${r}`,n=this.runners.get(o);return n?(n.stop().catch(a=>{this.logger.error(`Error stopping runner ${o} during unregister`,a)}),this.runners.delete(o),this.logger.info(`Unregistered runner for ${o}`),!0):!1}get(t,r){return this.runners.get(`${t}:${r}`)}getAll(){return Array.from(this.runners.values())}getCount(){return this.runners.size}async startAll(){this.logger.info(`Starting all ${this.runners.size} registered channel runners...`);for(let[t,r]of this.runners.entries())try{await r.start()}catch(o){this.logger.error(`Failed to start runner ${t}:`,o)}}async stopAll(){this.logger.info(`Stopping all ${this.runners.size} channel runners...`);for(let[t,r]of this.runners.entries())try{await r.stop()}catch(o){this.logger.error(`Failed to stop runner ${t}:`,o)}this.runners.clear()}};var Kge=ke(co()),W6=class{constructor(t=6e4,r,o){this.defaultTtlMs=t;this.logger=r||(0,Kge.createLogger)("DistributedLockManager"),this.storageProvider=o}logger;locks=new Map;preemptCallbacks=[];storageProvider;setStorageProvider(t){this.storageProvider=t}getStorageProvider(){return this.storageProvider}onPreempt(t){this.preemptCallbacks.push(t)}async acquireLockRemote(t,r,o=this.defaultTtlMs){return this.storageProvider&&!await this.storageProvider.acquireLock(t,r,o)?!1:this.acquireLock(t,r,o)}async releaseLockRemote(t,r){return this.storageProvider&&await this.storageProvider.releaseLock(t,r),this.releaseLock(t,r)}async renewLockRemote(t,r,o=this.defaultTtlMs){return this.storageProvider&&await this.storageProvider.renewLock(t,r,o),this.acquireLock(t,r,o)}acquireLock(t,r,o=this.defaultTtlMs){let n=Date.now(),a=this.locks.get(t);return a&&a.expiresAt>n&&a.ownerId!==r?(this.logger.warn(`Lock denied for account ${t}: currently held by ${a.ownerId} (expires in ${a.expiresAt-n}ms)`),!1):(this.locks.set(t,{accountId:t,ownerId:r,acquiredAt:n,expiresAt:n+o}),this.logger.info(`\u2705 Lock granted: account=${t}, owner=${r}, ttl=${o}ms`),!0)}async preemptLock(t,r){let o=this.locks.get(t);this.logger.info(`\u26A1 Preemption triggered for account ${t} by master ${r} (previous owner: ${o?.ownerId||"none"})`);let n=this.preemptCallbacks.map(i=>{try{return Promise.resolve(i(t,r))}catch(s){return this.logger.error(`Error in preempt callback for ${t}:`,s),Promise.resolve()}});await Promise.race([Promise.all(n),new Promise(i=>setTimeout(i,1e3))]);let a=Date.now();return this.locks.set(t,{accountId:t,ownerId:r,acquiredAt:a,expiresAt:a+this.defaultTtlMs}),this.logger.info(`\u2705 Account ${t} preempted successfully by ${r}.`),!0}releaseLock(t,r){let o=this.locks.get(t);return o?r&&o.ownerId!==r?(this.logger.warn(`Attempted unauthorized lock release for ${t} by ${r} (real owner: ${o.ownerId})`),!1):(this.locks.delete(t),this.logger.info(`\u{1F513} Lock released for account ${t}.`),!0):!0}releaseAllForOwner(t){let r=0;for(let[o,n]of this.locks.entries())n.ownerId===t&&(this.locks.delete(o),r++);return r}isLocked(t){let r=this.locks.get(t);return r?r.expiresAt>Date.now():!1}getLockOwner(t){let r=this.locks.get(t);return!r||r.expiresAt<=Date.now()?null:r.ownerId}};var zS=ke(require("fs")),Hge=ke(require("path")),Vge=ke(co()),F6=class{logger;queue=[];maxCapacity;persistenceFilePath;constructor(t=1e4,r,o){this.maxCapacity=t,this.logger=r||(0,Vge.createLogger)("CloudPendingMessageQueue"),this.persistenceFilePath=o,this.loadFromDisk()}loadFromDisk(){if(this.persistenceFilePath)try{if(zS.default.existsSync(this.persistenceFilePath)){let t=zS.default.readFileSync(this.persistenceFilePath,"utf8");if(t&&t.trim()){let r=JSON.parse(t);Array.isArray(r)&&(this.queue.push(...r),this.logger.info(`\u{1F4E6} Restored ${r.length} pending delta messages from disk: ${this.persistenceFilePath}`))}}}catch(t){this.logger.warn(`Failed to restore pending messages from disk (${this.persistenceFilePath}): ${t?.message}`)}}saveToDisk(){if(this.persistenceFilePath)try{let t=Hge.default.dirname(this.persistenceFilePath);zS.default.existsSync(t)||zS.default.mkdirSync(t,{recursive:!0}),zS.default.writeFileSync(this.persistenceFilePath,JSON.stringify(this.queue),"utf8")}catch(t){this.logger.warn(`Failed to save pending messages to disk (${this.persistenceFilePath}): ${t?.message}`)}}enqueue(t){if(this.queue.length>=this.maxCapacity){let r=this.queue.shift();this.logger.warn(`Queue capacity reached (${this.maxCapacity}). Dropped oldest message: ${r?.id}`)}this.queue.push(t),this.saveToDisk(),this.logger.debug(`Enqueued pending message ${t.id} for account ${t.accountId} (Total pending: ${this.queue.length})`)}getDeltas(t,r=0){return this.queue.filter(o=>{let n=!t||o.accountId===t,a=o.timestamp>=r;return n&&a})}purgeSynced(t,r){let o=this.queue.length,n=[];for(let i=0;i<this.queue.length;i++){let s=this.queue[i];s.timestamp<=t&&(!r||s.accountId===r)&&n.push(i)}for(let i=n.length-1;i>=0;i--)this.queue.splice(n[i],1);let a=o-this.queue.length;return a>0&&(this.saveToDisk(),this.logger.info(`Purged ${a} synced delta messages from queue.`)),a}getCount(){return this.queue.length}clear(){this.queue.length=0,this.saveToDisk()}};var $ge=ke(co()),j6=class{logger;campaigns=new Map;rules=new Map;threadHistory=new Map;lastReplyTimes=new Map;aiConfig={enabled:!1};constructor(t,r){this.logger=t||(0,$ge.createLogger)("HeadlessAutomationEngine"),r&&this.configure(r)}configure(t){this.aiConfig={...this.aiConfig,...t},this.logger.info(`[HeadlessAutomation] Configured AI provider: ${this.aiConfig.provider||"none"} (model: ${this.aiConfig.model||"none"}, enabled: ${this.aiConfig.enabled===!0})`)}getAiConfig(){return{...this.aiConfig}}registerCampaign(t){this.campaigns.set(t.id,t),this.logger.info(`Loaded campaign ${t.id} (${t.name})`)}registerRule(t){this.rules.set(t.id,t),this.logger.info(`Loaded automation rule ${t.id} (${t.name})`)}async evaluateIncomingMessage(t){if(t.isSelf||t.senderType&&t.senderType!=="customer"||!t.content||typeof t.content!="string"||!t.content.trim())return null;let r=t.threadId||t.conversationId||t.senderId,o=Date.now(),n=this.lastReplyTimes.get(r)||0;if(o-n<3e3)return this.logger.debug(`[HeadlessAutomation] Rate limit hit for thread ${r}. Skipping reply.`),null;let a=t.content.trim(),i=this.getThreadHistory(r);if(i.push({role:"user",content:a,timestamp:o}),i.length>6&&i.splice(0,i.length-6),!this.aiConfig||this.aiConfig.enabled!==!0||!this.aiConfig.provider)return this.logger.debug(`[HeadlessAutomation] Bot AI is disabled or unconfigured. Message saved, no auto-reply sent for thread ${r}.`),null;let s=t.accountId,c=this.aiConfig.accountBotConfigs,l=s&&c?c[s]:void 0;if(!l||!l.isBotEnabled)return this.logger.debug(`[HeadlessAutomation] Account [${s||"unknown"}] has not been configured or enabled for Bot AI by user in Chatbot settings. Message saved, no auto-reply sent.`),null;let p=t,h=!!p.isGroup||!!p.groupId||typeof t.threadId=="string"&&t.threadId.startsWith("g")||typeof t.conversationId=="string"&&t.conversationId.startsWith("g"),y=l.replyTarget||"all";if(y==="individual"&&h)return this.logger.debug(`[HeadlessAutomation] Account [${s}] configured for individual chat only. Skipping group message ${r}.`),null;if(y==="group"&&!h)return this.logger.debug(`[HeadlessAutomation] Account [${s}] configured for group chat only. Skipping direct message ${r}.`),null;let b=l.scheduleType||"always";if(b!=="always"){let w=new Date().getHours(),P=l.scheduleStartHour??8,C=l.scheduleEndHour??18;if(b==="working_hours"){if(w<P||w>=C)return this.logger.debug(`[HeadlessAutomation] Outside working hours (${w}h, allowed: ${P}h-${C}h). Skipping reply.`),null}else if(b==="outside_hours"&&w>=P&&w<C)return this.logger.debug(`[HeadlessAutomation] Inside working hours (${w}h, allowed outside: ${P}h-${C}h). Skipping reply.`),null}let m=l.excludeContactIds||[];if(!h&&m.length>0){let w=String(t.senderId||"");if(m.includes(w))return this.logger.debug(`[HeadlessAutomation] Sender ${w} is in contact blacklist. Skipping reply.`),null}if(h){let w=String(p.groupId||p.threadId||r||""),P=l.excludeGroupIds||[],C=l.includeGroupIds||[];if(P.length>0&&P.includes(w))return this.logger.debug(`[HeadlessAutomation] Group ${w} is in group blacklist. Skipping reply.`),null;if(C.length>0&&!C.includes(w))return this.logger.debug(`[HeadlessAutomation] Group ${w} is not in group whitelist. Skipping reply.`),null}let O=l.excludeKeywords||[],_=l.includeKeywords||[],M=a.toLowerCase();if(O.length>0&&O.some(P=>{let C=P.trim().toLowerCase();return C.length>0&&M.includes(C)}))return this.logger.debug("[HeadlessAutomation] Message contains blacklisted keyword. Skipping reply."),null;if(_.length>0&&!_.some(P=>{let C=P.trim().toLowerCase();return C.length>0&&M.includes(C)}))return this.logger.debug("[HeadlessAutomation] Message does not match any whitelist keyword. Skipping reply."),null;let S=l.systemPrompt&&l.systemPrompt.trim()?l.systemPrompt:this.aiConfig.systemPrompt;if(this.aiConfig.provider==="rule_based")return this.aiConfig.fallbackMessage&&this.aiConfig.fallbackMessage.trim().length>0?(this.lastReplyTimes.set(r,o),this.aiConfig.fallbackMessage.trim()):null;let v=this.aiConfig.provider,T=this.aiConfig.apiKey;if(T||(v==="openai"?T=process.env.OPENAI_API_KEY:v==="deepseek"?T=process.env.DEEPSEEK_API_KEY:v==="anthropic"?T=process.env.ANTHROPIC_API_KEY:v==="custom"?T=process.env.CUSTOM_AI_API_KEY:v==="gemini"&&(T=process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY)),!T&&v!=="custom")return this.logger.debug(`[HeadlessAutomation] No API key found for provider [${v}]. No auto-reply sent.`),null;try{let w=null;if(v==="openai"||v==="custom"||v==="deepseek")w=await this.callOpenAiCompatible(a,i,T||"",S);else if(v==="anthropic")w=await this.callAnthropic(a,i,T||"",S);else if(v==="gemini")w=await this.callGemini(a,i,T||"",S);else return this.logger.warn(`[HeadlessAutomation] Unsupported AI provider [${v}]. No reply generated.`),null;if(w&&w.trim().length>0){let P=w.trim();return i.push({role:"model",content:P,timestamp:Date.now()}),this.lastReplyTimes.set(r,Date.now()),P}}catch(w){this.logger.warn(`[HeadlessAutomation] AI generation error with provider [${v}] (${w?.message}).`)}return this.aiConfig.fallbackMessage&&this.aiConfig.fallbackMessage.trim().length>0?(this.lastReplyTimes.set(r,Date.now()),this.aiConfig.fallbackMessage.trim()):null}getThreadHistory(t){let r=this.threadHistory.get(t);return r||(r=[],this.threadHistory.set(t,r)),r}async callGemini(t,r,o,n){let i=`https://generativelanguage.googleapis.com/v1beta/models/${this.aiConfig.model||"gemini-2.0-flash"}:generateContent?key=${o}`,s=r.map(y=>({role:y.role==="model"?"model":"user",parts:[{text:y.content}]}));(s.length===0||s[s.length-1].parts[0]?.text!==t)&&s.push({role:"user",parts:[{text:t}]});let c={contents:s,generationConfig:{temperature:this.aiConfig.temperature??.7,maxOutputTokens:this.aiConfig.maxTokens??300}},l=n||this.aiConfig.systemPrompt;l&&l.trim()&&(c.systemInstruction={parts:[{text:l.trim()}]});let p=new AbortController,h=setTimeout(()=>p.abort(),7e3);try{let y=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c),signal:p.signal});if(!y.ok){let O=await y.text();return this.logger.warn(`[HeadlessAutomation] Gemini API returned status ${y.status}: ${O.slice(0,200)}`),null}return(await y.json())?.candidates?.[0]?.content?.parts?.[0]?.text||null}finally{clearTimeout(h)}}async callOpenAiCompatible(t,r,o,n){let a=(this.aiConfig.baseUrl||(this.aiConfig.provider==="deepseek"?"https://api.deepseek.com/v1":"https://api.openai.com/v1")).replace(/\/+$/,"");a.includes("api.deepseek.com")&&!a.endsWith("/v1")?a+="/v1":(a.includes("11434")||a.includes("ollama"))&&(a=a.replace(/\/api$/,"").replace(/\/+$/,""),a.endsWith("/v1")||(a+="/v1"));let i=`${a}/chat/completions`,s=this.aiConfig.model||(this.aiConfig.provider==="deepseek"?"deepseek-chat":this.aiConfig.provider==="openai"?"gpt-4o-mini":"deepseek-chat"),c=n||this.aiConfig.systemPrompt,l=[...c&&c.trim()?[{role:"system",content:c.trim()}]:[],...r.map(b=>({role:b.role==="model"?"assistant":"user",content:b.content}))],p={"Content-Type":"application/json"};o&&(p.Authorization=`Bearer ${o}`);let h=new AbortController,y=setTimeout(()=>h.abort(),8e3);try{let b=await fetch(i,{method:"POST",headers:p,body:JSON.stringify({model:s,messages:l,temperature:this.aiConfig.temperature??.7,max_tokens:this.aiConfig.maxTokens??300}),signal:h.signal});if(!b.ok){let O=await b.text();return this.logger.warn(`[HeadlessAutomation] OpenAI-compatible API returned status ${b.status}: ${O.slice(0,200)}`),null}return(await b.json())?.choices?.[0]?.message?.content||null}finally{clearTimeout(y)}}async callAnthropic(t,r,o,n){let a="https://api.anthropic.com/v1/messages",i=this.aiConfig.model||"claude-3-5-haiku-20241022",s=r.map(p=>({role:p.role==="model"?"assistant":"user",content:p.content}));(s.length===0||s[s.length-1].content!==t)&&s.push({role:"user",content:t});let c=new AbortController,l=setTimeout(()=>c.abort(),8e3);try{let p=n||this.aiConfig.systemPrompt,h={model:i,messages:s,max_tokens:this.aiConfig.maxTokens??300,temperature:this.aiConfig.temperature??.7};p&&p.trim()&&(h.system=p.trim());let y=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":o,"anthropic-version":"2023-06-01"},body:JSON.stringify(h),signal:c.signal});if(!y.ok){let m=await y.text();return this.logger.warn(`[HeadlessAutomation] Anthropic API returned status ${y.status}: ${m.slice(0,200)}`),null}return(await y.json())?.content?.[0]?.text||null}finally{clearTimeout(l)}}clear(){this.campaigns.clear(),this.rules.clear(),this.threadHistory.clear(),this.lastReplyTimes.clear()}};var Jge=ke(co()),G6=class{logger;constructor(t){this.logger=t||(0,Jge.createLogger)("PushNotificationDispatcher")}async dispatchMessageAlert(t,r){let o=`${r.senderName} (${r.platform.toUpperCase()})`,n=r.content||"New multimedia message received";return this.sendNotification({recipientToken:t,title:o,body:n,data:{messageId:r.id,threadId:r.threadId,platform:r.platform,accountId:r.accountId}})}async sendNotification(t){return this.logger.debug(`Dispatching push notification to device token: ${t.recipientToken.slice(0,8)}...`),!0}};var CSt=ke(require("http")),NSt=require("url"),DSt=ke(co());var cP=ke(co());var ce=class extends Error{constructor(t,r){super(t),this.name="ZcaApiError",this.code=r||null}};var XI=class extends ce{constructor(){super("Missing `imageMetadataGetter`. Please provide it in the Zalo object options."),this.name="ZaloApiMissingImageMetadataGetter"}};var K6=class extends ce{constructor(t="Operation aborted"){super(t),this.name="ZaloApiLoginQRAborted"}};var H6=class extends ce{constructor(t="Login QR request declined"){super(t),this.name="ZaloApiLoginQRDeclined"}};var Xge;(function(e){e[e.Everyone=0]="Everyone",e[e.Stranger=1]="Stranger",e[e.SpecificFriends=2]="SpecificFriends",e[e.FriendsExcept=3]="FriendsExcept"})(Xge||(Xge={}));var V6;(function(e){e[e.Note=1]="Note",e[e.PinnedMessage=2]="PinnedMessage",e[e.Poll=3]="Poll"})(V6||(V6={}));var Xe;(function(e){e[e.User=0]="User",e[e.Group=1]="Group"})(Xe||(Xe={}));var $6;(function(e){e[e.Group=1]="Group",e[e.User=3]="User",e[e.Page=5]="Page"})($6||($6={}));var Yge;(function(e){e[e.Male=0]="Male",e[e.Female=1]="Female"})(Yge||(Yge={}));var Yl;(function(e){e[e.Small=120]="Small",e[e.Large=240]="Large"})(Yl||(Yl={}));var Qge;(function(e){e[e.ABBank=970425]="ABBank",e[e.ACB=970416]="ACB",e[e.Agribank=970405]="Agribank",e[e.BIDV=970418]="BIDV",e[e.BVBank=970454]="BVBank",e[e.BacA_Bank=970409]="BacA_Bank",e[e.BaoViet_Bank=970438]="BaoViet_Bank",e[e.CAKE=546034]="CAKE",e[e.CB_Bank=970444]="CB_Bank",e[e.CIMB_Bank=422589]="CIMB_Bank",e[e.Coop_Bank=970446]="Coop_Bank",e[e.DBS_Bank=796500]="DBS_Bank",e[e.DongA_Bank=970406]="DongA_Bank",e[e.Eximbank=970431]="Eximbank",e[e.GPBank=970408]="GPBank",e[e.HDBank=970437]="HDBank",e[e.HSBC=458761]="HSBC",e[e.HongLeong_Bank=970442]="HongLeong_Bank",e[e.IBK_HCM=970456]="IBK_HCM",e[e.IBK_HN=970455]="IBK_HN",e[e.Indovina_Bank=970434]="Indovina_Bank",e[e.KBank=668888]="KBank",e[e.KienlongBank=970452]="KienlongBank",e[e.Kookmin_Bank_HCM=970463]="Kookmin_Bank_HCM",e[e.Kookmin_Bank_HN=970462]="Kookmin_Bank_HN",e[e.LPBank=970449]="LPBank",e[e.MB_Bank=970422]="MB_Bank",e[e.MSB=970426]="MSB",e[e.NCB=970419]="NCB",e[e.Nam_A_Bank=970428]="Nam_A_Bank",e[e.NongHyup_Bank=801011]="NongHyup_Bank",e[e.OCB=970448]="OCB",e[e.Ocean_Bank=970414]="Ocean_Bank",e[e.PGBank=970430]="PGBank",e[e.PVcomBank=970412]="PVcomBank",e[e.Public_Bank_Vietnam=970439]="Public_Bank_Vietnam",e[e.SCB=970429]="SCB",e[e.SHB=970443]="SHB",e[e.Sacombank=970403]="Sacombank",e[e.Saigon_Bank=970400]="Saigon_Bank",e[e.SeABank=970440]="SeABank",e[e.Shinhan_Bank=970424]="Shinhan_Bank",e[e.Standard_Chartered_Vietnam=970410]="Standard_Chartered_Vietnam",e[e.TNEX=9704261]="TNEX",e[e.TPBank=970423]="TPBank",e[e.Techcombank=970407]="Techcombank",e[e.Timo=963388]="Timo",e[e.UBank=546035]="UBank",e[e.United_Overseas_Bank_Vietnam=970458]="United_Overseas_Bank_Vietnam",e[e.VIB=970441]="VIB",e[e.VPBank=970432]="VPBank",e[e.VRB=970421]="VRB",e[e.VietABank=970427]="VietABank",e[e.VietBank=970433]="VietBank",e[e.Vietcombank=970436]="Vietcombank",e[e.VietinBank=970415]="VietinBank",e[e.Woori_Bank=970457]="Woori_Bank"})(Qge||(Qge={}));var J6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.deliveredUids[0],this.isSelf=!1}},X6=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.groupId,this.isSelf=r.deliveredUids.includes(t)}};var Er;(function(e){e[e.ADD=0]="ADD",e[e.REMOVE=1]="REMOVE",e[e.REQUEST=2]="REQUEST",e[e.UNDO_REQUEST=3]="UNDO_REQUEST",e[e.REJECT_REQUEST=4]="REJECT_REQUEST",e[e.SEEN_FRIEND_REQUEST=5]="SEEN_FRIEND_REQUEST",e[e.BLOCK=6]="BLOCK",e[e.UNBLOCK=7]="UNBLOCK",e[e.BLOCK_CALL=8]="BLOCK_CALL",e[e.UNBLOCK_CALL=9]="UNBLOCK_CALL",e[e.PIN_UNPIN=10]="PIN_UNPIN",e[e.PIN_CREATE=11]="PIN_CREATE",e[e.UNKNOWN=12]="UNKNOWN"})(Er||(Er={}));function Zge(e,t,r){if(r==Er.ADD||r==Er.REMOVE||r==Er.BLOCK||r==Er.UNBLOCK||r==Er.BLOCK_CALL||r==Er.UNBLOCK_CALL)return{type:r,data:t,threadId:t,isSelf:![Er.ADD,Er.REMOVE].includes(r)};if(r==Er.REJECT_REQUEST||r==Er.UNDO_REQUEST){let o=t.toUid;return{type:r,data:t,threadId:o,isSelf:t.fromUid==e}}else if(r==Er.REQUEST){let o=t.toUid;return{type:r,data:t,threadId:o,isSelf:t.fromUid==e}}else{if(r==Er.SEEN_FRIEND_REQUEST)return{type:r,data:t,threadId:e,isSelf:!0};if(r==Er.PIN_CREATE){let o=t.conversationId;return{type:r,data:t,threadId:o,isSelf:t.actorId==e}}else if(r==Er.PIN_UNPIN){let o=t.conversationId;return{type:r,data:t,threadId:o,isSelf:t.actorId==e}}else return{type:Er.UNKNOWN,data:JSON.stringify(t),threadId:"",isSelf:!1}}}var e2e;(function(e){e[e.Note=0]="Note",e[e.Message=2]="Message",e[e.Poll=3]="Poll"})(e2e||(e2e={}));var t2e;(function(e){e[e.Group=1]="Group",e[e.Community=2]="Community"})(t2e||(t2e={}));var Gi;(function(e){e.JOIN_REQUEST="join_request",e.JOIN="join",e.LEAVE="leave",e.REMOVE_MEMBER="remove_member",e.BLOCK_MEMBER="block_member",e.UPDATE_SETTING="update_setting",e.UPDATE="update",e.NEW_LINK="new_link",e.ADD_ADMIN="add_admin",e.REMOVE_ADMIN="remove_admin",e.NEW_PIN_TOPIC="new_pin_topic",e.UPDATE_PIN_TOPIC="update_pin_topic",e.REORDER_PIN_TOPIC="reorder_pin_topic",e.UPDATE_BOARD="update_board",e.REMOVE_BOARD="remove_board",e.UPDATE_TOPIC="update_topic",e.UNPIN_TOPIC="unpin_topic",e.REMOVE_TOPIC="remove_topic",e.ACCEPT_REMIND="accept_remind",e.REJECT_REMIND="reject_remind",e.REMIND_TOPIC="remind_topic",e.UPDATE_AVATAR="update_avatar",e.UNKNOWN="unknown"})(Gi||(Gi={}));function n2e(e,t,r,o){var n;let a="group_id"in t?t.group_id:t.groupId;if(r==Gi.JOIN_REQUEST)return{type:r,act:o,data:t,threadId:a,isSelf:!1};if(r==Gi.NEW_PIN_TOPIC||r==Gi.UNPIN_TOPIC||r==Gi.UPDATE_PIN_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.actorId==e};if(r==Gi.REORDER_PIN_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.actorId==e};if(r==Gi.UPDATE_BOARD||r==Gi.REMOVE_BOARD)return{type:r,act:o,data:t,threadId:a,isSelf:t.sourceId==e};if(r==Gi.ACCEPT_REMIND||r==Gi.REJECT_REMIND)return{type:r,act:o,data:t,threadId:a,isSelf:t.updateMembers.some(i=>i==e)};if(r==Gi.REMIND_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.creatorId==e};{let i=t;return{type:r,act:o,data:i,threadId:a,isSelf:((n=i.updateMembers)===null||n===void 0?void 0:n.some(s=>s.id==e))||i.sourceId==e}}}var YI=class{constructor(t,r){this.type=Xe.User,this.data=r,this.threadId=r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t),r.quote&&(r.quote.ownerId=String(r.quote.ownerId))}},UO=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.idTo,this.isSelf=r.uidFrom=="0",r.uidFrom=="0"&&(r.uidFrom=t),r.quote&&(r.quote.ownerId=String(r.quote.ownerId))}};var gn;(function(e){e.HEART="/-heart",e.LIKE="/-strong",e.HAHA=":>",e.WOW=":o",e.CRY=":-((",e.ANGRY=":-h",e.KISS=":-*",e.TEARS_OF_JOY=":')",e.SHIT="/-shit",e.ROSE="/-rose",e.BROKEN_HEART="/-break",e.DISLIKE="/-weak",e.LOVE=";xx",e.CONFUSED=";-/",e.WINK=";-)",e.FADE="/-fade",e.SUN="/-li",e.BIRTHDAY="/-bd",e.BOMB="/-bome",e.OK="/-ok",e.PEACE="/-v",e.THANKS="/-thanks",e.PUNCH="/-punch",e.SHARE="/-share",e.PRAY="_()_",e.NO="/-no",e.BAD="/-bad",e.LOVE_YOU="/-loveu",e.SAD="--b",e.VERY_SAD=":((",e.COOL="x-)",e.NERD="8-)",e.BIG_SMILE=";-d",e.SUNGLASSES="b-)",e.NEUTRAL=":--|",e.SAD_FACE="p-(",e.BYE=":-bye",e.SLEEPY="|-)",e.WIPE=":wipe",e.DIG=":-dig",e.ANGUISH="&-(",e.HANDCLAP=":handclap",e.ANGRY_FACE=">-|",e.F_CHAIR=":-f",e.L_CHAIR=":-l",e.R_CHAIR=":-r",e.SILENT=";-x",e.SURPRISE=":-o",e.EMBARRASSED=";-s",e.AFRAID=";-a",e.SAD2=":-<",e.BIG_LAUGH=":))",e.RICH="$-)",e.BEER="/-beer",e.NONE=""})(gn||(gn={}));var RS=class{constructor(t,r,o){this.data=r,this.threadId=o||r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",this.isGroup=o,r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t)}};var QI;(function(e){e[e.None=0]="None",e[e.Daily=1]="Daily",e[e.Weekly=2]="Weekly",e[e.Monthly=3]="Monthly"})(QI||(QI={}));var Y6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.idTo,this.isSelf=!1}},Q6=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.groupId,this.isSelf=r.seenUids.includes(t)}};var Z6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.uid,this.isSelf=!1}},e5=class{constructor(t){this.type=Xe.Group,this.data=t,this.threadId=t.gid,this.isSelf=!1}};var ZI=class{constructor(t,r,o){this.data=r,this.threadId=o||r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",this.isGroup=o,r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t)}};var Fs;(function(e){e[e.Other=0]="Other",e[e.RealEstate=1]="RealEstate",e[e.TechnologyAndDevices=2]="TechnologyAndDevices",e[e.TravelAndHospitality=3]="TravelAndHospitality",e[e.EducationAndTraining=4]="EducationAndTraining",e[e.ShoppingAndRetail=5]="ShoppingAndRetail",e[e.CosmeticsAndBeauty=6]="CosmeticsAndBeauty",e[e.RestaurantAndCafe=7]="RestaurantAndCafe",e[e.AutoAndMotorbike=8]="AutoAndMotorbike",e[e.FashionAndApparel=9]="FashionAndApparel",e[e.FoodAndBeverage=10]="FoodAndBeverage",e[e.MediaAndEntertainment=11]="MediaAndEntertainment",e[e.InternalCommunications=12]="InternalCommunications",e[e.Transportation=13]="Transportation",e[e.Telecommunications=14]="Telecommunications"})(Fs||(Fs={}));var uKn={[Fs.Other]:"D\u1ECBch v\u1EE5 kh\xE1c (Kh\xF4ng hi\u1EC3n th\u1ECB)",[Fs.RealEstate]:"B\u1EA5t \u0111\u1ED9ng s\u1EA3n",[Fs.TechnologyAndDevices]:"C\xF4ng ngh\u1EC7 & Thi\u1EBFt b\u1ECB",[Fs.TravelAndHospitality]:"Du l\u1ECBch & L\u01B0u tr\xFA",[Fs.EducationAndTraining]:"Gi\xE1o d\u1EE5c & \u0110\xE0o t\u1EA1o",[Fs.ShoppingAndRetail]:"Mua s\u1EAFm & B\xE1n l\u1EBB",[Fs.CosmeticsAndBeauty]:"M\u1EF9 ph\u1EA9m & L\xE0m \u0111\u1EB9p",[Fs.RestaurantAndCafe]:"Nh\xE0 h\xE0ng & Qu\xE1n",[Fs.AutoAndMotorbike]:"\xD4 t\xF4 & Xe m\xE1y",[Fs.FashionAndApparel]:"Th\u1EDDi trang & May m\u1EB7c",[Fs.FoodAndBeverage]:"Th\u1EF1c ph\u1EA9m & \u0110\u1ED3 u\u1ED1ng",[Fs.MediaAndEntertainment]:"Truy\u1EC1n th\xF4ng & Gi\u1EA3i tr\xED",[Fs.InternalCommunications]:"Truy\u1EC1n th\xF4ng n\u1ED9i b\u1ED9",[Fs.Transportation]:"V\u1EADn t\u1EA3i",[Fs.Telecommunications]:"Vi\u1EC5n th\xF4ng"};var N_e=ke(CS(),1),D_e=require("node:fs/promises");var qr=ke(UOe(),1),Ew=ke(require("node:crypto"),1),CJ=ke(require("node:fs"),1),dD=ke(require("node:path"),1);function US(e){let t=e.length;for(;--t>=0;)e[t]=0}var VPt=0,TMe=1,$Pt=2,JPt=3,XPt=258,SJ=29,Mw=256,fw=Mw+1+SJ,LS=30,EJ=19,vMe=2*fw+1,KO=15,eJ=16,YPt=7,TJ=256,IMe=16,wMe=17,PMe=18,hJ=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),eD=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),QPt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),zMe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ZPt=512,zy=new Array((fw+2)*2);US(zy);var lw=new Array(LS*2);US(lw);var dw=new Array(ZPt);US(dw);var hw=new Array(XPt-JPt+1);US(hw);var vJ=new Array(SJ);US(vJ);var tD=new Array(LS);US(tD);function tJ(e,t,r,o,n){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=o,this.max_length=n,this.has_stree=e&&e.length}var RMe,xMe,kMe;function nJ(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var CMe=e=>e<256?dw[e]:dw[256+(e>>>7)],yw=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Ql=(e,t,r)=>{e.bi_valid>eJ-r?(e.bi_buf|=t<<e.bi_valid&65535,yw(e,e.bi_buf),e.bi_buf=t>>eJ-e.bi_valid,e.bi_valid+=r-eJ):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)},ud=(e,t,r)=>{Ql(e,r[t*2],r[t*2+1])},NMe=(e,t)=>{let r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1},ezt=e=>{e.bi_valid===16?(yw(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},tzt=(e,t)=>{let r=t.dyn_tree,o=t.max_code,n=t.stat_desc.static_tree,a=t.stat_desc.has_stree,i=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,p,h,y,b,m,O=0;for(y=0;y<=KO;y++)e.bl_count[y]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<vMe;l++)p=e.heap[l],y=r[r[p*2+1]*2+1]+1,y>c&&(y=c,O++),r[p*2+1]=y,!(p>o)&&(e.bl_count[y]++,b=0,p>=s&&(b=i[p-s]),m=r[p*2],e.opt_len+=m*(y+b),a&&(e.static_len+=m*(n[p*2+1]+b)));if(O!==0){do{for(y=c-1;e.bl_count[y]===0;)y--;e.bl_count[y]--,e.bl_count[y+1]+=2,e.bl_count[c]--,O-=2}while(O>0);for(y=c;y!==0;y--)for(p=e.bl_count[y];p!==0;)h=e.heap[--l],!(h>o)&&(r[h*2+1]!==y&&(e.opt_len+=(y-r[h*2+1])*r[h*2],r[h*2+1]=y),p--)}},DMe=(e,t,r)=>{let o=new Array(KO+1),n=0,a,i;for(a=1;a<=KO;a++)n=n+r[a-1]<<1,o[a]=n;for(i=0;i<=t;i++){let s=e[i*2+1];s!==0&&(e[i*2]=NMe(o[s]++,s))}},nzt=()=>{let e,t,r,o,n,a=new Array(KO+1);for(r=0,o=0;o<SJ-1;o++)for(vJ[o]=r,e=0;e<1<<hJ[o];e++)hw[r++]=o;for(hw[r-1]=o,n=0,o=0;o<16;o++)for(tD[o]=n,e=0;e<1<<eD[o];e++)dw[n++]=o;for(n>>=7;o<LS;o++)for(tD[o]=n<<7,e=0;e<1<<eD[o]-7;e++)dw[256+n++]=o;for(t=0;t<=KO;t++)a[t]=0;for(e=0;e<=143;)zy[e*2+1]=8,e++,a[8]++;for(;e<=255;)zy[e*2+1]=9,e++,a[9]++;for(;e<=279;)zy[e*2+1]=7,e++,a[7]++;for(;e<=287;)zy[e*2+1]=8,e++,a[8]++;for(DMe(zy,fw+1,a),e=0;e<LS;e++)lw[e*2+1]=5,lw[e*2]=NMe(e,5);RMe=new tJ(zy,hJ,Mw+1,fw,KO),xMe=new tJ(lw,eD,0,LS,KO),kMe=new tJ(new Array(0),QPt,0,EJ,YPt)},LMe=e=>{let t;for(t=0;t<fw;t++)e.dyn_ltree[t*2]=0;for(t=0;t<LS;t++)e.dyn_dtree[t*2]=0;for(t=0;t<EJ;t++)e.bl_tree[t*2]=0;e.dyn_ltree[TJ*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},qMe=e=>{e.bi_valid>8?yw(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},WOe=(e,t,r,o)=>{let n=t*2,a=r*2;return e[n]<e[a]||e[n]===e[a]&&o[t]<=o[r]},iJ=(e,t,r)=>{let o=e.heap[r],n=r<<1;for(;n<=e.heap_len&&(n<e.heap_len&&WOe(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!WOe(t,o,e.heap[n],e.depth));)e.heap[r]=e.heap[n],r=n,n<<=1;e.heap[r]=o},FOe=(e,t,r)=>{let o,n,a=0,i,s;if(e.sym_next!==0)do o=e.pending_buf[e.sym_buf+a++]&255,o+=(e.pending_buf[e.sym_buf+a++]&255)<<8,n=e.pending_buf[e.sym_buf+a++],o===0?ud(e,n,t):(i=hw[n],ud(e,i+Mw+1,t),s=hJ[i],s!==0&&(n-=vJ[i],Ql(e,n,s)),o--,i=CMe(o),ud(e,i,r),s=eD[i],s!==0&&(o-=tD[i],Ql(e,o,s)));while(a<e.sym_next);ud(e,TJ,t)},yJ=(e,t)=>{let r=t.dyn_tree,o=t.stat_desc.static_tree,n=t.stat_desc.has_stree,a=t.stat_desc.elems,i,s,c=-1,l;for(e.heap_len=0,e.heap_max=vMe,i=0;i<a;i++)r[i*2]!==0?(e.heap[++e.heap_len]=c=i,e.depth[i]=0):r[i*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,r[l*2]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=o[l*2+1]);for(t.max_code=c,i=e.heap_len>>1;i>=1;i--)iJ(e,r,i);l=a;do i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],iJ(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=s,r[l*2]=r[i*2]+r[s*2],e.depth[l]=(e.depth[i]>=e.depth[s]?e.depth[i]:e.depth[s])+1,r[i*2+1]=r[s*2+1]=l,e.heap[1]=l++,iJ(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],tzt(e,t),DMe(r,c,e.bl_count)},jOe=(e,t,r)=>{let o,n=-1,a,i=t[1],s=0,c=7,l=4;for(i===0&&(c=138,l=3),t[(r+1)*2+1]=65535,o=0;o<=r;o++)a=i,i=t[(o+1)*2+1],!(++s<c&&a===i)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==n&&e.bl_tree[a*2]++,e.bl_tree[IMe*2]++):s<=10?e.bl_tree[wMe*2]++:e.bl_tree[PMe*2]++,s=0,n=a,i===0?(c=138,l=3):a===i?(c=6,l=3):(c=7,l=4))},GOe=(e,t,r)=>{let o,n=-1,a,i=t[1],s=0,c=7,l=4;for(i===0&&(c=138,l=3),o=0;o<=r;o++)if(a=i,i=t[(o+1)*2+1],!(++s<c&&a===i)){if(s<l)do ud(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==n&&(ud(e,a,e.bl_tree),s--),ud(e,IMe,e.bl_tree),Ql(e,s-3,2)):s<=10?(ud(e,wMe,e.bl_tree),Ql(e,s-3,3)):(ud(e,PMe,e.bl_tree),Ql(e,s-11,7));s=0,n=a,i===0?(c=138,l=3):a===i?(c=6,l=3):(c=7,l=4)}},izt=e=>{let t;for(jOe(e,e.dyn_ltree,e.l_desc.max_code),jOe(e,e.dyn_dtree,e.d_desc.max_code),yJ(e,e.bl_desc),t=EJ-1;t>=3&&e.bl_tree[zMe[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},rzt=(e,t,r,o)=>{let n;for(Ql(e,t-257,5),Ql(e,r-1,5),Ql(e,o-4,4),n=0;n<o;n++)Ql(e,e.bl_tree[zMe[n]*2+1],3);GOe(e,e.dyn_ltree,t-1),GOe(e,e.dyn_dtree,r-1)},ozt=e=>{let t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(r=32;r<Mw;r++)if(e.dyn_ltree[r*2]!==0)return 1;return 0},KOe=!1,azt=e=>{KOe||(nzt(),KOe=!0),e.l_desc=new nJ(e.dyn_ltree,RMe),e.d_desc=new nJ(e.dyn_dtree,xMe),e.bl_desc=new nJ(e.bl_tree,kMe),e.bi_buf=0,e.bi_valid=0,LMe(e)},BMe=(e,t,r,o)=>{Ql(e,(VPt<<1)+(o?1:0),3),qMe(e),yw(e,r),yw(e,~r),r&&e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r},szt=e=>{Ql(e,TMe<<1,3),ud(e,TJ,zy),ezt(e)},czt=(e,t,r,o)=>{let n,a,i=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=ozt(e)),yJ(e,e.l_desc),yJ(e,e.d_desc),i=izt(e),n=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=n&&(n=a)):n=a=r+5,r+4<=n&&t!==-1?BMe(e,t,r,o):e.strategy===4||a===n?(Ql(e,(TMe<<1)+(o?1:0),3),FOe(e,zy,lw)):(Ql(e,($Pt<<1)+(o?1:0),3),rzt(e,e.l_desc.max_code+1,e.d_desc.max_code+1,i+1),FOe(e,e.dyn_ltree,e.dyn_dtree)),LMe(e),o&&qMe(e)},lzt=(e,t,r)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=r,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(hw[r]+Mw+1)*2]++,e.dyn_dtree[CMe(t)*2]++),e.sym_next===e.sym_end),uzt=azt,pzt=BMe,fzt=czt,dzt=lzt,hzt=szt,yzt={_tr_init:uzt,_tr_stored_block:pzt,_tr_flush_block:fzt,_tr_tally:dzt,_tr_align:hzt},bzt=(e,t,r,o)=>{let n=e&65535|0,a=e>>>16&65535|0,i=0;for(;r!==0;){i=r>2e3?2e3:r,r-=i;do n=n+t[o++]|0,a=a+n|0;while(--i);n%=65521,a%=65521}return n|a<<16|0},bw=bzt,mzt=()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var o=0;o<8;o++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t},gzt=new Uint32Array(mzt()),Ozt=(e,t,r,o)=>{let n=gzt,a=o+r;e^=-1;for(let i=o;i<a;i++)e=e>>>8^n[(e^t[i])&255];return e^-1},ys=Ozt,$O={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},YO={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:Mzt,_tr_stored_block:bJ,_tr_flush_block:_zt,_tr_tally:Gm,_tr_align:Azt}=yzt,{Z_NO_FLUSH:Km,Z_PARTIAL_FLUSH:Szt,Z_FULL_FLUSH:Ezt,Z_FINISH:c1,Z_BLOCK:HOe,Z_OK:Gs,Z_STREAM_END:VOe,Z_STREAM_ERROR:pd,Z_DATA_ERROR:Tzt,Z_BUF_ERROR:rJ,Z_DEFAULT_COMPRESSION:vzt,Z_FILTERED:Izt,Z_HUFFMAN_ONLY:J5,Z_RLE:wzt,Z_FIXED:Pzt,Z_DEFAULT_STRATEGY:zzt,Z_UNKNOWN:Rzt,Z_DEFLATED:rD}=YO,xzt=9,kzt=15,Czt=8,Nzt=29,Dzt=256,mJ=Dzt+1+Nzt,Lzt=30,qzt=19,Bzt=2*mJ+1,Uzt=15,tr=3,jm=258,fd=jm+tr+1,Wzt=32,qS=42,IJ=57,gJ=69,OJ=73,MJ=91,_J=103,HO=113,sw=666,Qc=1,WS=2,JO=3,FS=4,Fzt=3,VO=(e,t)=>(e.msg=$O[t],t),$Oe=e=>e*2-(e>4?9:0),Fm=e=>{let t=e.length;for(;--t>=0;)e[t]=0},jzt=e=>{let t,r,o,n=e.w_size;t=e.hash_size,o=t;do r=e.head[--o],e.head[o]=r>=n?r-n:0;while(--t);t=n,o=t;do r=e.prev[--o],e.prev[o]=r>=n?r-n:0;while(--t)},Gzt=(e,t,r)=>(t<<e.hash_shift^r)&e.hash_mask,Hm=Gzt,a0=e=>{let t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))},s0=(e,t)=>{_zt(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a0(e.strm)},Tr=(e,t)=>{e.pending_buf[e.pending++]=t},aw=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},AJ=(e,t,r,o)=>{let n=e.avail_in;return n>o&&(n=o),n===0?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),r),e.state.wrap===1?e.adler=bw(e.adler,t,n,r):e.state.wrap===2&&(e.adler=ys(e.adler,t,n,r)),e.next_in+=n,e.total_in+=n,n)},UMe=(e,t)=>{let r=e.max_chain_length,o=e.strstart,n,a,i=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-fd?e.strstart-(e.w_size-fd):0,l=e.window,p=e.w_mask,h=e.prev,y=e.strstart+jm,b=l[o+i-1],m=l[o+i];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(l[n+i]!==m||l[n+i-1]!==b||l[n]!==l[o]||l[++n]!==l[o+1])){o+=2,n++;do;while(l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&o<y);if(a=jm-(y-o),o=y-jm,a>i){if(e.match_start=t,i=a,a>=s)break;b=l[o+i-1],m=l[o+i]}}while((t=h[t&p])>c&&--r!==0);return i<=e.lookahead?i:e.lookahead},BS=e=>{let t=e.w_size,r,o,n;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-fd)&&(e.window.set(e.window.subarray(t,t+t-o),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),jzt(e),o+=t),e.strm.avail_in===0)break;if(r=AJ(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=tr)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Hm(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Hm(e,e.ins_h,e.window[n+tr-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<tr)););}while(e.lookahead<fd&&e.strm.avail_in!==0)},WMe=(e,t)=>{let r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,o,n,a,i=0,s=e.strm.avail_in;do{if(o=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,n=e.strstart-e.block_start,o>n+e.strm.avail_in&&(o=n+e.strm.avail_in),o>a&&(o=a),o<r&&(o===0&&t!==c1||t===Km||o!==n+e.strm.avail_in)))break;i=t===c1&&o===n+e.strm.avail_in?1:0,bJ(e,0,0,i),e.pending_buf[e.pending-4]=o,e.pending_buf[e.pending-3]=o>>8,e.pending_buf[e.pending-2]=~o,e.pending_buf[e.pending-1]=~o>>8,a0(e.strm),n&&(n>o&&(n=o),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,o-=n),o&&(AJ(e.strm,e.strm.output,e.strm.next_out,o),e.strm.next_out+=o,e.strm.avail_out-=o,e.strm.total_out+=o)}while(i===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),i?FS:t!==Km&&t!==c1&&e.strm.avail_in===0&&e.strstart===e.block_start?WS:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(AJ(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,r=a>e.w_size?e.w_size:a,n=e.strstart-e.block_start,(n>=r||(n||t===c1)&&t!==Km&&e.strm.avail_in===0&&n<=a)&&(o=n>a?a:n,i=t===c1&&e.strm.avail_in===0&&o===n?1:0,bJ(e,e.block_start,o,i),e.block_start+=o,a0(e.strm)),i?JO:Qc)},oJ=(e,t)=>{let r,o;for(;;){if(e.lookahead<fd){if(BS(e),e.lookahead<fd&&t===Km)return Qc;if(e.lookahead===0)break}if(r=0,e.lookahead>=tr&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-fd&&(e.match_length=UMe(e,r)),e.match_length>=tr)if(o=Gm(e,e.strstart-e.match_start,e.match_length-tr),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=tr){e.match_length--;do e.strstart++,e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+1]);else o=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(o&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=e.strstart<tr-1?e.strstart:tr-1,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},NS=(e,t)=>{let r,o,n;for(;;){if(e.lookahead<fd){if(BS(e),e.lookahead<fd&&t===Km)return Qc;if(e.lookahead===0)break}if(r=0,e.lookahead>=tr&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=tr-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-fd&&(e.match_length=UMe(e,r),e.match_length<=5&&(e.strategy===Izt||e.match_length===tr&&e.strstart-e.match_start>4096)&&(e.match_length=tr-1)),e.prev_length>=tr&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-tr,o=Gm(e,e.strstart-1-e.prev_match,e.prev_length-tr),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=tr-1,e.strstart++,o&&(s0(e,!1),e.strm.avail_out===0))return Qc}else if(e.match_available){if(o=Gm(e,0,e.window[e.strstart-1]),o&&s0(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Qc}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(o=Gm(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<tr-1?e.strstart:tr-1,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},Kzt=(e,t)=>{let r,o,n,a,i=e.window;for(;;){if(e.lookahead<=jm){if(BS(e),e.lookahead<=jm&&t===Km)return Qc;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=tr&&e.strstart>0&&(n=e.strstart-1,o=i[n],o===i[++n]&&o===i[++n]&&o===i[++n])){a=e.strstart+jm;do;while(o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&n<a);e.match_length=jm-(a-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=tr?(r=Gm(e,1,e.match_length-tr),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=0,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},Hzt=(e,t)=>{let r;for(;;){if(e.lookahead===0&&(BS(e),e.lookahead===0)){if(t===Km)return Qc;break}if(e.match_length=0,r=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=0,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS};function ld(e,t,r,o,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=o,this.func=n}var cw=[new ld(0,0,0,0,WMe),new ld(4,4,8,4,oJ),new ld(4,5,16,8,oJ),new ld(4,6,32,32,oJ),new ld(4,4,16,16,NS),new ld(8,16,32,32,NS),new ld(8,16,128,128,NS),new ld(8,32,128,256,NS),new ld(32,128,258,1024,NS),new ld(32,258,258,4096,NS)],Vzt=e=>{e.window_size=2*e.w_size,Fm(e.head),e.max_lazy_match=cw[e.level].max_lazy,e.good_match=cw[e.level].good_length,e.nice_match=cw[e.level].nice_length,e.max_chain_length=cw[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=tr-1,e.match_available=0,e.ins_h=0};function $zt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=rD,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Bzt*2),this.dyn_dtree=new Uint16Array((2*Lzt+1)*2),this.bl_tree=new Uint16Array((2*qzt+1)*2),Fm(this.dyn_ltree),Fm(this.dyn_dtree),Fm(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Uzt+1),this.heap=new Uint16Array(2*mJ+1),Fm(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mJ+1),Fm(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var _w=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==qS&&t.status!==IJ&&t.status!==gJ&&t.status!==OJ&&t.status!==MJ&&t.status!==_J&&t.status!==HO&&t.status!==sw?1:0},FMe=e=>{if(_w(e))return VO(e,pd);e.total_in=e.total_out=0,e.data_type=Rzt;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?IJ:t.wrap?qS:HO,e.adler=t.wrap===2?0:1,t.last_flush=-2,Mzt(t),Gs},jMe=e=>{let t=FMe(e);return t===Gs&&Vzt(e.state),t},Jzt=(e,t)=>_w(e)||e.state.wrap!==2?pd:(e.state.gzhead=t,Gs),GMe=(e,t,r,o,n,a)=>{if(!e)return pd;let i=1;if(t===vzt&&(t=6),o<0?(i=0,o=-o):o>15&&(i=2,o-=16),n<1||n>xzt||r!==rD||o<8||o>15||t<0||t>9||a<0||a>Pzt||o===8&&i!==1)return VO(e,pd);o===8&&(o=9);let s=new $zt;return e.state=s,s.strm=e,s.status=qS,s.wrap=i,s.gzhead=null,s.w_bits=o,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=n+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+tr-1)/tr),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<n+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=r,jMe(e)},Xzt=(e,t)=>GMe(e,t,rD,kzt,Czt,zzt),Yzt=(e,t)=>{if(_w(e)||t>HOe||t<0)return e?VO(e,pd):pd;let r=e.state;if(!e.output||e.avail_in!==0&&!e.input||r.status===sw&&t!==c1)return VO(e,e.avail_out===0?rJ:pd);let o=r.last_flush;if(r.last_flush=t,r.pending!==0){if(a0(e),e.avail_out===0)return r.last_flush=-1,Gs}else if(e.avail_in===0&&$Oe(t)<=$Oe(o)&&t!==c1)return VO(e,rJ);if(r.status===sw&&e.avail_in!==0)return VO(e,rJ);if(r.status===qS&&r.wrap===0&&(r.status=HO),r.status===qS){let n=rD+(r.w_bits-8<<4)<<8,a=-1;if(r.strategy>=J5||r.level<2?a=0:r.level<6?a=1:r.level===6?a=2:a=3,n|=a<<6,r.strstart!==0&&(n|=Wzt),n+=31-n%31,aw(r,n),r.strstart!==0&&(aw(r,e.adler>>>16),aw(r,e.adler&65535)),e.adler=1,r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(r.status===IJ){if(e.adler=0,Tr(r,31),Tr(r,139),Tr(r,8),r.gzhead)Tr(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Tr(r,r.gzhead.time&255),Tr(r,r.gzhead.time>>8&255),Tr(r,r.gzhead.time>>16&255),Tr(r,r.gzhead.time>>24&255),Tr(r,r.level===9?2:r.strategy>=J5||r.level<2?4:0),Tr(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Tr(r,r.gzhead.extra.length&255),Tr(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ys(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=gJ;else if(Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,r.level===9?2:r.strategy>=J5||r.level<2?4:0),Tr(r,Fzt),r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(r.status===gJ){if(r.gzhead.extra){let n=r.pending,a=(r.gzhead.extra.length&65535)-r.gzindex;for(;r.pending+a>r.pending_buf_size;){let s=r.pending_buf_size-r.pending;if(r.pending_buf.set(r.gzhead.extra.subarray(r.gzindex,r.gzindex+s),r.pending),r.pending=r.pending_buf_size,r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex+=s,a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0,a-=s}let i=new Uint8Array(r.gzhead.extra);r.pending_buf.set(i.subarray(r.gzindex,r.gzindex+a),r.pending),r.pending+=a,r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex=0}r.status=OJ}if(r.status===OJ){if(r.gzhead.name){let n=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,Tr(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex=0}r.status=MJ}if(r.status===MJ){if(r.gzhead.comment){let n=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,Tr(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n))}r.status=_J}if(r.status===_J){if(r.gzhead.hcrc){if(r.pending+2>r.pending_buf_size&&(a0(e),r.pending!==0))return r.last_flush=-1,Gs;Tr(r,e.adler&255),Tr(r,e.adler>>8&255),e.adler=0}if(r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(e.avail_in!==0||r.lookahead!==0||t!==Km&&r.status!==sw){let n=r.level===0?WMe(r,t):r.strategy===J5?Hzt(r,t):r.strategy===wzt?Kzt(r,t):cw[r.level].func(r,t);if((n===JO||n===FS)&&(r.status=sw),n===Qc||n===JO)return e.avail_out===0&&(r.last_flush=-1),Gs;if(n===WS&&(t===Szt?Azt(r):t!==HOe&&(bJ(r,0,0,!1),t===Ezt&&(Fm(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),a0(e),e.avail_out===0))return r.last_flush=-1,Gs}return t!==c1?Gs:r.wrap<=0?VOe:(r.wrap===2?(Tr(r,e.adler&255),Tr(r,e.adler>>8&255),Tr(r,e.adler>>16&255),Tr(r,e.adler>>24&255),Tr(r,e.total_in&255),Tr(r,e.total_in>>8&255),Tr(r,e.total_in>>16&255),Tr(r,e.total_in>>24&255)):(aw(r,e.adler>>>16),aw(r,e.adler&65535)),a0(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Gs:VOe)},Qzt=e=>{if(_w(e))return pd;let t=e.state.status;return e.state=null,t===HO?VO(e,Tzt):Gs},Zzt=(e,t)=>{let r=t.length;if(_w(e))return pd;let o=e.state,n=o.wrap;if(n===2||n===1&&o.status!==qS||o.lookahead)return pd;if(n===1&&(e.adler=bw(e.adler,t,r,0)),o.wrap=0,r>=o.w_size){n===0&&(Fm(o.head),o.strstart=0,o.block_start=0,o.insert=0);let c=new Uint8Array(o.w_size);c.set(t.subarray(r-o.w_size,r),0),t=c,r=o.w_size}let a=e.avail_in,i=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,BS(o);o.lookahead>=tr;){let c=o.strstart,l=o.lookahead-(tr-1);do o.ins_h=Hm(o,o.ins_h,o.window[c+tr-1]),o.prev[c&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=c,c++;while(--l);o.strstart=c,o.lookahead=tr-1,BS(o)}return o.strstart+=o.lookahead,o.block_start=o.strstart,o.insert=o.lookahead,o.lookahead=0,o.match_length=o.prev_length=tr-1,o.match_available=0,e.next_in=i,e.input=s,e.avail_in=a,o.wrap=n,Gs},eRt=Xzt,tRt=GMe,nRt=jMe,iRt=FMe,rRt=Jzt,oRt=Yzt,aRt=Qzt,sRt=Zzt,cRt="pako deflate (from Nodeca project)",uw={deflateInit:eRt,deflateInit2:tRt,deflateReset:nRt,deflateResetKeep:iRt,deflateSetHeader:rRt,deflate:oRt,deflateEnd:aRt,deflateSetDictionary:sRt,deflateInfo:cRt},lRt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),uRt=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(let o in r)lRt(r,o)&&(e[o]=r[o])}}return e},pRt=e=>{let t=0;for(let o=0,n=e.length;o<n;o++)t+=e[o].length;let r=new Uint8Array(t);for(let o=0,n=0,a=e.length;o<a;o++){let i=e[o];r.set(i,n),n+=i.length}return r},oD={assign:uRt,flattenChunks:pRt},KMe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{KMe=!1}var mw=new Uint8Array(256);for(let e=0;e<256;e++)mw[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;mw[254]=mw[254]=1;var fRt=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,r,o,n,a,i=e.length,s=0;for(n=0;n<i;n++)r=e.charCodeAt(n),(r&64512)===55296&&n+1<i&&(o=e.charCodeAt(n+1),(o&64512)===56320&&(r=65536+(r-55296<<10)+(o-56320),n++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),a=0,n=0;a<s;n++)r=e.charCodeAt(n),(r&64512)===55296&&n+1<i&&(o=e.charCodeAt(n+1),(o&64512)===56320&&(r=65536+(r-55296<<10)+(o-56320),n++)),r<128?t[a++]=r:r<2048?(t[a++]=192|r>>>6,t[a++]=128|r&63):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|r&63):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|r&63);return t},dRt=(e,t)=>{if(t<65534&&e.subarray&&KMe)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let o=0;o<t;o++)r+=String.fromCharCode(e[o]);return r},hRt=(e,t)=>{let r=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let o,n,a=new Array(r*2);for(n=0,o=0;o<r;){let i=e[o++];if(i<128){a[n++]=i;continue}let s=mw[i];if(s>4){a[n++]=65533,o+=s-1;continue}for(i&=s===2?31:s===3?15:7;s>1&&o<r;)i=i<<6|e[o++]&63,s--;if(s>1){a[n++]=65533;continue}i<65536?a[n++]=i:(i-=65536,a[n++]=55296|i>>10&1023,a[n++]=56320|i&1023)}return dRt(a,n)},yRt=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let r=t-1;for(;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+mw[e[r]]>t?r:t},gw={string2buf:fRt,buf2string:hRt,utf8border:yRt};function bRt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var HMe=bRt,VMe=Object.prototype.toString,{Z_NO_FLUSH:mRt,Z_SYNC_FLUSH:gRt,Z_FULL_FLUSH:ORt,Z_FINISH:MRt,Z_OK:nD,Z_STREAM_END:_Rt,Z_DEFAULT_COMPRESSION:ARt,Z_DEFAULT_STRATEGY:SRt,Z_DEFLATED:ERt}=YO;function Aw(e){this.options=oD.assign({level:ARt,method:ERt,chunkSize:16384,windowBits:15,memLevel:8,strategy:SRt},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new HMe,this.strm.avail_out=0;let r=uw.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==nD)throw new Error($O[r]);if(t.header&&uw.deflateSetHeader(this.strm,t.header),t.dictionary){let o;if(typeof t.dictionary=="string"?o=gw.string2buf(t.dictionary):VMe.call(t.dictionary)==="[object ArrayBuffer]"?o=new Uint8Array(t.dictionary):o=t.dictionary,r=uw.deflateSetDictionary(this.strm,o),r!==nD)throw new Error($O[r]);this._dict_set=!0}}Aw.prototype.push=function(e,t){let r=this.strm,o=this.options.chunkSize,n,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?MRt:mRt,typeof e=="string"?r.input=gw.string2buf(e):VMe.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){if(r.avail_out===0&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),(a===gRt||a===ORt)&&r.avail_out<=6){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(n=uw.deflate(r,a),n===_Rt)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),n=uw.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===nD;if(r.avail_out===0){this.onData(r.output);continue}if(a>0&&r.next_out>0){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(r.avail_in===0)break}return!0};Aw.prototype.onData=function(e){this.chunks.push(e)};Aw.prototype.onEnd=function(e){e===nD&&(this.result=oD.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function wJ(e,t){let r=new Aw(t);if(r.push(e,!0),r.err)throw r.msg||$O[r.err];return r.result}function TRt(e,t){return t=t||{},t.raw=!0,wJ(e,t)}function vRt(e,t){return t=t||{},t.gzip=!0,wJ(e,t)}var IRt=Aw,wRt=wJ,PRt=TRt,zRt=vRt,RRt=YO,xRt={Deflate:IRt,deflate:wRt,deflateRaw:PRt,gzip:zRt,constants:RRt},X5=16209,kRt=16191,CRt=function(t,r){let o,n,a,i,s,c,l,p,h,y,b,m,O,_,M,S,v,T,w,P,C,R,N,W,k=t.state;o=t.next_in,N=t.input,n=o+(t.avail_in-5),a=t.next_out,W=t.output,i=a-(r-t.avail_out),s=a+(t.avail_out-257),c=k.dmax,l=k.wsize,p=k.whave,h=k.wnext,y=k.window,b=k.hold,m=k.bits,O=k.lencode,_=k.distcode,M=(1<<k.lenbits)-1,S=(1<<k.distbits)-1;e:do{m<15&&(b+=N[o++]<<m,m+=8,b+=N[o++]<<m,m+=8),v=O[b&M];t:for(;;){if(T=v>>>24,b>>>=T,m-=T,T=v>>>16&255,T===0)W[a++]=v&65535;else if(T&16){w=v&65535,T&=15,T&&(m<T&&(b+=N[o++]<<m,m+=8),w+=b&(1<<T)-1,b>>>=T,m-=T),m<15&&(b+=N[o++]<<m,m+=8,b+=N[o++]<<m,m+=8),v=_[b&S];n:for(;;){if(T=v>>>24,b>>>=T,m-=T,T=v>>>16&255,T&16){if(P=v&65535,T&=15,m<T&&(b+=N[o++]<<m,m+=8,m<T&&(b+=N[o++]<<m,m+=8)),P+=b&(1<<T)-1,P>c){t.msg="invalid distance too far back",k.mode=X5;break e}if(b>>>=T,m-=T,T=a-i,P>T){if(T=P-T,T>p&&k.sane){t.msg="invalid distance too far back",k.mode=X5;break e}if(C=0,R=y,h===0){if(C+=l-T,T<w){w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}}else if(h<T){if(C+=l+h-T,T-=h,T<w){w-=T;do W[a++]=y[C++];while(--T);if(C=0,h<w){T=h,w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}}}else if(C+=h-T,T<w){w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}for(;w>2;)W[a++]=R[C++],W[a++]=R[C++],W[a++]=R[C++],w-=3;w&&(W[a++]=R[C++],w>1&&(W[a++]=R[C++]))}else{C=a-P;do W[a++]=W[C++],W[a++]=W[C++],W[a++]=W[C++],w-=3;while(w>2);w&&(W[a++]=W[C++],w>1&&(W[a++]=W[C++]))}}else if((T&64)===0){v=_[(v&65535)+(b&(1<<T)-1)];continue n}else{t.msg="invalid distance code",k.mode=X5;break e}break}}else if((T&64)===0){v=O[(v&65535)+(b&(1<<T)-1)];continue t}else if(T&32){k.mode=kRt;break e}else{t.msg="invalid literal/length code",k.mode=X5;break e}break}}while(o<n&&a<s);w=m>>3,o-=w,m-=w<<3,b&=(1<<m)-1,t.next_in=o,t.next_out=a,t.avail_in=o<n?5+(n-o):5-(o-n),t.avail_out=a<s?257+(s-a):257-(a-s),k.hold=b,k.bits=m},DS=15,JOe=852,XOe=592,YOe=0,aJ=1,QOe=2,NRt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),DRt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),LRt=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),qRt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),BRt=(e,t,r,o,n,a,i,s)=>{let c=s.bits,l=0,p=0,h=0,y=0,b=0,m=0,O=0,_=0,M=0,S=0,v,T,w,P,C,R=null,N,W=new Uint16Array(DS+1),k=new Uint16Array(DS+1),K=null,U,q,H;for(l=0;l<=DS;l++)W[l]=0;for(p=0;p<o;p++)W[t[r+p]]++;for(b=c,y=DS;y>=1&&W[y]===0;y--);if(b>y&&(b=y),y===0)return n[a++]=1<<24|64<<16|0,n[a++]=1<<24|64<<16|0,s.bits=1,0;for(h=1;h<y&&W[h]===0;h++);for(b<h&&(b=h),_=1,l=1;l<=DS;l++)if(_<<=1,_-=W[l],_<0)return-1;if(_>0&&(e===YOe||y!==1))return-1;for(k[1]=0,l=1;l<DS;l++)k[l+1]=k[l]+W[l];for(p=0;p<o;p++)t[r+p]!==0&&(i[k[t[r+p]]++]=p);if(e===YOe?(R=K=i,N=20):e===aJ?(R=NRt,K=DRt,N=257):(R=LRt,K=qRt,N=0),S=0,p=0,l=h,C=a,m=b,O=0,w=-1,M=1<<b,P=M-1,e===aJ&&M>JOe||e===QOe&&M>XOe)return 1;for(;;){U=l-O,i[p]+1<N?(q=0,H=i[p]):i[p]>=N?(q=K[i[p]-N],H=R[i[p]-N]):(q=96,H=0),v=1<<l-O,T=1<<m,h=T;do T-=v,n[C+(S>>O)+T]=U<<24|q<<16|H|0;while(T!==0);for(v=1<<l-1;S&v;)v>>=1;if(v!==0?(S&=v-1,S+=v):S=0,p++,--W[l]===0){if(l===y)break;l=t[r+i[p]]}if(l>b&&(S&P)!==w){for(O===0&&(O=b),C+=h,m=l-O,_=1<<m;m+O<y&&(_-=W[m+O],!(_<=0));)m++,_<<=1;if(M+=1<<m,e===aJ&&M>JOe||e===QOe&&M>XOe)return 1;w=S&P,n[w]=b<<24|m<<16|C-a|0}}return S!==0&&(n[C+S]=l-O<<24|64<<16|0),s.bits=b,0},pw=BRt,URt=0,$Me=1,JMe=2,{Z_FINISH:ZOe,Z_BLOCK:WRt,Z_TREES:Y5,Z_OK:XO,Z_STREAM_END:FRt,Z_NEED_DICT:jRt,Z_STREAM_ERROR:l1,Z_DATA_ERROR:XMe,Z_MEM_ERROR:YMe,Z_BUF_ERROR:GRt,Z_DEFLATED:eMe}=YO,aD=16180,tMe=16181,nMe=16182,iMe=16183,rMe=16184,oMe=16185,aMe=16186,sMe=16187,cMe=16188,lMe=16189,iD=16190,Py=16191,sJ=16192,uMe=16193,cJ=16194,pMe=16195,fMe=16196,dMe=16197,hMe=16198,Q5=16199,Z5=16200,yMe=16201,bMe=16202,mMe=16203,gMe=16204,OMe=16205,lJ=16206,MMe=16207,_Me=16208,To=16209,QMe=16210,ZMe=16211,KRt=852,HRt=592,VRt=15,$Rt=VRt,AMe=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function JRt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var QO=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<aD||t.mode>ZMe?1:0},e_e=e=>{if(QO(e))return l1;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=aD,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(KRt),t.distcode=t.distdyn=new Int32Array(HRt),t.sane=1,t.back=-1,XO},t_e=e=>{if(QO(e))return l1;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,e_e(e)},n_e=(e,t)=>{let r;if(QO(e))return l1;let o=e.state;return t<0?(r=0,t=-t):(r=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?l1:(o.window!==null&&o.wbits!==t&&(o.window=null),o.wrap=r,o.wbits=t,t_e(e))},i_e=(e,t)=>{if(!e)return l1;let r=new JRt;e.state=r,r.strm=e,r.window=null,r.mode=aD;let o=n_e(e,t);return o!==XO&&(e.state=null),o},XRt=e=>i_e(e,$Rt),SMe=!0,uJ,pJ,YRt=e=>{if(SMe){uJ=new Int32Array(512),pJ=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pw($Me,e.lens,0,288,uJ,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pw(JMe,e.lens,0,32,pJ,0,e.work,{bits:5}),SMe=!1}e.lencode=uJ,e.lenbits=9,e.distcode=pJ,e.distbits=5},r_e=(e,t,r,o)=>{let n,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),o>=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):(n=a.wsize-a.wnext,n>o&&(n=o),a.window.set(t.subarray(r-o,r-o+n),a.wnext),o-=n,o?(a.window.set(t.subarray(r-o,r),0),a.wnext=o,a.whave=a.wsize):(a.wnext+=n,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=n))),0},QRt=(e,t)=>{let r,o,n,a,i,s,c,l,p,h,y,b,m,O,_=0,M,S,v,T,w,P,C,R,N=new Uint8Array(4),W,k,K=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(QO(e)||!e.output||!e.input&&e.avail_in!==0)return l1;r=e.state,r.mode===Py&&(r.mode=sJ),i=e.next_out,n=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,p=r.bits,h=s,y=c,R=XO;e:for(;;)switch(r.mode){case aD:if(r.wrap===0){r.mode=sJ;break}for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&2&&l===35615){r.wbits===0&&(r.wbits=15),r.check=0,N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0),l=0,p=0,r.mode=tMe;break}if(r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=To;break}if((l&15)!==eMe){e.msg="unknown compression method",r.mode=To;break}if(l>>>=4,p-=4,C=(l&15)+8,r.wbits===0&&(r.wbits=C),C>15||C>r.wbits){e.msg="invalid window size",r.mode=To;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=l&512?lMe:Py,l=0,p=0;break;case tMe:for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.flags=l,(r.flags&255)!==eMe){e.msg="unknown compression method",r.mode=To;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=To;break}r.head&&(r.head.text=l>>8&1),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0,r.mode=nMe;case nMe:for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.head&&(r.head.time=l),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,N[2]=l>>>16&255,N[3]=l>>>24&255,r.check=ys(r.check,N,4,0)),l=0,p=0,r.mode=iMe;case iMe:for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.head&&(r.head.xflags=l&255,r.head.os=l>>8),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0,r.mode=rMe;case rMe:if(r.flags&1024){for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.length=l,r.head&&(r.head.extra_len=l),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0}else r.head&&(r.head.extra=null);r.mode=oMe;case oMe:if(r.flags&1024&&(b=r.length,b>s&&(b=s),b&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(o.subarray(a,a+b),C)),r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,r.length-=b),r.length))break e;r.length=0,r.mode=aMe;case aMe:if(r.flags&2048){if(s===0)break e;b=0;do C=o[a+b++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C));while(C&&b<s);if(r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,C)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=sMe;case sMe:if(r.flags&4096){if(s===0)break e;b=0;do C=o[a+b++],r.head&&C&&r.length<65536&&(r.head.comment+=String.fromCharCode(C));while(C&&b<s);if(r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,C)break e}else r.head&&(r.head.comment=null);r.mode=cMe;case cMe:if(r.flags&512){for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&4&&l!==(r.check&65535)){e.msg="header crc mismatch",r.mode=To;break}l=0,p=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Py;break;case lMe:for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}e.adler=r.check=AMe(l),l=0,p=0,r.mode=iD;case iD:if(r.havedict===0)return e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,jRt;e.adler=r.check=1,r.mode=Py;case Py:if(t===WRt||t===Y5)break e;case sJ:if(r.last){l>>>=p&7,p-=p&7,r.mode=lJ;break}for(;p<3;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}switch(r.last=l&1,l>>>=1,p-=1,l&3){case 0:r.mode=uMe;break;case 1:if(YRt(r),r.mode=Q5,t===Y5){l>>>=2,p-=2;break e}break;case 2:r.mode=fMe;break;case 3:e.msg="invalid block type",r.mode=To}l>>>=2,p-=2;break;case uMe:for(l>>>=p&7,p-=p&7;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",r.mode=To;break}if(r.length=l&65535,l=0,p=0,r.mode=cJ,t===Y5)break e;case cJ:r.mode=pMe;case pMe:if(b=r.length,b){if(b>s&&(b=s),b>c&&(b=c),b===0)break e;n.set(o.subarray(a,a+b),i),s-=b,a+=b,c-=b,i+=b,r.length-=b;break}r.mode=Py;break;case fMe:for(;p<14;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.nlen=(l&31)+257,l>>>=5,p-=5,r.ndist=(l&31)+1,l>>>=5,p-=5,r.ncode=(l&15)+4,l>>>=4,p-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=To;break}r.have=0,r.mode=dMe;case dMe:for(;r.have<r.ncode;){for(;p<3;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.lens[K[r.have++]]=l&7,l>>>=3,p-=3}for(;r.have<19;)r.lens[K[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,W={bits:r.lenbits},R=pw(URt,r.lens,0,19,r.lencode,0,r.work,W),r.lenbits=W.bits,R){e.msg="invalid code lengths set",r.mode=To;break}r.have=0,r.mode=hMe;case hMe:for(;r.have<r.nlen+r.ndist;){for(;_=r.lencode[l&(1<<r.lenbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(v<16)l>>>=M,p-=M,r.lens[r.have++]=v;else{if(v===16){for(k=M+2;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(l>>>=M,p-=M,r.have===0){e.msg="invalid bit length repeat",r.mode=To;break}C=r.lens[r.have-1],b=3+(l&3),l>>>=2,p-=2}else if(v===17){for(k=M+3;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=M,p-=M,C=0,b=3+(l&7),l>>>=3,p-=3}else{for(k=M+7;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=M,p-=M,C=0,b=11+(l&127),l>>>=7,p-=7}if(r.have+b>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=To;break}for(;b--;)r.lens[r.have++]=C}}if(r.mode===To)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=To;break}if(r.lenbits=9,W={bits:r.lenbits},R=pw($Me,r.lens,0,r.nlen,r.lencode,0,r.work,W),r.lenbits=W.bits,R){e.msg="invalid literal/lengths set",r.mode=To;break}if(r.distbits=6,r.distcode=r.distdyn,W={bits:r.distbits},R=pw(JMe,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,W),r.distbits=W.bits,R){e.msg="invalid distances set",r.mode=To;break}if(r.mode=Q5,t===Y5)break e;case Q5:r.mode=Z5;case Z5:if(s>=6&&c>=258){e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,CRt(e,y),i=e.next_out,n=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,p=r.bits,r.mode===Py&&(r.back=-1);break}for(r.back=0;_=r.lencode[l&(1<<r.lenbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(S&&(S&240)===0){for(T=M,w=S,P=v;_=r.lencode[P+((l&(1<<T+w)-1)>>T)],M=_>>>24,S=_>>>16&255,v=_&65535,!(T+M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=T,p-=T,r.back+=T}if(l>>>=M,p-=M,r.back+=M,r.length=v,S===0){r.mode=OMe;break}if(S&32){r.back=-1,r.mode=Py;break}if(S&64){e.msg="invalid literal/length code",r.mode=To;break}r.extra=S&15,r.mode=yMe;case yMe:if(r.extra){for(k=r.extra;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.length+=l&(1<<r.extra)-1,l>>>=r.extra,p-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=bMe;case bMe:for(;_=r.distcode[l&(1<<r.distbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if((S&240)===0){for(T=M,w=S,P=v;_=r.distcode[P+((l&(1<<T+w)-1)>>T)],M=_>>>24,S=_>>>16&255,v=_&65535,!(T+M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=T,p-=T,r.back+=T}if(l>>>=M,p-=M,r.back+=M,S&64){e.msg="invalid distance code",r.mode=To;break}r.offset=v,r.extra=S&15,r.mode=mMe;case mMe:if(r.extra){for(k=r.extra;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.offset+=l&(1<<r.extra)-1,l>>>=r.extra,p-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=To;break}r.mode=gMe;case gMe:if(c===0)break e;if(b=y-c,r.offset>b){if(b=r.offset-b,b>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=To;break}b>r.wnext?(b-=r.wnext,m=r.wsize-b):m=r.wnext-b,b>r.length&&(b=r.length),O=r.window}else O=n,m=i-r.offset,b=r.length;b>c&&(b=c),c-=b,r.length-=b;do n[i++]=O[m++];while(--b);r.length===0&&(r.mode=Z5);break;case OMe:if(c===0)break e;n[i++]=r.length,c--,r.mode=Z5;break;case lJ:if(r.wrap){for(;p<32;){if(s===0)break e;s--,l|=o[a++]<<p,p+=8}if(y-=c,e.total_out+=y,r.total+=y,r.wrap&4&&y&&(e.adler=r.check=r.flags?ys(r.check,n,y,i-y):bw(r.check,n,y,i-y)),y=c,r.wrap&4&&(r.flags?l:AMe(l))!==r.check){e.msg="incorrect data check",r.mode=To;break}l=0,p=0}r.mode=MMe;case MMe:if(r.wrap&&r.flags){for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&4&&l!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=To;break}l=0,p=0}r.mode=_Me;case _Me:R=FRt;break e;case To:R=XMe;break e;case QMe:return YMe;case ZMe:default:return l1}return e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,(r.wsize||y!==e.avail_out&&r.mode<To&&(r.mode<lJ||t!==ZOe))&&r_e(e,e.output,e.next_out,y-e.avail_out),h-=e.avail_in,y-=e.avail_out,e.total_in+=h,e.total_out+=y,r.total+=y,r.wrap&4&&y&&(e.adler=r.check=r.flags?ys(r.check,n,y,e.next_out-y):bw(r.check,n,y,e.next_out-y)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Py?128:0)+(r.mode===Q5||r.mode===cJ?256:0),(h===0&&y===0||t===ZOe)&&R===XO&&(R=GRt),R},ZRt=e=>{if(QO(e))return l1;let t=e.state;return t.window&&(t.window=null),e.state=null,XO},e4t=(e,t)=>{if(QO(e))return l1;let r=e.state;return(r.wrap&2)===0?l1:(r.head=t,t.done=!1,XO)},t4t=(e,t)=>{let r=t.length,o,n,a;return QO(e)||(o=e.state,o.wrap!==0&&o.mode!==iD)?l1:o.mode===iD&&(n=1,n=bw(n,t,r,0),n!==o.check)?XMe:(a=r_e(e,t,r,r),a?(o.mode=QMe,YMe):(o.havedict=1,XO))},n4t=t_e,i4t=n_e,r4t=e_e,o4t=XRt,a4t=i_e,s4t=QRt,c4t=ZRt,l4t=e4t,u4t=t4t,p4t="pako inflate (from Nodeca project)",Ry={inflateReset:n4t,inflateReset2:i4t,inflateResetKeep:r4t,inflateInit:o4t,inflateInit2:a4t,inflate:s4t,inflateEnd:c4t,inflateGetHeader:l4t,inflateSetDictionary:u4t,inflateInfo:p4t};function f4t(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var d4t=f4t,o_e=Object.prototype.toString,{Z_NO_FLUSH:h4t,Z_FINISH:y4t,Z_OK:Ow,Z_STREAM_END:fJ,Z_NEED_DICT:dJ,Z_STREAM_ERROR:b4t,Z_DATA_ERROR:EMe,Z_MEM_ERROR:m4t}=YO;function Sw(e){this.options=oD.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new HMe,this.strm.avail_out=0;let r=Ry.inflateInit2(this.strm,t.windowBits);if(r!==Ow)throw new Error($O[r]);if(this.header=new d4t,Ry.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=gw.string2buf(t.dictionary):o_e.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Ry.inflateSetDictionary(this.strm,t.dictionary),r!==Ow)))throw new Error($O[r])}Sw.prototype.push=function(e,t){let r=this.strm,o=this.options.chunkSize,n=this.options.dictionary,a,i,s;if(this.ended)return!1;for(t===~~t?i=t:i=t===!0?y4t:h4t,o_e.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(r.avail_out===0&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),a=Ry.inflate(r,i),a===dJ&&n&&(a=Ry.inflateSetDictionary(r,n),a===Ow?a=Ry.inflate(r,i):a===EMe&&(a=dJ));r.avail_in>0&&a===fJ&&r.state.wrap>0&&e[r.next_in]!==0;)Ry.inflateReset(r),a=Ry.inflate(r,i);switch(a){case b4t:case EMe:case dJ:case m4t:return this.onEnd(a),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(r.avail_out===0||a===fJ))if(this.options.to==="string"){let c=gw.utf8border(r.output,r.next_out),l=r.next_out-c,p=gw.buf2string(r.output,c);r.next_out=l,r.avail_out=o-l,l&&r.output.set(r.output.subarray(c,c+l),0),this.onData(p)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(!(a===Ow&&s===0)){if(a===fJ)return a=Ry.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(r.avail_in===0)break}}return!0};Sw.prototype.onData=function(e){this.chunks.push(e)};Sw.prototype.onEnd=function(e){e===Ow&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=oD.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function PJ(e,t){let r=new Sw(t);if(r.push(e),r.err)throw r.msg||$O[r.err];return r.result}function g4t(e,t){return t=t||{},t.raw=!0,PJ(e,t)}var O4t=Sw,M4t=PJ,_4t=g4t,A4t=PJ,S4t=YO,E4t={Inflate:O4t,inflate:M4t,inflateRaw:_4t,ungzip:A4t,constants:S4t},{Deflate:T4t,deflate:v4t,deflateRaw:I4t,gzip:w4t}=xRt,{Inflate:P4t,inflate:z4t,inflateRaw:R4t,ungzip:x4t}=E4t,k4t=T4t,C4t=v4t,N4t=I4t,D4t=w4t,L4t=P4t,q4t=z4t,B4t=R4t,U4t=x4t,W4t=YO,a_e={Deflate:k4t,deflate:C4t,deflateRaw:N4t,gzip:D4t,Inflate:L4t,inflate:q4t,inflateRaw:B4t,ungzip:U4t,constants:W4t};var __e=ke(l_e(),1),kJ=ke(CS(),1),A_e=ke(O_e(),1);var RJ=class extends Map{set(t,r,o=3e5){return setTimeout(()=>{this.delete(t)},o),super.set(t,r)}},xJ=(e=30,t=689)=>({API_TYPE:e,API_VERSION:t,uploadCallbacks:new RJ,options:{selfListen:!1,checkUpdate:!0,logging:!0,polyfill:global.fetch},secretKey:null});function uD(e){return!!e.secretKey}var pD=50;var NJ=typeof Bun<"u";function jS(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function DJ(e,t){let r=[];for(let n in t)jS(t,n)&&r.push(n);r.sort();let o="zsecure"+e;for(let n=0;n<r.length;n++)o+=t[r[n]];return qr.default.MD5(o).toString()}function Vm(e,t,r={},o=!0){let n=new URL(t);for(let a in r)jS(r,a)&&n.searchParams.append(a,r[a].toString());return o&&(n.searchParams.has("zpw_ver")||n.searchParams.set("zpw_ver",e.API_VERSION.toString()),n.searchParams.has("zpw_type")||n.searchParams.set("zpw_type",e.API_TYPE.toString())),n.toString()}var Tw=class e{constructor({type:t,imei:r,firstLaunchTime:o}){this.zcid=null,this.enc_ver="v2",this.zcid=null,this.encryptKey=null,this.createZcid(t,r,o),this.zcid_ext=e.randomString(),this.createEncryptKey()}getEncryptKey(){if(!this.encryptKey)throw new ce("getEncryptKey: didn't create encryptKey yet");return this.encryptKey}createZcid(t,r,o){if(!t||!r||!o)throw new ce("createZcid: missing params");let n=`${t},${r},${o}`,a=e.encodeAES("3FC4F0D2AB50057BCE0D90D9187A22B1",n,"hex",!0);this.zcid=a}createEncryptKey(t=0){let r=(o,n)=>{let{even:a}=e.processStr(o),{even:i,odd:s}=e.processStr(n);if(!a||!i||!s)return!1;let c=a.slice(0,8).join("")+i.slice(0,12).join("")+s.reverse().slice(0,12).join("");return this.encryptKey=c,!0};if(!this.zcid||!this.zcid_ext)throw new ce("createEncryptKey: zcid or zcid_ext is null");try{let o=qr.default.MD5(this.zcid_ext).toString().toUpperCase();if(r(o,this.zcid)||!(t<3))return!1;this.createEncryptKey(t+1)}catch{t<3&&this.createEncryptKey(t+1)}return!0}getParams(){return this.zcid?{zcid:this.zcid,zcid_ext:this.zcid_ext,enc_ver:this.enc_ver}:null}static processStr(t){if(!t||typeof t!="string")return{even:null,odd:null};let[r,o]=[...t].reduce((n,a,i)=>(n[i%2].push(a),n),[[],[]]);return{even:r,odd:o}}static randomString(t,r){let o=t||6,n=r&&t&&r>t?r:12,a=Math.floor(Math.random()*(n-o+1))+o;if(a>12){let i="";for(;a>0;)i+=Math.random().toString(16).substr(2,a>12?12:a),a-=12;return i}return Math.random().toString(16).substr(2,a)}static encodeAES(t,r,o,n,a=0){if(!r)return null;try{{let i=o=="hex"?qr.default.enc.Hex:qr.default.enc.Base64,s=qr.default.enc.Utf8.parse(t),c={words:[0,0,0,0],sigBytes:16},l=qr.default.AES.encrypt(r,s,{iv:c,mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).ciphertext.toString(i);return n?l.toUpperCase():l}}catch{return a<3?e.encodeAES(t,r,o,n,a+1):null}}};function S_e(e,t){let r=null;try{return r=K4t(e,t),JSON.parse(r)}catch{return r}}function K4t(e,t){t=decodeURIComponent(t);let r=qr.default.enc.Utf8.parse(e),o={words:[0,0,0,0],sigBytes:16};return qr.default.AES.decrypt({ciphertext:qr.default.enc.Base64.parse(t)},r,{iv:o,mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).toString(qr.default.enc.Utf8)}function M_e(e){return Buffer.from(e,"base64")}function H4t(e){try{return new TextDecoder().decode(e)}catch{return null}}function E_e(e,t,r=0){try{let o=qr.default.enc.Base64.parse(e);return qr.default.AES.encrypt(t,o,{iv:qr.default.enc.Hex.parse("00000000000000000000000000000000"),mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).ciphertext.toString(qr.default.enc.Base64)}catch{return r<3?E_e(e,t,r+1):null}}function T_e(e,t,r=0){try{t=decodeURIComponent(t);let o=qr.default.enc.Base64.parse(e);return qr.default.AES.decrypt({ciphertext:qr.default.enc.Base64.parse(t)},o,{iv:qr.default.enc.Hex.parse("00000000000000000000000000000000"),mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).toString(qr.default.enc.Utf8)}catch{return r<3?T_e(e,t,r+1):null}}function V4t(e){return!e||/Windows/i.test(e)?"Windows":/Macintosh|Mac OS X/i.test(e)?"macOS":/Linux|X11/i.test(e)?"Linux":"Windows"}function $4t(e){if(!e)return"133";let t=e.match(/Chrome\/(\d+)/);return t?t[1]:"133"}function vw(e){return e==="en"?"en-US,en;q=0.9,vi;q=0.8":"vi-VN,vi;q=0.9,en-US;q=0.8,en;q=0.7"}function LJ(e){if(!e||!/Chrome\//i.test(e))return{};let t=V4t(e),r=$4t(e);return{"sec-ch-ua":`"Not=A?Brand";v="99", "Google Chrome";v="${r}", "Chromium";v="${r}"`,"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":`"${t}"`}}async function J4t(e,t="https://chat.zalo.me"){if(!e.cookie)throw new ce("Cookie is not available");if(!e.userAgent)throw new ce("User agent is not available");let r=LJ(e.userAgent);return Object.assign({accept:"*/*","accept-encoding":"gzip, deflate, br, zstd","accept-language":vw(e.language),"content-type":"application/x-www-form-urlencoded",cookie:await e.cookie.getCookieString(t),origin:t,priority:"u=1, i",referer:`${t}/`,"user-agent":e.userAgent,"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":t==="https://id.zalo.me"?"same-origin":"same-site"},r)}async function Zl(e,t,r,o=!1){var n,a;e.cookie||(e.cookie=new kJ.default.CookieJar);let i=new URL(t).origin,s=await J4t(e,i);if(!o)if(r&&r.headers){let y=Object.assign({},s),b=r.headers;for(let[m,O]of Object.entries(b)){let _=m.toLowerCase();for(let M of Object.keys(y))M.toLowerCase()===_&&M!==m&&delete y[M];y[m]=O}r.headers=y}else r=Object.assign(Object.assign({},r||{}),{headers:s});let c=Object.assign(Object.assign({},r??{}),NJ?{proxy:(a=(n=e.options.agent)===null||n===void 0?void 0:n.proxy)===null||a===void 0?void 0:a.href}:{agent:e.options.agent,dispatcher:e.options.agent}),l=await e.options.polyfill(t,c),p=l.headers.get("set-cookie");if(p&&!o){let y=[],b=l.headers;if(typeof b.raw=="function"){let m=b.raw();m&&m["set-cookie"]&&(y=m["set-cookie"])}else typeof b.getSetCookie=="function"?y=b.getSetCookie():y=p.split(/,\s*(?=[a-zA-Z0-9_-]+\s*=)/);for(let m of y){let O=kJ.default.Cookie.parse(m);try{O&&await e.cookie.setCookie(O,O.domain!="zalo.me"?`https://${O.domain}`:i)}catch(_){Hi(e).error(_)}}}let h=l.headers.get("location");if(h){let y=Object.assign({},r);return y.method="GET",o||(y.headers=new Headers(y.headers),y.headers.set("Referer","https://id.zalo.me/")),await Zl(e,h,y)}return l}async function $m(e,t){if(!e.options.imageMetadataGetter)throw new XI;let r=await e.options.imageMetadataGetter(t);if(!r)throw new ce("Failed to get image metadata");return{fileName:t.split("/").pop(),totalSize:r.size,width:r.width,height:r.height}}async function qJ(e){return CJ.default.promises.stat(e).then(t=>t.size)}async function v_e(e,t){if(!e.options.imageMetadataGetter)throw new XI;let r=await e.options.imageMetadataGetter(t);if(!r)throw new ce("Failed to get gif metadata");return{fileName:dD.default.basename(t),totalSize:r.size,width:r.width,height:r.height}}async function Wp(e,t){if(typeof e.data!="string")throw new ce(`Invalid data, expected string but got ${typeof e.data}`);if(typeof e.encrypt!="number")throw new ce(`Invalid encrypt type, expected number but got ${typeof e.encrypt}`);if(e.encrypt<0||e.encrypt>3)throw new ce(`Invalid encrypt type, expected 0-3 but got ${e.encrypt}`);let r=e.data,o=e.encrypt;if(o===0)return JSON.parse(r);let n=M_e(o===1?r:decodeURIComponent(r)),a=n;if(o!==1)if(t&&n.length>=48){let c={name:"AES-GCM",iv:n.subarray(0,16),tagLength:128,additionalData:n.subarray(16,32)},l=n.subarray(32),p=await Ew.default.subtle.importKey("raw",M_e(t),c,!1,["decrypt"]);a=await Ew.default.subtle.decrypt(c,p,l)}else throw new ce("Invalid data length or missing cipher key");let i=o===3?new Uint8Array(a):a_e.inflate(a),s=H4t(i);if(s)return A_e.default.parse(s)}async function hD(e,t){let r=typeof e=="string"?await CJ.default.promises.readFile(e):e.data;return new Promise(o=>{let n=0,a=2097152,i=Math.ceil(t/a),s=new __e.default.ArrayBuffer;function c(){let l=n*a,p=l+a>=t?t:l+a;s.append(new Uint8Array(r.subarray(l,p)).buffer),n++,n<i?c():o({currentChunk:n,data:s.end()})}c()})}var Hi=e=>({verbose:(...t)=>{e.options.logging&&console.log("\x1B[35m\u{1F680} VERBOSE\x1B[0m",...t)},info:(...t)=>{e.options.logging&&console.log("\x1B[34mINFO\x1B[0m",...t)},warn:(...t)=>{e.options.logging&&console.log("\x1B[33mWARN\x1B[0m",...t)},error:(...t)=>{e.options.logging&&console.log("\x1B[31mERROR\x1B[0m",...t)},success:(...t)=>{e.options.logging&&console.log("\x1B[32mSUCCESS\x1B[0m",...t)},timestamp:(...t)=>{let r=new Date().toISOString();e.options.logging&&console.log(`\x1B[90m[${r}]\x1B[0m`,...t)}});function I_e(e){return e==="webchat"?1:e==="chat.voice"?31:e==="chat.photo"?32:e==="chat.sticker"?36:e==="chat.doodle"?37:e==="chat.recommended"||e==="chat.link"?38:e==="chat.video.msg"?44:e==="share.file"?46:e==="chat.gif"?49:e==="chat.location.new"?43:1}function fD(e,t,r){let o=(e=""+e).length;return o===r?e:o>r?e.slice(-r):t.repeat(r-o)+e}function w_e(e,t=Date.now()){let r=new Date(t),o={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},n=new Intl.DateTimeFormat("vi-VN",o).format(r);return e.includes("%H")||e.includes("%d")?e.replace("%H",r.getHours().toString().padStart(2,"0")).replace("%M",r.getMinutes().toString().padStart(2,"0")).replace("%S",r.getSeconds().toString().padStart(2,"0")).replace("%d",r.getDate().toString().padStart(2,"0")).replace("%m",(r.getMonth()+1).toString().padStart(2,"0")).replace("%Y",r.getFullYear().toString()):n}function P_e(e){let t=new Date(e);return fD(t.getHours(),"0",2)+":"+fD(t.getMinutes(),"0",2)+" "+fD(t.getDate(),"0",2)+"/"+fD(t.getMonth()+1,"0",2)+"/"+t.getFullYear()}function xy(e){return dD.default.extname(e).slice(1)}function Iw(e){return dD.default.basename(e)}function ky(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function z_e(e){return e=="join_request"?Gi.JOIN_REQUEST:e=="join"?Gi.JOIN:e=="leave"?Gi.LEAVE:e=="remove_member"?Gi.REMOVE_MEMBER:e=="block_member"?Gi.BLOCK_MEMBER:e=="update_setting"?Gi.UPDATE_SETTING:e=="update_avatar"?Gi.UPDATE_AVATAR:e=="update"?Gi.UPDATE:e=="new_link"?Gi.NEW_LINK:e=="add_admin"?Gi.ADD_ADMIN:e=="remove_admin"?Gi.REMOVE_ADMIN:e=="new_pin_topic"?Gi.NEW_PIN_TOPIC:e=="update_pin_topic"?Gi.UPDATE_PIN_TOPIC:e=="update_topic"?Gi.UPDATE_TOPIC:e=="update_board"?Gi.UPDATE_BOARD:e=="remove_board"?Gi.REMOVE_BOARD:e=="reorder_pin_topic"?Gi.REORDER_PIN_TOPIC:e=="unpin_topic"?Gi.UNPIN_TOPIC:e=="remove_topic"?Gi.REMOVE_TOPIC:e=="accept_remind"?Gi.ACCEPT_REMIND:e=="reject_remind"?Gi.REJECT_REMIND:e=="remind_topic"?Gi.REMIND_TOPIC:Gi.UNKNOWN}function R_e(e){return e=="add"?Er.ADD:e=="remove"?Er.REMOVE:e=="block"?Er.BLOCK:e=="unblock"?Er.UNBLOCK:e=="block_call"?Er.BLOCK_CALL:e=="unblock_call"?Er.UNBLOCK_CALL:e=="req_v2"?Er.REQUEST:e=="reject"?Er.REJECT_REQUEST:e=="undo_req"?Er.UNDO_REQUEST:e=="seen_fr_req"?Er.SEEN_FRIEND_REQUEST:e=="pin_unpin"?Er.PIN_UNPIN:e=="pin_create"?Er.PIN_CREATE:Er.UNKNOWN}async function X4t(e,t,r=!0){let o={data:null,error:null};if(!t.ok)return o.error={message:"Request failed with status code "+t.status},o;try{let n=await t.json();if(n.error_code!=0)return o.error={message:n.error_message,code:n.error_code},o;let a=r?JSON.parse(T_e(e.secretKey,n.data)):n;if(a.error_code!=0)return o.error={message:a.error_message,code:a.error_code},o;o.data=a.data}catch(n){Hi(e).error("Failed to parse response data:",n),o.error={message:"Failed to parse response data"}}return o}async function Jm(e,t,r,o){let n=await X4t(e,t,o);if(n.error)throw new ce(n.error.message,n.error.code);return r?r(n):n.data}function Ie(){return e=>(t,r)=>{if(!uD(t))throw new ce("Invalid context "+JSON.stringify(t,null,2));let o={makeURL(n,a,i){return Vm(t,n,a,i)},encodeAES(n,a){return E_e(t.secretKey,n,a)},request(n,a,i){return Zl(t,n,a,i)},logger:Hi(t),resolve:(n,a,i)=>Jm(t,n,a,i)};return e(r,t,o)}}function x_e(e){return Ew.default.randomUUID()+"-"+qr.default.MD5(e).toString()}function k_e(e){return Ew.default.createHash("md5").update(e).digest("hex")}function Xm(e,t){return Object.assign(Object.assign({"accept-language":vw(e.language)},LJ(e.userAgent)),t)}var dd;(function(e){e[e.QRCodeGenerated=0]="QRCodeGenerated",e[e.QRCodeExpired=1]="QRCodeExpired",e[e.QRCodeScanned=2]="QRCodeScanned",e[e.QRCodeDeclined=3]="QRCodeDeclined",e[e.GotLoginInfo=4]="GotLoginInfo"})(dd||(dd={}));async function Y4t(e){let r=await(await Zl(e,"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F",{headers:Object.assign({accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","cache-control":"max-age=0",priority:"u=0, i"},Xm(e,{"sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"same-site","sec-fetch-user":"?1","upgrade-insecure-requests":"1",Referer:"https://chat.zalo.me/","Referrer-Policy":"strict-origin-when-cross-origin"})),method:"GET"})).text(),o=/https:\/\/stc-zlogin\.zdn\.vn\/main-([\d.]+)\.js/,n=r.match(o);return n?.[1]}async function Q4t(e,t){let r=new URLSearchParams;return r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/logininfo",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function Z4t(e,t){let r=new URLSearchParams;return r.append("type","device"),r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/verify-client",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function ext(e,t){let r=new URLSearchParams;return r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/authen/qr/generate",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function C_e(e,t){await(0,D_e.writeFile)(e,t,"base64")}async function L_e(e,t,r,o){let n=new URLSearchParams;return n.append("code",r),n.append("continue","https://chat.zalo.me/"),n.append("v",t),await Zl(e,"https://id.zalo.me/account/authen/qr/waiting-scan",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),body:n,method:"POST",signal:o}).then(a=>a.json()).then(a=>a.error_code==8?L_e(e,t,r,o):a).catch(a=>{o.aborted||Hi(e).error(a)})}async function q_e(e,t,r,o){let n=new URLSearchParams;return n.append("code",r),n.append("gToken",""),n.append("gAction","CONFIRM_QR"),n.append("continue","https://chat.zalo.me/"),n.append("v",t),Hi(e).info("Please confirm on your phone"),await Zl(e,"https://id.zalo.me/account/authen/qr/waiting-confirm",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),body:n,method:"POST",signal:o}).then(a=>a.json()).then(a=>a.error_code==8?q_e(e,t,r,o):a).catch(a=>{o.aborted||Hi(e).error(a)})}async function txt(e){return await Zl(e,"https://id.zalo.me/account/checksession?continue=https%3A%2F%2Fchat.zalo.me%2Findex.html",{headers:Object.assign({accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",priority:"u=0, i"},Xm(e,{"sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"same-origin","upgrade-insecure-requests":"1",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),redirect:"manual",method:"GET"}).catch(Hi(e).error)}async function nxt(e){return await Zl(e,"https://jr.chat.zalo.me/jr/userinfo",{headers:Object.assign({accept:"*/*",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-site",Referer:"https://chat.zalo.me/","Referrer-Policy":"strict-origin-when-cross-origin"})),method:"GET"}).then(t=>t.json()).catch(Hi(e).error)}async function BJ(e,t,r){return e.cookie=new N_e.CookieJar,e.userAgent=t.userAgent,new Promise(async(o,n)=>{var a;let i=new AbortController,s=null;function c(){i.abort(),s&&(clearTimeout(s),s=null)}try{let l=function(){return c(),o(BJ(e,t,r))},p=function(){return c(),n(new K6)};e.options.logging&&console.log();let h=await Y4t(e);if(!h)throw new ce("Cannot get API login version");Hi(e).info("Got login version:",h),await Q4t(e,h),await Z4t(e,h);let y=await ext(e,h);if(!y||!y.data)throw new ce(`Unable to generate QRCode
|
|
227
|
+
`),H=q9n.bind(null,{[dSt]:"",[hSt]:i,[bSt]:K,[ySt]:lme,[ume]:N,[mSt]:W}),ee="";h!==null&&(y===void 0?ee=H(h):ee=H(Object.assign({},h,{name:y})));let Ae=s instanceof Function?s:s?SSt:oGn,ue=Ae().indexOf(":")+1;if(S&&!m)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(_&&typeof _!="function")throw Error(`Unknown mixin type "${typeof _}" - expected "function"`);if(R&&typeof R!="string")throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`);x9n(b,m,S);let se=_St(m,S);typeof o.emit=="function"&&o.emit("message",{code:"PINO_CONFIG",config:{levels:se,messageKey:c,errorKey:l}}),N9n(O);let de=C9n(O);return Object.assign(t,{levels:se,[Z9n]:de,[eGn]:S,[K9n]:o,[j9n]:Ae,[G9n]:ue,[ySt]:lme,[ume]:N,[bSt]:K,[V9n]:q,[$9n]:U,[J9n]:c,[X9n]:l,[Y9n]:p,[nGn]:p?`,${JSON.stringify(p)}:{`:"",[hSt]:i,[Q9n]:_,[iGn]:M,[dSt]:ee,[mSt]:W,[tGn]:T,silent:U9n,onChild:C,[rGn]:R}),Object.setPrototypeOf(t,z9n()),k9n(t),t[H9n](b),t}dp.exports=pme;dp.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=fSt(e.dest||process.stdout.fd),pSt(e)):pSt({dest:fSt(e),minLength:0});dp.exports.transport=Ybe();dp.exports.multistream=uSt();dp.exports.levels=_St();dp.exports.stdSerializers=pGn;dp.exports.stdTimeFunctions=Object.assign({},OSt);dp.exports.symbols=MSt;dp.exports.version=W9n;dp.exports.default=pme;dp.exports.pino=pme});function QH(e,t){let r=e.key,o=e.message,n=r.remoteJid||"",a="";r.fromMe?a=t:a=r.participant||r.remoteJid||"";let i="",s="text",c="";o?o.conversation?(i=o.conversation,s="text"):o.extendedTextMessage?(i=o.extendedTextMessage.text||"",s="text"):o.imageMessage?(i=o.imageMessage.caption||"",s="image",c=o.imageMessage.url||""):o.videoMessage?(i=o.videoMessage.caption||"",s="video",c=o.videoMessage.url||""):o.audioMessage?(s="audio",c=o.audioMessage.url||""):o.documentMessage?(i=o.documentMessage.title||o.documentMessage.fileName||"",s="file",c=o.documentMessage.url||""):o.stickerMessage?(s="sticker",c=o.stickerMessage.url||""):o.protocolMessage||o.senderKeyDistributionMessage?(s="system",i="System message"):(s="other",i="[Tin nh\u1EAFn kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3]"):(s="other",i="");let l={rawMsg:fGn(e)};if(e.pushName&&(l.pushName=e.pushName),o?.extendedTextMessage?.contextInfo?.quotedMessage){let h=o.extendedTextMessage.contextInfo;l.quotedMessage={participant:h.participant,stanzaId:h.stanzaId,text:h.quotedMessage?.conversation||h.quotedMessage?.extendedTextMessage?.text||""}}let p=e.messageTimestamp?Number(e.messageTimestamp)*1e3:Date.now();return{id:r.id||"",conversationId:n,senderId:a,senderName:e.pushName||void 0,text:i,type:s,mediaUrl:c,timestamp:p,platform:"whatsapp",isFromMe:!!r.fromMe,metadata:l}}function fGn(e){if(!e||typeof e!="object")return e;let t={};if(e.key&&(t.key={remoteJid:e.key.remoteJid,fromMe:e.key.fromMe,id:e.key.id,participant:e.key.participant}),e.pushName&&(t.pushName=e.pushName),e.messageTimestamp&&(t.messageTimestamp=e.messageTimestamp),e.status&&(t.status=e.status),e.message){let r=e.message;t.message={},r.conversation&&(t.message.conversation=r.conversation),r.extendedTextMessage&&(t.message.extendedTextMessage={text:r.extendedTextMessage.text},r.extendedTextMessage.contextInfo&&(t.message.extendedTextMessage.contextInfo={stanzaId:r.extendedTextMessage.contextInfo.stanzaId,participant:r.extendedTextMessage.contextInfo.participant})),r.imageMessage&&(t.message.imageMessage={caption:r.imageMessage.caption,mimetype:r.imageMessage.mimetype}),r.videoMessage&&(t.message.videoMessage={caption:r.videoMessage.caption,mimetype:r.videoMessage.mimetype}),r.audioMessage&&(t.message.audioMessage={mimetype:r.audioMessage.mimetype,seconds:r.audioMessage.seconds}),r.documentMessage&&(t.message.documentMessage={title:r.documentMessage.title,fileName:r.documentMessage.fileName,mimetype:r.documentMessage.mimetype}),r.stickerMessage&&(t.message.stickerMessage={mimetype:r.stickerMessage.mimetype})}return t}var TSt=me(()=>{"use strict"});function a6(e,t){let r=String(e.id||e.jid||""),o=String(e.name||e.verifiedName||e.notify||"WhatsApp User"),n=String(e.imgUrl||e.avatar||"");return{id:r,name:o,avatarUrl:n||void 0,platform:"whatsapp",phoneNumber:t||e.phoneNumber||void 0,rawContact:e}}function vSt(e){let t=String(e.id||e.jid||""),r=String(e.name||e.displayName||"WhatsApp Chat"),o=String(e.imgUrl||e.avatar||""),n="direct";return(t.endsWith("@g.us")||e.isGroup)&&(n="group"),{id:t,name:r,avatarUrl:o||void 0,type:n,unreadCount:Number(e.unreadCount||0),platform:"whatsapp",rawConversation:e}}var ISt=me(()=>{"use strict"});var xSt={};er(xSt,{WhatsAppAdapter:()=>fme});var wSt,PSt,zSt,RSt,fme,kSt=me(()=>{"use strict";dAt();wSt=ke(ESt()),PSt=ke(hL()),zSt=ke(bL()),RSt=ke(ML());sP();TSt();ISt();fme=class{accountId;platform="whatsapp";eventBus=new vd;status="disconnected";socket=null;session=null;isReconnecting=!1;chatsMap=new Map;contactsMap=new Map;constructor(t){this.accountId=t}async initialize(t){this.session=t,this.status="connecting",this.eventBus.emit("session:status_changed","connecting");let r=t.authData.sessionPath||`./sessions/whatsapp_${this.accountId}`;try{let{state:o,saveCreds:n}=await J2t(r),a=(0,wSt.default)({level:"silent"}),i=[2,3e3,1023223821];try{let c=await Eft();c&&c.version&&(i=c.version)}catch{}let s={version:i,auth:o,logger:a,printQRInTerminal:!1,defaultQueryTimeoutMs:3e4,connectTimeoutMs:3e4};if(t.proxy){let c=this.createProxyAgent(t.proxy);c&&(s.agent=c)}this.socket=fAt(s),this.socket.ev.on("creds.update",n),this.setupListeners()}catch(o){throw this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected",o.message||String(o)),o}}async disconnect(){if(this.isReconnecting=!1,this.socket){try{this.socket.end(void 0)}catch{}this.socket=null}this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected")}async sendMessage(t,r){if(!this.socket)throw new Error("WhatsApp adapter not initialized");await this.sendTyping(t,!0);let o=Math.floor(Math.random()*2e3)+1500;await new Promise(i=>setTimeout(i,o)),await this.sendTyping(t,!1);let n={};if(r.type==="text")n={text:r.text};else if(r.type==="image")n={image:{url:r.url||r.filePath},caption:r.caption||""};else if(r.type==="sticker")n={sticker:{url:r.url||r.filePath||r.stickerId}};else if(r.type==="file")n={document:{url:r.url||r.filePath},fileName:r.filename||"file"};else throw new Error(`Unsupported message payload type: ${r.type}`);r.quoteId&&(n.contextInfo={stanzaId:r.quoteId,participant:t.endsWith("@g.us")?void 0:t,quotedMessage:{conversation:"[Tr\xEDch d\u1EABn tin nh\u1EAFn]"}});let a=await this.socket.sendMessage(t,n);if(!a)throw new Error("Failed to send WhatsApp message");return QH(a,this.accountId)}async getConversations(t=20){let r=Array.from(this.chatsMap.values());return r.sort((o,n)=>Number(n.conversationTimestamp||0)-Number(o.conversationTimestamp||0)),r.slice(0,t).map(vSt)}async getMessageHistory(t,r=50,o){return[]}async getCurrentUser(){if(!this.socket)return null;let t=this.socket.authState?.creds?.me||this.socket.user;if(!t)return null;let r=t.id;r.includes(":")&&(r=r.split(":")[0]+"@s.whatsapp.net");let o=t.name||this.socket.user?.name||"WhatsApp User",n="";try{n=await this.socket.profilePictureUrl(r,"image")||""}catch{}return a6({id:r,name:o,imgUrl:n},this.accountId)}async getContactInfo(t){if(this.contactsMap.has(t))return a6(this.contactsMap.get(t));if(!this.socket)throw new Error("WhatsApp adapter not initialized");try{let r=await this.socket.profilePictureUrl(t,"image");return a6({id:t,name:"WhatsApp User",imgUrl:r})}catch{return a6({id:t,name:"WhatsApp User"})}}async markAsRead(t){if(this.socket)try{await this.socket.sendPresenceUpdate("paused",t)}catch{}}async sendTyping(t,r){if(this.socket)try{await this.socket.sendPresenceUpdate(r?"composing":"paused",t)}catch{}}getUnderlyingClient(){return this.socket}setupListeners(){this.socket&&(this.socket.ev.on("connection.update",t=>{let{connection:r,lastDisconnect:o,qr:n}=t;n&&this.eventBus.emit("auth:qr_received",n),r==="connecting"&&(this.status="connecting",this.eventBus.emit("session:status_changed","connecting")),r==="open"&&(this.status="connected",this.eventBus.emit("session:status_changed","connected")),r==="close"&&(o?.error?.output?.statusCode!==ba.loggedOut&&this.session?(this.isReconnecting=!0,this.initialize(this.session)):(this.status="disconnected",this.eventBus.emit("session:status_changed","disconnected","Session logged out or expired")))}),this.socket.ev.on("messages.upsert",t=>{if(t.type==="notify"){for(let r of t.messages)if(r.message)try{let o=QH(r,this.accountId);this.eventBus.emit("message:received",o)}catch{}}}),this.socket.ev.on("presence.update",t=>{try{let r=t.id,o=Object.keys(t.presences);if(o.length>0){let n=o[0],a=t.presences[n];a&&this.eventBus.emit("chat:typing",{conversationId:r,senderId:n,isTyping:a.lastKnownPresence==="composing"})}}catch{}}),this.socket.ev.on("messaging-history.set",t=>{let{chats:r,contacts:o,messages:n}=t;if(r)for(let a of r)a.id&&this.chatsMap.set(a.id,a);if(o)for(let a of o)a.id&&this.contactsMap.set(a.id,a);if(n){for(let a of n)if(a.message)try{let i=QH(a,this.accountId);this.eventBus.emit("message:received",i)}catch{}}}),this.socket.ev.on("chats.upsert",t=>{for(let r of t)r.id&&this.chatsMap.set(r.id,r)}),this.socket.ev.on("chats.update",t=>{for(let r of t)if(r.id&&this.chatsMap.has(r.id)){let o=this.chatsMap.get(r.id);this.chatsMap.set(r.id,{...o,...r})}}),this.socket.ev.on("contacts.upsert",t=>{for(let r of t)r.id&&this.contactsMap.set(r.id,r)}),this.socket.ev.on("contacts.update",t=>{for(let r of t)if(r.id&&this.contactsMap.has(r.id)){let o=this.contactsMap.get(r.id);this.contactsMap.set(r.id,{...o,...r})}}))}createProxyAgent(t){try{return t.startsWith("socks")?new PSt.SocksProxyAgent(t):t.startsWith("https")?new RSt.HttpsProxyAgent(t):new zSt.HttpProxyAgent(t)}catch{return}}}});var ql=ke(require("fs")),dI=ke(require("path")),Xh=ke(require("os")),dc=require("child_process");var Ty=ke(require("os")),qm=ke(require("fs")),$I=ke(require("path")),Nge=ke(require("crypto"));function ewt(){return"1.0.24"}var Lp=ewt();function D6(){return{totalMemMb:Math.round(Ty.default.totalmem()/(1024*1024)),freeMemMb:Math.round(Ty.default.freemem()/(1024*1024)),cpuCount:Ty.default.cpus()?.length||1,platform:Ty.default.platform()}}function twt(e){try{let t=$I.default.join(Ty.default.homedir(),".zplus");qm.default.existsSync(t)||qm.default.mkdirSync(t,{recursive:!0});let r=e?`_slot_${e.replace(/[^a-zA-Z0-9_-]/g,"")}`:"",o=$I.default.join(t,`worker_identity${r}.json`);if(qm.default.existsSync(o)){let h=JSON.parse(qm.default.readFileSync(o,"utf-8"));if(h&&h.workerId)return{workerId:h.workerId,workerName:h.workerName||h.workerId}}let a=(Ty.default.hostname()||"node").replace(/[^a-zA-Z0-9_-]/g,"_").toLowerCase().slice(0,14),i=Nge.default.randomBytes(2).toString("hex"),s=`worker_${a}${r}_${i}`,c=e?` #${e}`:"",l=`Worker ${a.toUpperCase()}${c}`,p={workerId:s,workerName:l,slot:e||"default",createdAt:new Date().toISOString()};return qm.default.writeFileSync(o,JSON.stringify(p,null,2),"utf-8"),p}catch{let t=e?`_slot_${e}`:"",r=`worker_${Ty.default.hostname().replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,14)||"node"}${t}`;return{workerId:r,workerName:r}}}var N6=class{static loadFromEnv(t=process.argv.slice(2)){let r=N=>{for(let W of t){if(W.startsWith(`--${N}=`))return W.split("=").slice(1).join("=");if(W===`--${N}`&&t[t.indexOf(W)+1])return t[t.indexOf(W)+1]}},o=r("cloud-provider")||process.env.CLOUD_PROVIDER||"appwrite",n=r("token")||process.env.CLOUD_AUTH_TOKEN||process.env.APPWRITE_SESSION_TOKEN||process.env.WORKER_TOKEN||process.env.SESSION_TOKEN,a=r("jwt")||process.env.CLOUD_JWT||process.env.APPWRITE_JWT||process.env.JWT,i=r("api-key")||process.env.CLOUD_API_KEY||process.env.APPWRITE_API_KEY,s=r("secret")||process.env.DESKTOP_SECRET,c=r("team-id")||process.env.TEAM_ID||"default",l=t.includes("--enable-http")||r("enable-http")==="true"||process.env.ENABLE_HTTP==="true"||!1,p=r("port")||process.env.PORT,h=p?Number(p):l?8080:void 0,y=r("endpoint")||process.env.CLOUD_ENDPOINT||process.env.CLOUD_API_ENDPOINT||process.env.APPWRITE_ENDPOINT||process.env.VITE_APPWRITE_ENDPOINT||"https://api.softty.net/v1",b=r("project-id")||process.env.CLOUD_PROJECT_ID||process.env.CLOUD_TENANT_ID||process.env.APPWRITE_PROJECT_ID||process.env.VITE_APPWRITE_PROJECT_ID||"699cfc3100136099c1c1",m=r("database-id")||process.env.CLOUD_DATABASE_ID||process.env.APPWRITE_DATABASE_ID||process.env.VITE_APPWRITE_DATABASE_ID||"zplus_app",O=r("storage-bucket-id")||process.env.STORAGE_BUCKET_ID||process.env.APPWRITE_STORAGE_BUCKET_ID||process.env.VITE_APPWRITE_STORAGE_BUCKET_ID||"zplus-media-vault",_=Math.max(1,Math.round(Ty.default.totalmem()/(1024*1024*1024))),M=Math.min(200,Math.max(20,_*25)),S=r("max-capacity")||process.env.MAX_CAPACITY,v=Number(S||M),T=r("slot")||process.env.WORKER_SLOT||process.env.pm_id||process.env.NODE_APP_INSTANCE,w=twt(T),P=r("worker-id")||process.env.WORKER_ID||w.workerId,C=r("worker-name")||process.env.WORKER_NAME||process.env.HOSTNAME||w.workerName,R=r("user-id")||process.env.USER_ID||process.env.SOFTTY_USER_ID;return{workerId:P,version:Lp,enableHttp:l,port:h,userId:R,teamId:c,workerName:C,maxCapacity:v,recommendedCapacity:M,clusterPollIntervalMs:Number(r("poll-interval")||process.env.CLUSTER_POLL_INTERVAL_MS||5e3),cloudProvider:o,cloudEndpoint:y,cloudProjectId:b,cloudSessionToken:n,cloudJwt:a,cloudApiKey:i,cloudDatabaseId:m,appwriteEndpoint:y,appwriteProjectId:b,appwriteSessionToken:n,appwriteJwt:a,appwriteApiKey:i,storageBucketId:O,desktopSecret:s,databaseId:m,heartbeatIntervalMs:Number(r("heartbeat-interval")||process.env.HEARTBEAT_INTERVAL_MS||3e4),geminiApiKey:r("gemini-api-key")||process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY,openaiApiKey:r("openai-api-key")||process.env.OPENAI_API_KEY,deepseekApiKey:r("deepseek-api-key")||process.env.DEEPSEEK_API_KEY,anthropicApiKey:r("anthropic-api-key")||process.env.ANTHROPIC_API_KEY,customAiApiKey:r("custom-ai-api-key")||process.env.CUSTOM_AI_API_KEY,aiBaseUrl:r("ai-base-url")||process.env.AI_BASE_URL,aiProvider:r("ai-provider")||process.env.AI_PROVIDER,aiModel:r("ai-model")||process.env.AI_MODEL,nightSystemPrompt:r("night-system-prompt")||process.env.NIGHT_SYSTEM_PROMPT,nightFallbackReply:r("night-fallback-reply")||process.env.NIGHT_FALLBACK_REPLY,logLevel:r("log-level")||process.env.LOG_LEVEL||"info"}}};var fI=ke(require("fs")),dme=ke(require("os")),FA=ke(require("path")),VSt=ke(require("crypto")),$St=ke(co());var Gge=ke(co()),U6=class{runners=new Map;logger;constructor(t){this.logger=t||(0,Gge.createLogger)("ChannelRunnerRegistry")}register(t){let r=`${t.platform}:${t.accountId}`;this.runners.has(r)&&this.logger.warn(`Overwriting existing runner for ${r}`),this.runners.set(r,t),this.logger.info(`Registered runner for ${r}`)}unregister(t,r){let o=`${t}:${r}`,n=this.runners.get(o);return n?(n.stop().catch(a=>{this.logger.error(`Error stopping runner ${o} during unregister`,a)}),this.runners.delete(o),this.logger.info(`Unregistered runner for ${o}`),!0):!1}get(t,r){return this.runners.get(`${t}:${r}`)}getAll(){return Array.from(this.runners.values())}getCount(){return this.runners.size}async startAll(){this.logger.info(`Starting all ${this.runners.size} registered channel runners...`);for(let[t,r]of this.runners.entries())try{await r.start()}catch(o){this.logger.error(`Failed to start runner ${t}:`,o)}}async stopAll(){this.logger.info(`Stopping all ${this.runners.size} channel runners...`);for(let[t,r]of this.runners.entries())try{await r.stop()}catch(o){this.logger.error(`Failed to stop runner ${t}:`,o)}this.runners.clear()}};var Kge=ke(co()),W6=class{constructor(t=6e4,r,o){this.defaultTtlMs=t;this.logger=r||(0,Kge.createLogger)("DistributedLockManager"),this.storageProvider=o}logger;locks=new Map;preemptCallbacks=[];storageProvider;setStorageProvider(t){this.storageProvider=t}getStorageProvider(){return this.storageProvider}onPreempt(t){this.preemptCallbacks.push(t)}async acquireLockRemote(t,r,o=this.defaultTtlMs){return this.storageProvider&&!await this.storageProvider.acquireLock(t,r,o)?!1:this.acquireLock(t,r,o)}async releaseLockRemote(t,r){return this.storageProvider&&await this.storageProvider.releaseLock(t,r),this.releaseLock(t,r)}async renewLockRemote(t,r,o=this.defaultTtlMs){return this.storageProvider&&await this.storageProvider.renewLock(t,r,o),this.acquireLock(t,r,o)}acquireLock(t,r,o=this.defaultTtlMs){let n=Date.now(),a=this.locks.get(t);return a&&a.expiresAt>n&&a.ownerId!==r?(this.logger.warn(`Lock denied for account ${t}: currently held by ${a.ownerId} (expires in ${a.expiresAt-n}ms)`),!1):(this.locks.set(t,{accountId:t,ownerId:r,acquiredAt:n,expiresAt:n+o}),this.logger.info(`\u2705 Lock granted: account=${t}, owner=${r}, ttl=${o}ms`),!0)}async preemptLock(t,r){let o=this.locks.get(t);this.logger.info(`\u26A1 Preemption triggered for account ${t} by master ${r} (previous owner: ${o?.ownerId||"none"})`);let n=this.preemptCallbacks.map(i=>{try{return Promise.resolve(i(t,r))}catch(s){return this.logger.error(`Error in preempt callback for ${t}:`,s),Promise.resolve()}});await Promise.race([Promise.all(n),new Promise(i=>setTimeout(i,1e3))]);let a=Date.now();return this.locks.set(t,{accountId:t,ownerId:r,acquiredAt:a,expiresAt:a+this.defaultTtlMs}),this.logger.info(`\u2705 Account ${t} preempted successfully by ${r}.`),!0}releaseLock(t,r){let o=this.locks.get(t);return o?r&&o.ownerId!==r?(this.logger.warn(`Attempted unauthorized lock release for ${t} by ${r} (real owner: ${o.ownerId})`),!1):(this.locks.delete(t),this.logger.info(`\u{1F513} Lock released for account ${t}.`),!0):!0}releaseAllForOwner(t){let r=0;for(let[o,n]of this.locks.entries())n.ownerId===t&&(this.locks.delete(o),r++);return r}isLocked(t){let r=this.locks.get(t);return r?r.expiresAt>Date.now():!1}getLockOwner(t){let r=this.locks.get(t);return!r||r.expiresAt<=Date.now()?null:r.ownerId}};var zS=ke(require("fs")),Hge=ke(require("path")),Vge=ke(co()),F6=class{logger;queue=[];maxCapacity;persistenceFilePath;constructor(t=1e4,r,o){this.maxCapacity=t,this.logger=r||(0,Vge.createLogger)("CloudPendingMessageQueue"),this.persistenceFilePath=o,this.loadFromDisk()}loadFromDisk(){if(this.persistenceFilePath)try{if(zS.default.existsSync(this.persistenceFilePath)){let t=zS.default.readFileSync(this.persistenceFilePath,"utf8");if(t&&t.trim()){let r=JSON.parse(t);Array.isArray(r)&&(this.queue.push(...r),this.logger.info(`\u{1F4E6} Restored ${r.length} pending delta messages from disk: ${this.persistenceFilePath}`))}}}catch(t){this.logger.warn(`Failed to restore pending messages from disk (${this.persistenceFilePath}): ${t?.message}`)}}saveToDisk(){if(this.persistenceFilePath)try{let t=Hge.default.dirname(this.persistenceFilePath);zS.default.existsSync(t)||zS.default.mkdirSync(t,{recursive:!0}),zS.default.writeFileSync(this.persistenceFilePath,JSON.stringify(this.queue),"utf8")}catch(t){this.logger.warn(`Failed to save pending messages to disk (${this.persistenceFilePath}): ${t?.message}`)}}enqueue(t){if(this.queue.length>=this.maxCapacity){let r=this.queue.shift();this.logger.warn(`Queue capacity reached (${this.maxCapacity}). Dropped oldest message: ${r?.id}`)}this.queue.push(t),this.saveToDisk(),this.logger.debug(`Enqueued pending message ${t.id} for account ${t.accountId} (Total pending: ${this.queue.length})`)}getDeltas(t,r=0){return this.queue.filter(o=>{let n=!t||o.accountId===t,a=o.timestamp>=r;return n&&a})}purgeSynced(t,r){let o=this.queue.length,n=[];for(let i=0;i<this.queue.length;i++){let s=this.queue[i];s.timestamp<=t&&(!r||s.accountId===r)&&n.push(i)}for(let i=n.length-1;i>=0;i--)this.queue.splice(n[i],1);let a=o-this.queue.length;return a>0&&(this.saveToDisk(),this.logger.info(`Purged ${a} synced delta messages from queue.`)),a}getCount(){return this.queue.length}clear(){this.queue.length=0,this.saveToDisk()}};var $ge=ke(co()),j6=class{logger;campaigns=new Map;rules=new Map;threadHistory=new Map;lastReplyTimes=new Map;aiConfig={enabled:!1};constructor(t,r){this.logger=t||(0,$ge.createLogger)("HeadlessAutomationEngine"),r&&this.configure(r)}configure(t){this.aiConfig={...this.aiConfig,...t},this.logger.info(`[HeadlessAutomation] Configured AI provider: ${this.aiConfig.provider||"none"} (model: ${this.aiConfig.model||"none"}, enabled: ${this.aiConfig.enabled===!0})`)}getAiConfig(){return{...this.aiConfig}}registerCampaign(t){this.campaigns.set(t.id,t),this.logger.info(`Loaded campaign ${t.id} (${t.name})`)}registerRule(t){this.rules.set(t.id,t),this.logger.info(`Loaded automation rule ${t.id} (${t.name})`)}async evaluateIncomingMessage(t){if(t.isSelf||t.senderType&&t.senderType!=="customer"||!t.content||typeof t.content!="string"||!t.content.trim())return null;let r=t.threadId||t.conversationId||t.senderId,o=Date.now(),n=this.lastReplyTimes.get(r)||0;if(o-n<3e3)return this.logger.debug(`[HeadlessAutomation] Rate limit hit for thread ${r}. Skipping reply.`),null;let a=t.content.trim(),i=this.getThreadHistory(r);if(i.push({role:"user",content:a,timestamp:o}),i.length>6&&i.splice(0,i.length-6),!this.aiConfig||this.aiConfig.enabled!==!0||!this.aiConfig.provider)return this.logger.debug(`[HeadlessAutomation] Bot AI is disabled or unconfigured. Message saved, no auto-reply sent for thread ${r}.`),null;let s=t.accountId,c=this.aiConfig.accountBotConfigs,l=s&&c?c[s]:void 0;if(!l||!l.isBotEnabled)return this.logger.debug(`[HeadlessAutomation] Account [${s||"unknown"}] has not been configured or enabled for Bot AI by user in Chatbot settings. Message saved, no auto-reply sent.`),null;let p=t,h=!!p.isGroup||!!p.groupId||typeof t.threadId=="string"&&t.threadId.startsWith("g")||typeof t.conversationId=="string"&&t.conversationId.startsWith("g"),y=l.replyTarget||"all";if(y==="individual"&&h)return this.logger.debug(`[HeadlessAutomation] Account [${s}] configured for individual chat only. Skipping group message ${r}.`),null;if(y==="group"&&!h)return this.logger.debug(`[HeadlessAutomation] Account [${s}] configured for group chat only. Skipping direct message ${r}.`),null;let b=l.scheduleType||"always";if(b!=="always"){let w=new Date().getHours(),P=l.scheduleStartHour??8,C=l.scheduleEndHour??18;if(b==="working_hours"){if(w<P||w>=C)return this.logger.debug(`[HeadlessAutomation] Outside working hours (${w}h, allowed: ${P}h-${C}h). Skipping reply.`),null}else if(b==="outside_hours"&&w>=P&&w<C)return this.logger.debug(`[HeadlessAutomation] Inside working hours (${w}h, allowed outside: ${P}h-${C}h). Skipping reply.`),null}let m=l.excludeContactIds||[];if(!h&&m.length>0){let w=String(t.senderId||"");if(m.includes(w))return this.logger.debug(`[HeadlessAutomation] Sender ${w} is in contact blacklist. Skipping reply.`),null}if(h){let w=String(p.groupId||p.threadId||r||""),P=l.excludeGroupIds||[],C=l.includeGroupIds||[];if(P.length>0&&P.includes(w))return this.logger.debug(`[HeadlessAutomation] Group ${w} is in group blacklist. Skipping reply.`),null;if(C.length>0&&!C.includes(w))return this.logger.debug(`[HeadlessAutomation] Group ${w} is not in group whitelist. Skipping reply.`),null}let O=l.excludeKeywords||[],_=l.includeKeywords||[],M=a.toLowerCase();if(O.length>0&&O.some(P=>{let C=P.trim().toLowerCase();return C.length>0&&M.includes(C)}))return this.logger.debug("[HeadlessAutomation] Message contains blacklisted keyword. Skipping reply."),null;if(_.length>0&&!_.some(P=>{let C=P.trim().toLowerCase();return C.length>0&&M.includes(C)}))return this.logger.debug("[HeadlessAutomation] Message does not match any whitelist keyword. Skipping reply."),null;let S=l.systemPrompt&&l.systemPrompt.trim()?l.systemPrompt:this.aiConfig.systemPrompt;if(this.aiConfig.provider==="rule_based")return this.aiConfig.fallbackMessage&&this.aiConfig.fallbackMessage.trim().length>0?(this.lastReplyTimes.set(r,o),this.aiConfig.fallbackMessage.trim()):null;let v=this.aiConfig.provider,T=this.aiConfig.apiKey;if(T||(v==="openai"?T=process.env.OPENAI_API_KEY:v==="deepseek"?T=process.env.DEEPSEEK_API_KEY:v==="anthropic"?T=process.env.ANTHROPIC_API_KEY:v==="custom"?T=process.env.CUSTOM_AI_API_KEY:v==="gemini"&&(T=process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY)),!T&&v!=="custom")return this.logger.debug(`[HeadlessAutomation] No API key found for provider [${v}]. No auto-reply sent.`),null;try{let w=null;if(v==="openai"||v==="custom"||v==="deepseek")w=await this.callOpenAiCompatible(a,i,T||"",S);else if(v==="anthropic")w=await this.callAnthropic(a,i,T||"",S);else if(v==="gemini")w=await this.callGemini(a,i,T||"",S);else return this.logger.warn(`[HeadlessAutomation] Unsupported AI provider [${v}]. No reply generated.`),null;if(w&&w.trim().length>0){let P=w.trim();return i.push({role:"model",content:P,timestamp:Date.now()}),this.lastReplyTimes.set(r,Date.now()),P}}catch(w){this.logger.warn(`[HeadlessAutomation] AI generation error with provider [${v}] (${w?.message}).`)}return this.aiConfig.fallbackMessage&&this.aiConfig.fallbackMessage.trim().length>0?(this.lastReplyTimes.set(r,Date.now()),this.aiConfig.fallbackMessage.trim()):null}getThreadHistory(t){let r=this.threadHistory.get(t);return r||(r=[],this.threadHistory.set(t,r)),r}async callGemini(t,r,o,n){let i=`https://generativelanguage.googleapis.com/v1beta/models/${this.aiConfig.model||"gemini-2.0-flash"}:generateContent?key=${o}`,s=r.map(y=>({role:y.role==="model"?"model":"user",parts:[{text:y.content}]}));(s.length===0||s[s.length-1].parts[0]?.text!==t)&&s.push({role:"user",parts:[{text:t}]});let c={contents:s,generationConfig:{temperature:this.aiConfig.temperature??.7,maxOutputTokens:this.aiConfig.maxTokens??300}},l=n||this.aiConfig.systemPrompt;l&&l.trim()&&(c.systemInstruction={parts:[{text:l.trim()}]});let p=new AbortController,h=setTimeout(()=>p.abort(),7e3);try{let y=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c),signal:p.signal});if(!y.ok){let O=await y.text();return this.logger.warn(`[HeadlessAutomation] Gemini API returned status ${y.status}: ${O.slice(0,200)}`),null}return(await y.json())?.candidates?.[0]?.content?.parts?.[0]?.text||null}finally{clearTimeout(h)}}async callOpenAiCompatible(t,r,o,n){let a=(this.aiConfig.baseUrl||(this.aiConfig.provider==="deepseek"?"https://api.deepseek.com/v1":"https://api.openai.com/v1")).replace(/\/+$/,"");a.includes("api.deepseek.com")&&!a.endsWith("/v1")?a+="/v1":(a.includes("11434")||a.includes("ollama"))&&(a=a.replace(/\/api$/,"").replace(/\/+$/,""),a.endsWith("/v1")||(a+="/v1"));let i=`${a}/chat/completions`,s=this.aiConfig.model||(this.aiConfig.provider==="deepseek"?"deepseek-chat":this.aiConfig.provider==="openai"?"gpt-4o-mini":"deepseek-chat"),c=n||this.aiConfig.systemPrompt,l=[...c&&c.trim()?[{role:"system",content:c.trim()}]:[],...r.map(b=>({role:b.role==="model"?"assistant":"user",content:b.content}))],p={"Content-Type":"application/json"};o&&(p.Authorization=`Bearer ${o}`);let h=new AbortController,y=setTimeout(()=>h.abort(),8e3);try{let b=await fetch(i,{method:"POST",headers:p,body:JSON.stringify({model:s,messages:l,temperature:this.aiConfig.temperature??.7,max_tokens:this.aiConfig.maxTokens??300}),signal:h.signal});if(!b.ok){let O=await b.text();return this.logger.warn(`[HeadlessAutomation] OpenAI-compatible API returned status ${b.status}: ${O.slice(0,200)}`),null}return(await b.json())?.choices?.[0]?.message?.content||null}finally{clearTimeout(y)}}async callAnthropic(t,r,o,n){let a="https://api.anthropic.com/v1/messages",i=this.aiConfig.model||"claude-3-5-haiku-20241022",s=r.map(p=>({role:p.role==="model"?"assistant":"user",content:p.content}));(s.length===0||s[s.length-1].content!==t)&&s.push({role:"user",content:t});let c=new AbortController,l=setTimeout(()=>c.abort(),8e3);try{let p=n||this.aiConfig.systemPrompt,h={model:i,messages:s,max_tokens:this.aiConfig.maxTokens??300,temperature:this.aiConfig.temperature??.7};p&&p.trim()&&(h.system=p.trim());let y=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":o,"anthropic-version":"2023-06-01"},body:JSON.stringify(h),signal:c.signal});if(!y.ok){let m=await y.text();return this.logger.warn(`[HeadlessAutomation] Anthropic API returned status ${y.status}: ${m.slice(0,200)}`),null}return(await y.json())?.content?.[0]?.text||null}finally{clearTimeout(l)}}clear(){this.campaigns.clear(),this.rules.clear(),this.threadHistory.clear(),this.lastReplyTimes.clear()}};var Jge=ke(co()),G6=class{logger;constructor(t){this.logger=t||(0,Jge.createLogger)("PushNotificationDispatcher")}async dispatchMessageAlert(t,r){let o=`${r.senderName} (${r.platform.toUpperCase()})`,n=r.content||"New multimedia message received";return this.sendNotification({recipientToken:t,title:o,body:n,data:{messageId:r.id,threadId:r.threadId,platform:r.platform,accountId:r.accountId}})}async sendNotification(t){return this.logger.debug(`Dispatching push notification to device token: ${t.recipientToken.slice(0,8)}...`),!0}};var CSt=ke(require("http")),NSt=require("url"),DSt=ke(co());var cP=ke(co());var ce=class extends Error{constructor(t,r){super(t),this.name="ZcaApiError",this.code=r||null}};var XI=class extends ce{constructor(){super("Missing `imageMetadataGetter`. Please provide it in the Zalo object options."),this.name="ZaloApiMissingImageMetadataGetter"}};var K6=class extends ce{constructor(t="Operation aborted"){super(t),this.name="ZaloApiLoginQRAborted"}};var H6=class extends ce{constructor(t="Login QR request declined"){super(t),this.name="ZaloApiLoginQRDeclined"}};var Xge;(function(e){e[e.Everyone=0]="Everyone",e[e.Stranger=1]="Stranger",e[e.SpecificFriends=2]="SpecificFriends",e[e.FriendsExcept=3]="FriendsExcept"})(Xge||(Xge={}));var V6;(function(e){e[e.Note=1]="Note",e[e.PinnedMessage=2]="PinnedMessage",e[e.Poll=3]="Poll"})(V6||(V6={}));var Xe;(function(e){e[e.User=0]="User",e[e.Group=1]="Group"})(Xe||(Xe={}));var $6;(function(e){e[e.Group=1]="Group",e[e.User=3]="User",e[e.Page=5]="Page"})($6||($6={}));var Yge;(function(e){e[e.Male=0]="Male",e[e.Female=1]="Female"})(Yge||(Yge={}));var Yl;(function(e){e[e.Small=120]="Small",e[e.Large=240]="Large"})(Yl||(Yl={}));var Qge;(function(e){e[e.ABBank=970425]="ABBank",e[e.ACB=970416]="ACB",e[e.Agribank=970405]="Agribank",e[e.BIDV=970418]="BIDV",e[e.BVBank=970454]="BVBank",e[e.BacA_Bank=970409]="BacA_Bank",e[e.BaoViet_Bank=970438]="BaoViet_Bank",e[e.CAKE=546034]="CAKE",e[e.CB_Bank=970444]="CB_Bank",e[e.CIMB_Bank=422589]="CIMB_Bank",e[e.Coop_Bank=970446]="Coop_Bank",e[e.DBS_Bank=796500]="DBS_Bank",e[e.DongA_Bank=970406]="DongA_Bank",e[e.Eximbank=970431]="Eximbank",e[e.GPBank=970408]="GPBank",e[e.HDBank=970437]="HDBank",e[e.HSBC=458761]="HSBC",e[e.HongLeong_Bank=970442]="HongLeong_Bank",e[e.IBK_HCM=970456]="IBK_HCM",e[e.IBK_HN=970455]="IBK_HN",e[e.Indovina_Bank=970434]="Indovina_Bank",e[e.KBank=668888]="KBank",e[e.KienlongBank=970452]="KienlongBank",e[e.Kookmin_Bank_HCM=970463]="Kookmin_Bank_HCM",e[e.Kookmin_Bank_HN=970462]="Kookmin_Bank_HN",e[e.LPBank=970449]="LPBank",e[e.MB_Bank=970422]="MB_Bank",e[e.MSB=970426]="MSB",e[e.NCB=970419]="NCB",e[e.Nam_A_Bank=970428]="Nam_A_Bank",e[e.NongHyup_Bank=801011]="NongHyup_Bank",e[e.OCB=970448]="OCB",e[e.Ocean_Bank=970414]="Ocean_Bank",e[e.PGBank=970430]="PGBank",e[e.PVcomBank=970412]="PVcomBank",e[e.Public_Bank_Vietnam=970439]="Public_Bank_Vietnam",e[e.SCB=970429]="SCB",e[e.SHB=970443]="SHB",e[e.Sacombank=970403]="Sacombank",e[e.Saigon_Bank=970400]="Saigon_Bank",e[e.SeABank=970440]="SeABank",e[e.Shinhan_Bank=970424]="Shinhan_Bank",e[e.Standard_Chartered_Vietnam=970410]="Standard_Chartered_Vietnam",e[e.TNEX=9704261]="TNEX",e[e.TPBank=970423]="TPBank",e[e.Techcombank=970407]="Techcombank",e[e.Timo=963388]="Timo",e[e.UBank=546035]="UBank",e[e.United_Overseas_Bank_Vietnam=970458]="United_Overseas_Bank_Vietnam",e[e.VIB=970441]="VIB",e[e.VPBank=970432]="VPBank",e[e.VRB=970421]="VRB",e[e.VietABank=970427]="VietABank",e[e.VietBank=970433]="VietBank",e[e.Vietcombank=970436]="Vietcombank",e[e.VietinBank=970415]="VietinBank",e[e.Woori_Bank=970457]="Woori_Bank"})(Qge||(Qge={}));var J6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.deliveredUids[0],this.isSelf=!1}},X6=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.groupId,this.isSelf=r.deliveredUids.includes(t)}};var Er;(function(e){e[e.ADD=0]="ADD",e[e.REMOVE=1]="REMOVE",e[e.REQUEST=2]="REQUEST",e[e.UNDO_REQUEST=3]="UNDO_REQUEST",e[e.REJECT_REQUEST=4]="REJECT_REQUEST",e[e.SEEN_FRIEND_REQUEST=5]="SEEN_FRIEND_REQUEST",e[e.BLOCK=6]="BLOCK",e[e.UNBLOCK=7]="UNBLOCK",e[e.BLOCK_CALL=8]="BLOCK_CALL",e[e.UNBLOCK_CALL=9]="UNBLOCK_CALL",e[e.PIN_UNPIN=10]="PIN_UNPIN",e[e.PIN_CREATE=11]="PIN_CREATE",e[e.UNKNOWN=12]="UNKNOWN"})(Er||(Er={}));function Zge(e,t,r){if(r==Er.ADD||r==Er.REMOVE||r==Er.BLOCK||r==Er.UNBLOCK||r==Er.BLOCK_CALL||r==Er.UNBLOCK_CALL)return{type:r,data:t,threadId:t,isSelf:![Er.ADD,Er.REMOVE].includes(r)};if(r==Er.REJECT_REQUEST||r==Er.UNDO_REQUEST){let o=t.toUid;return{type:r,data:t,threadId:o,isSelf:t.fromUid==e}}else if(r==Er.REQUEST){let o=t.toUid;return{type:r,data:t,threadId:o,isSelf:t.fromUid==e}}else{if(r==Er.SEEN_FRIEND_REQUEST)return{type:r,data:t,threadId:e,isSelf:!0};if(r==Er.PIN_CREATE){let o=t.conversationId;return{type:r,data:t,threadId:o,isSelf:t.actorId==e}}else if(r==Er.PIN_UNPIN){let o=t.conversationId;return{type:r,data:t,threadId:o,isSelf:t.actorId==e}}else return{type:Er.UNKNOWN,data:JSON.stringify(t),threadId:"",isSelf:!1}}}var e2e;(function(e){e[e.Note=0]="Note",e[e.Message=2]="Message",e[e.Poll=3]="Poll"})(e2e||(e2e={}));var t2e;(function(e){e[e.Group=1]="Group",e[e.Community=2]="Community"})(t2e||(t2e={}));var Gi;(function(e){e.JOIN_REQUEST="join_request",e.JOIN="join",e.LEAVE="leave",e.REMOVE_MEMBER="remove_member",e.BLOCK_MEMBER="block_member",e.UPDATE_SETTING="update_setting",e.UPDATE="update",e.NEW_LINK="new_link",e.ADD_ADMIN="add_admin",e.REMOVE_ADMIN="remove_admin",e.NEW_PIN_TOPIC="new_pin_topic",e.UPDATE_PIN_TOPIC="update_pin_topic",e.REORDER_PIN_TOPIC="reorder_pin_topic",e.UPDATE_BOARD="update_board",e.REMOVE_BOARD="remove_board",e.UPDATE_TOPIC="update_topic",e.UNPIN_TOPIC="unpin_topic",e.REMOVE_TOPIC="remove_topic",e.ACCEPT_REMIND="accept_remind",e.REJECT_REMIND="reject_remind",e.REMIND_TOPIC="remind_topic",e.UPDATE_AVATAR="update_avatar",e.UNKNOWN="unknown"})(Gi||(Gi={}));function n2e(e,t,r,o){var n;let a="group_id"in t?t.group_id:t.groupId;if(r==Gi.JOIN_REQUEST)return{type:r,act:o,data:t,threadId:a,isSelf:!1};if(r==Gi.NEW_PIN_TOPIC||r==Gi.UNPIN_TOPIC||r==Gi.UPDATE_PIN_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.actorId==e};if(r==Gi.REORDER_PIN_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.actorId==e};if(r==Gi.UPDATE_BOARD||r==Gi.REMOVE_BOARD)return{type:r,act:o,data:t,threadId:a,isSelf:t.sourceId==e};if(r==Gi.ACCEPT_REMIND||r==Gi.REJECT_REMIND)return{type:r,act:o,data:t,threadId:a,isSelf:t.updateMembers.some(i=>i==e)};if(r==Gi.REMIND_TOPIC)return{type:r,act:o,data:t,threadId:a,isSelf:t.creatorId==e};{let i=t;return{type:r,act:o,data:i,threadId:a,isSelf:((n=i.updateMembers)===null||n===void 0?void 0:n.some(s=>s.id==e))||i.sourceId==e}}}var YI=class{constructor(t,r){this.type=Xe.User,this.data=r,this.threadId=r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t),r.quote&&(r.quote.ownerId=String(r.quote.ownerId))}},UO=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.idTo,this.isSelf=r.uidFrom=="0",r.uidFrom=="0"&&(r.uidFrom=t),r.quote&&(r.quote.ownerId=String(r.quote.ownerId))}};var gn;(function(e){e.HEART="/-heart",e.LIKE="/-strong",e.HAHA=":>",e.WOW=":o",e.CRY=":-((",e.ANGRY=":-h",e.KISS=":-*",e.TEARS_OF_JOY=":')",e.SHIT="/-shit",e.ROSE="/-rose",e.BROKEN_HEART="/-break",e.DISLIKE="/-weak",e.LOVE=";xx",e.CONFUSED=";-/",e.WINK=";-)",e.FADE="/-fade",e.SUN="/-li",e.BIRTHDAY="/-bd",e.BOMB="/-bome",e.OK="/-ok",e.PEACE="/-v",e.THANKS="/-thanks",e.PUNCH="/-punch",e.SHARE="/-share",e.PRAY="_()_",e.NO="/-no",e.BAD="/-bad",e.LOVE_YOU="/-loveu",e.SAD="--b",e.VERY_SAD=":((",e.COOL="x-)",e.NERD="8-)",e.BIG_SMILE=";-d",e.SUNGLASSES="b-)",e.NEUTRAL=":--|",e.SAD_FACE="p-(",e.BYE=":-bye",e.SLEEPY="|-)",e.WIPE=":wipe",e.DIG=":-dig",e.ANGUISH="&-(",e.HANDCLAP=":handclap",e.ANGRY_FACE=">-|",e.F_CHAIR=":-f",e.L_CHAIR=":-l",e.R_CHAIR=":-r",e.SILENT=";-x",e.SURPRISE=":-o",e.EMBARRASSED=";-s",e.AFRAID=";-a",e.SAD2=":-<",e.BIG_LAUGH=":))",e.RICH="$-)",e.BEER="/-beer",e.NONE=""})(gn||(gn={}));var RS=class{constructor(t,r,o){this.data=r,this.threadId=o||r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",this.isGroup=o,r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t)}};var QI;(function(e){e[e.None=0]="None",e[e.Daily=1]="Daily",e[e.Weekly=2]="Weekly",e[e.Monthly=3]="Monthly"})(QI||(QI={}));var Y6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.idTo,this.isSelf=!1}},Q6=class{constructor(t,r){this.type=Xe.Group,this.data=r,this.threadId=r.groupId,this.isSelf=r.seenUids.includes(t)}};var Z6=class{constructor(t){this.type=Xe.User,this.data=t,this.threadId=t.uid,this.isSelf=!1}},e5=class{constructor(t){this.type=Xe.Group,this.data=t,this.threadId=t.gid,this.isSelf=!1}};var ZI=class{constructor(t,r,o){this.data=r,this.threadId=o||r.uidFrom=="0"?r.idTo:r.uidFrom,this.isSelf=r.uidFrom=="0",this.isGroup=o,r.idTo=="0"&&(r.idTo=t),r.uidFrom=="0"&&(r.uidFrom=t)}};var Fs;(function(e){e[e.Other=0]="Other",e[e.RealEstate=1]="RealEstate",e[e.TechnologyAndDevices=2]="TechnologyAndDevices",e[e.TravelAndHospitality=3]="TravelAndHospitality",e[e.EducationAndTraining=4]="EducationAndTraining",e[e.ShoppingAndRetail=5]="ShoppingAndRetail",e[e.CosmeticsAndBeauty=6]="CosmeticsAndBeauty",e[e.RestaurantAndCafe=7]="RestaurantAndCafe",e[e.AutoAndMotorbike=8]="AutoAndMotorbike",e[e.FashionAndApparel=9]="FashionAndApparel",e[e.FoodAndBeverage=10]="FoodAndBeverage",e[e.MediaAndEntertainment=11]="MediaAndEntertainment",e[e.InternalCommunications=12]="InternalCommunications",e[e.Transportation=13]="Transportation",e[e.Telecommunications=14]="Telecommunications"})(Fs||(Fs={}));var uKn={[Fs.Other]:"D\u1ECBch v\u1EE5 kh\xE1c (Kh\xF4ng hi\u1EC3n th\u1ECB)",[Fs.RealEstate]:"B\u1EA5t \u0111\u1ED9ng s\u1EA3n",[Fs.TechnologyAndDevices]:"C\xF4ng ngh\u1EC7 & Thi\u1EBFt b\u1ECB",[Fs.TravelAndHospitality]:"Du l\u1ECBch & L\u01B0u tr\xFA",[Fs.EducationAndTraining]:"Gi\xE1o d\u1EE5c & \u0110\xE0o t\u1EA1o",[Fs.ShoppingAndRetail]:"Mua s\u1EAFm & B\xE1n l\u1EBB",[Fs.CosmeticsAndBeauty]:"M\u1EF9 ph\u1EA9m & L\xE0m \u0111\u1EB9p",[Fs.RestaurantAndCafe]:"Nh\xE0 h\xE0ng & Qu\xE1n",[Fs.AutoAndMotorbike]:"\xD4 t\xF4 & Xe m\xE1y",[Fs.FashionAndApparel]:"Th\u1EDDi trang & May m\u1EB7c",[Fs.FoodAndBeverage]:"Th\u1EF1c ph\u1EA9m & \u0110\u1ED3 u\u1ED1ng",[Fs.MediaAndEntertainment]:"Truy\u1EC1n th\xF4ng & Gi\u1EA3i tr\xED",[Fs.InternalCommunications]:"Truy\u1EC1n th\xF4ng n\u1ED9i b\u1ED9",[Fs.Transportation]:"V\u1EADn t\u1EA3i",[Fs.Telecommunications]:"Vi\u1EC5n th\xF4ng"};var N_e=ke(CS(),1),D_e=require("node:fs/promises");var qr=ke(UOe(),1),Ew=ke(require("node:crypto"),1),CJ=ke(require("node:fs"),1),dD=ke(require("node:path"),1);function US(e){let t=e.length;for(;--t>=0;)e[t]=0}var VPt=0,TMe=1,$Pt=2,JPt=3,XPt=258,SJ=29,Mw=256,fw=Mw+1+SJ,LS=30,EJ=19,vMe=2*fw+1,KO=15,eJ=16,YPt=7,TJ=256,IMe=16,wMe=17,PMe=18,hJ=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),eD=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),QPt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),zMe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ZPt=512,zy=new Array((fw+2)*2);US(zy);var lw=new Array(LS*2);US(lw);var dw=new Array(ZPt);US(dw);var hw=new Array(XPt-JPt+1);US(hw);var vJ=new Array(SJ);US(vJ);var tD=new Array(LS);US(tD);function tJ(e,t,r,o,n){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=o,this.max_length=n,this.has_stree=e&&e.length}var RMe,xMe,kMe;function nJ(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var CMe=e=>e<256?dw[e]:dw[256+(e>>>7)],yw=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Ql=(e,t,r)=>{e.bi_valid>eJ-r?(e.bi_buf|=t<<e.bi_valid&65535,yw(e,e.bi_buf),e.bi_buf=t>>eJ-e.bi_valid,e.bi_valid+=r-eJ):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)},ud=(e,t,r)=>{Ql(e,r[t*2],r[t*2+1])},NMe=(e,t)=>{let r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1},ezt=e=>{e.bi_valid===16?(yw(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},tzt=(e,t)=>{let r=t.dyn_tree,o=t.max_code,n=t.stat_desc.static_tree,a=t.stat_desc.has_stree,i=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,p,h,y,b,m,O=0;for(y=0;y<=KO;y++)e.bl_count[y]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<vMe;l++)p=e.heap[l],y=r[r[p*2+1]*2+1]+1,y>c&&(y=c,O++),r[p*2+1]=y,!(p>o)&&(e.bl_count[y]++,b=0,p>=s&&(b=i[p-s]),m=r[p*2],e.opt_len+=m*(y+b),a&&(e.static_len+=m*(n[p*2+1]+b)));if(O!==0){do{for(y=c-1;e.bl_count[y]===0;)y--;e.bl_count[y]--,e.bl_count[y+1]+=2,e.bl_count[c]--,O-=2}while(O>0);for(y=c;y!==0;y--)for(p=e.bl_count[y];p!==0;)h=e.heap[--l],!(h>o)&&(r[h*2+1]!==y&&(e.opt_len+=(y-r[h*2+1])*r[h*2],r[h*2+1]=y),p--)}},DMe=(e,t,r)=>{let o=new Array(KO+1),n=0,a,i;for(a=1;a<=KO;a++)n=n+r[a-1]<<1,o[a]=n;for(i=0;i<=t;i++){let s=e[i*2+1];s!==0&&(e[i*2]=NMe(o[s]++,s))}},nzt=()=>{let e,t,r,o,n,a=new Array(KO+1);for(r=0,o=0;o<SJ-1;o++)for(vJ[o]=r,e=0;e<1<<hJ[o];e++)hw[r++]=o;for(hw[r-1]=o,n=0,o=0;o<16;o++)for(tD[o]=n,e=0;e<1<<eD[o];e++)dw[n++]=o;for(n>>=7;o<LS;o++)for(tD[o]=n<<7,e=0;e<1<<eD[o]-7;e++)dw[256+n++]=o;for(t=0;t<=KO;t++)a[t]=0;for(e=0;e<=143;)zy[e*2+1]=8,e++,a[8]++;for(;e<=255;)zy[e*2+1]=9,e++,a[9]++;for(;e<=279;)zy[e*2+1]=7,e++,a[7]++;for(;e<=287;)zy[e*2+1]=8,e++,a[8]++;for(DMe(zy,fw+1,a),e=0;e<LS;e++)lw[e*2+1]=5,lw[e*2]=NMe(e,5);RMe=new tJ(zy,hJ,Mw+1,fw,KO),xMe=new tJ(lw,eD,0,LS,KO),kMe=new tJ(new Array(0),QPt,0,EJ,YPt)},LMe=e=>{let t;for(t=0;t<fw;t++)e.dyn_ltree[t*2]=0;for(t=0;t<LS;t++)e.dyn_dtree[t*2]=0;for(t=0;t<EJ;t++)e.bl_tree[t*2]=0;e.dyn_ltree[TJ*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},qMe=e=>{e.bi_valid>8?yw(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},WOe=(e,t,r,o)=>{let n=t*2,a=r*2;return e[n]<e[a]||e[n]===e[a]&&o[t]<=o[r]},iJ=(e,t,r)=>{let o=e.heap[r],n=r<<1;for(;n<=e.heap_len&&(n<e.heap_len&&WOe(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!WOe(t,o,e.heap[n],e.depth));)e.heap[r]=e.heap[n],r=n,n<<=1;e.heap[r]=o},FOe=(e,t,r)=>{let o,n,a=0,i,s;if(e.sym_next!==0)do o=e.pending_buf[e.sym_buf+a++]&255,o+=(e.pending_buf[e.sym_buf+a++]&255)<<8,n=e.pending_buf[e.sym_buf+a++],o===0?ud(e,n,t):(i=hw[n],ud(e,i+Mw+1,t),s=hJ[i],s!==0&&(n-=vJ[i],Ql(e,n,s)),o--,i=CMe(o),ud(e,i,r),s=eD[i],s!==0&&(o-=tD[i],Ql(e,o,s)));while(a<e.sym_next);ud(e,TJ,t)},yJ=(e,t)=>{let r=t.dyn_tree,o=t.stat_desc.static_tree,n=t.stat_desc.has_stree,a=t.stat_desc.elems,i,s,c=-1,l;for(e.heap_len=0,e.heap_max=vMe,i=0;i<a;i++)r[i*2]!==0?(e.heap[++e.heap_len]=c=i,e.depth[i]=0):r[i*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,r[l*2]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=o[l*2+1]);for(t.max_code=c,i=e.heap_len>>1;i>=1;i--)iJ(e,r,i);l=a;do i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],iJ(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=s,r[l*2]=r[i*2]+r[s*2],e.depth[l]=(e.depth[i]>=e.depth[s]?e.depth[i]:e.depth[s])+1,r[i*2+1]=r[s*2+1]=l,e.heap[1]=l++,iJ(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],tzt(e,t),DMe(r,c,e.bl_count)},jOe=(e,t,r)=>{let o,n=-1,a,i=t[1],s=0,c=7,l=4;for(i===0&&(c=138,l=3),t[(r+1)*2+1]=65535,o=0;o<=r;o++)a=i,i=t[(o+1)*2+1],!(++s<c&&a===i)&&(s<l?e.bl_tree[a*2]+=s:a!==0?(a!==n&&e.bl_tree[a*2]++,e.bl_tree[IMe*2]++):s<=10?e.bl_tree[wMe*2]++:e.bl_tree[PMe*2]++,s=0,n=a,i===0?(c=138,l=3):a===i?(c=6,l=3):(c=7,l=4))},GOe=(e,t,r)=>{let o,n=-1,a,i=t[1],s=0,c=7,l=4;for(i===0&&(c=138,l=3),o=0;o<=r;o++)if(a=i,i=t[(o+1)*2+1],!(++s<c&&a===i)){if(s<l)do ud(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==n&&(ud(e,a,e.bl_tree),s--),ud(e,IMe,e.bl_tree),Ql(e,s-3,2)):s<=10?(ud(e,wMe,e.bl_tree),Ql(e,s-3,3)):(ud(e,PMe,e.bl_tree),Ql(e,s-11,7));s=0,n=a,i===0?(c=138,l=3):a===i?(c=6,l=3):(c=7,l=4)}},izt=e=>{let t;for(jOe(e,e.dyn_ltree,e.l_desc.max_code),jOe(e,e.dyn_dtree,e.d_desc.max_code),yJ(e,e.bl_desc),t=EJ-1;t>=3&&e.bl_tree[zMe[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},rzt=(e,t,r,o)=>{let n;for(Ql(e,t-257,5),Ql(e,r-1,5),Ql(e,o-4,4),n=0;n<o;n++)Ql(e,e.bl_tree[zMe[n]*2+1],3);GOe(e,e.dyn_ltree,t-1),GOe(e,e.dyn_dtree,r-1)},ozt=e=>{let t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(r=32;r<Mw;r++)if(e.dyn_ltree[r*2]!==0)return 1;return 0},KOe=!1,azt=e=>{KOe||(nzt(),KOe=!0),e.l_desc=new nJ(e.dyn_ltree,RMe),e.d_desc=new nJ(e.dyn_dtree,xMe),e.bl_desc=new nJ(e.bl_tree,kMe),e.bi_buf=0,e.bi_valid=0,LMe(e)},BMe=(e,t,r,o)=>{Ql(e,(VPt<<1)+(o?1:0),3),qMe(e),yw(e,r),yw(e,~r),r&&e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r},szt=e=>{Ql(e,TMe<<1,3),ud(e,TJ,zy),ezt(e)},czt=(e,t,r,o)=>{let n,a,i=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=ozt(e)),yJ(e,e.l_desc),yJ(e,e.d_desc),i=izt(e),n=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=n&&(n=a)):n=a=r+5,r+4<=n&&t!==-1?BMe(e,t,r,o):e.strategy===4||a===n?(Ql(e,(TMe<<1)+(o?1:0),3),FOe(e,zy,lw)):(Ql(e,($Pt<<1)+(o?1:0),3),rzt(e,e.l_desc.max_code+1,e.d_desc.max_code+1,i+1),FOe(e,e.dyn_ltree,e.dyn_dtree)),LMe(e),o&&qMe(e)},lzt=(e,t,r)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=r,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(hw[r]+Mw+1)*2]++,e.dyn_dtree[CMe(t)*2]++),e.sym_next===e.sym_end),uzt=azt,pzt=BMe,fzt=czt,dzt=lzt,hzt=szt,yzt={_tr_init:uzt,_tr_stored_block:pzt,_tr_flush_block:fzt,_tr_tally:dzt,_tr_align:hzt},bzt=(e,t,r,o)=>{let n=e&65535|0,a=e>>>16&65535|0,i=0;for(;r!==0;){i=r>2e3?2e3:r,r-=i;do n=n+t[o++]|0,a=a+n|0;while(--i);n%=65521,a%=65521}return n|a<<16|0},bw=bzt,mzt=()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var o=0;o<8;o++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t},gzt=new Uint32Array(mzt()),Ozt=(e,t,r,o)=>{let n=gzt,a=o+r;e^=-1;for(let i=o;i<a;i++)e=e>>>8^n[(e^t[i])&255];return e^-1},ys=Ozt,$O={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},YO={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:Mzt,_tr_stored_block:bJ,_tr_flush_block:_zt,_tr_tally:Gm,_tr_align:Azt}=yzt,{Z_NO_FLUSH:Km,Z_PARTIAL_FLUSH:Szt,Z_FULL_FLUSH:Ezt,Z_FINISH:c1,Z_BLOCK:HOe,Z_OK:Gs,Z_STREAM_END:VOe,Z_STREAM_ERROR:pd,Z_DATA_ERROR:Tzt,Z_BUF_ERROR:rJ,Z_DEFAULT_COMPRESSION:vzt,Z_FILTERED:Izt,Z_HUFFMAN_ONLY:J5,Z_RLE:wzt,Z_FIXED:Pzt,Z_DEFAULT_STRATEGY:zzt,Z_UNKNOWN:Rzt,Z_DEFLATED:rD}=YO,xzt=9,kzt=15,Czt=8,Nzt=29,Dzt=256,mJ=Dzt+1+Nzt,Lzt=30,qzt=19,Bzt=2*mJ+1,Uzt=15,tr=3,jm=258,fd=jm+tr+1,Wzt=32,qS=42,IJ=57,gJ=69,OJ=73,MJ=91,_J=103,HO=113,sw=666,Qc=1,WS=2,JO=3,FS=4,Fzt=3,VO=(e,t)=>(e.msg=$O[t],t),$Oe=e=>e*2-(e>4?9:0),Fm=e=>{let t=e.length;for(;--t>=0;)e[t]=0},jzt=e=>{let t,r,o,n=e.w_size;t=e.hash_size,o=t;do r=e.head[--o],e.head[o]=r>=n?r-n:0;while(--t);t=n,o=t;do r=e.prev[--o],e.prev[o]=r>=n?r-n:0;while(--t)},Gzt=(e,t,r)=>(t<<e.hash_shift^r)&e.hash_mask,Hm=Gzt,a0=e=>{let t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))},s0=(e,t)=>{_zt(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a0(e.strm)},Tr=(e,t)=>{e.pending_buf[e.pending++]=t},aw=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},AJ=(e,t,r,o)=>{let n=e.avail_in;return n>o&&(n=o),n===0?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),r),e.state.wrap===1?e.adler=bw(e.adler,t,n,r):e.state.wrap===2&&(e.adler=ys(e.adler,t,n,r)),e.next_in+=n,e.total_in+=n,n)},UMe=(e,t)=>{let r=e.max_chain_length,o=e.strstart,n,a,i=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-fd?e.strstart-(e.w_size-fd):0,l=e.window,p=e.w_mask,h=e.prev,y=e.strstart+jm,b=l[o+i-1],m=l[o+i];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(l[n+i]!==m||l[n+i-1]!==b||l[n]!==l[o]||l[++n]!==l[o+1])){o+=2,n++;do;while(l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&l[++o]===l[++n]&&o<y);if(a=jm-(y-o),o=y-jm,a>i){if(e.match_start=t,i=a,a>=s)break;b=l[o+i-1],m=l[o+i]}}while((t=h[t&p])>c&&--r!==0);return i<=e.lookahead?i:e.lookahead},BS=e=>{let t=e.w_size,r,o,n;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-fd)&&(e.window.set(e.window.subarray(t,t+t-o),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),jzt(e),o+=t),e.strm.avail_in===0)break;if(r=AJ(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=tr)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=Hm(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=Hm(e,e.ins_h,e.window[n+tr-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<tr)););}while(e.lookahead<fd&&e.strm.avail_in!==0)},WMe=(e,t)=>{let r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,o,n,a,i=0,s=e.strm.avail_in;do{if(o=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,n=e.strstart-e.block_start,o>n+e.strm.avail_in&&(o=n+e.strm.avail_in),o>a&&(o=a),o<r&&(o===0&&t!==c1||t===Km||o!==n+e.strm.avail_in)))break;i=t===c1&&o===n+e.strm.avail_in?1:0,bJ(e,0,0,i),e.pending_buf[e.pending-4]=o,e.pending_buf[e.pending-3]=o>>8,e.pending_buf[e.pending-2]=~o,e.pending_buf[e.pending-1]=~o>>8,a0(e.strm),n&&(n>o&&(n=o),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,o-=n),o&&(AJ(e.strm,e.strm.output,e.strm.next_out,o),e.strm.next_out+=o,e.strm.avail_out-=o,e.strm.total_out+=o)}while(i===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),i?FS:t!==Km&&t!==c1&&e.strm.avail_in===0&&e.strstart===e.block_start?WS:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(AJ(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,r=a>e.w_size?e.w_size:a,n=e.strstart-e.block_start,(n>=r||(n||t===c1)&&t!==Km&&e.strm.avail_in===0&&n<=a)&&(o=n>a?a:n,i=t===c1&&e.strm.avail_in===0&&o===n?1:0,bJ(e,e.block_start,o,i),e.block_start+=o,a0(e.strm)),i?JO:Qc)},oJ=(e,t)=>{let r,o;for(;;){if(e.lookahead<fd){if(BS(e),e.lookahead<fd&&t===Km)return Qc;if(e.lookahead===0)break}if(r=0,e.lookahead>=tr&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-fd&&(e.match_length=UMe(e,r)),e.match_length>=tr)if(o=Gm(e,e.strstart-e.match_start,e.match_length-tr),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=tr){e.match_length--;do e.strstart++,e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+1]);else o=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(o&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=e.strstart<tr-1?e.strstart:tr-1,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},NS=(e,t)=>{let r,o,n;for(;;){if(e.lookahead<fd){if(BS(e),e.lookahead<fd&&t===Km)return Qc;if(e.lookahead===0)break}if(r=0,e.lookahead>=tr&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=tr-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-fd&&(e.match_length=UMe(e,r),e.match_length<=5&&(e.strategy===Izt||e.match_length===tr&&e.strstart-e.match_start>4096)&&(e.match_length=tr-1)),e.prev_length>=tr&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-tr,o=Gm(e,e.strstart-1-e.prev_match,e.prev_length-tr),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=Hm(e,e.ins_h,e.window[e.strstart+tr-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=tr-1,e.strstart++,o&&(s0(e,!1),e.strm.avail_out===0))return Qc}else if(e.match_available){if(o=Gm(e,0,e.window[e.strstart-1]),o&&s0(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Qc}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(o=Gm(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<tr-1?e.strstart:tr-1,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},Kzt=(e,t)=>{let r,o,n,a,i=e.window;for(;;){if(e.lookahead<=jm){if(BS(e),e.lookahead<=jm&&t===Km)return Qc;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=tr&&e.strstart>0&&(n=e.strstart-1,o=i[n],o===i[++n]&&o===i[++n]&&o===i[++n])){a=e.strstart+jm;do;while(o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&o===i[++n]&&n<a);e.match_length=jm-(a-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=tr?(r=Gm(e,1,e.match_length-tr),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=0,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS},Hzt=(e,t)=>{let r;for(;;){if(e.lookahead===0&&(BS(e),e.lookahead===0)){if(t===Km)return Qc;break}if(e.match_length=0,r=Gm(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(s0(e,!1),e.strm.avail_out===0))return Qc}return e.insert=0,t===c1?(s0(e,!0),e.strm.avail_out===0?JO:FS):e.sym_next&&(s0(e,!1),e.strm.avail_out===0)?Qc:WS};function ld(e,t,r,o,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=o,this.func=n}var cw=[new ld(0,0,0,0,WMe),new ld(4,4,8,4,oJ),new ld(4,5,16,8,oJ),new ld(4,6,32,32,oJ),new ld(4,4,16,16,NS),new ld(8,16,32,32,NS),new ld(8,16,128,128,NS),new ld(8,32,128,256,NS),new ld(32,128,258,1024,NS),new ld(32,258,258,4096,NS)],Vzt=e=>{e.window_size=2*e.w_size,Fm(e.head),e.max_lazy_match=cw[e.level].max_lazy,e.good_match=cw[e.level].good_length,e.nice_match=cw[e.level].nice_length,e.max_chain_length=cw[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=tr-1,e.match_available=0,e.ins_h=0};function $zt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=rD,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Bzt*2),this.dyn_dtree=new Uint16Array((2*Lzt+1)*2),this.bl_tree=new Uint16Array((2*qzt+1)*2),Fm(this.dyn_ltree),Fm(this.dyn_dtree),Fm(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Uzt+1),this.heap=new Uint16Array(2*mJ+1),Fm(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*mJ+1),Fm(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var _w=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==qS&&t.status!==IJ&&t.status!==gJ&&t.status!==OJ&&t.status!==MJ&&t.status!==_J&&t.status!==HO&&t.status!==sw?1:0},FMe=e=>{if(_w(e))return VO(e,pd);e.total_in=e.total_out=0,e.data_type=Rzt;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?IJ:t.wrap?qS:HO,e.adler=t.wrap===2?0:1,t.last_flush=-2,Mzt(t),Gs},jMe=e=>{let t=FMe(e);return t===Gs&&Vzt(e.state),t},Jzt=(e,t)=>_w(e)||e.state.wrap!==2?pd:(e.state.gzhead=t,Gs),GMe=(e,t,r,o,n,a)=>{if(!e)return pd;let i=1;if(t===vzt&&(t=6),o<0?(i=0,o=-o):o>15&&(i=2,o-=16),n<1||n>xzt||r!==rD||o<8||o>15||t<0||t>9||a<0||a>Pzt||o===8&&i!==1)return VO(e,pd);o===8&&(o=9);let s=new $zt;return e.state=s,s.strm=e,s.status=qS,s.wrap=i,s.gzhead=null,s.w_bits=o,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=n+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+tr-1)/tr),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<n+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=t,s.strategy=a,s.method=r,jMe(e)},Xzt=(e,t)=>GMe(e,t,rD,kzt,Czt,zzt),Yzt=(e,t)=>{if(_w(e)||t>HOe||t<0)return e?VO(e,pd):pd;let r=e.state;if(!e.output||e.avail_in!==0&&!e.input||r.status===sw&&t!==c1)return VO(e,e.avail_out===0?rJ:pd);let o=r.last_flush;if(r.last_flush=t,r.pending!==0){if(a0(e),e.avail_out===0)return r.last_flush=-1,Gs}else if(e.avail_in===0&&$Oe(t)<=$Oe(o)&&t!==c1)return VO(e,rJ);if(r.status===sw&&e.avail_in!==0)return VO(e,rJ);if(r.status===qS&&r.wrap===0&&(r.status=HO),r.status===qS){let n=rD+(r.w_bits-8<<4)<<8,a=-1;if(r.strategy>=J5||r.level<2?a=0:r.level<6?a=1:r.level===6?a=2:a=3,n|=a<<6,r.strstart!==0&&(n|=Wzt),n+=31-n%31,aw(r,n),r.strstart!==0&&(aw(r,e.adler>>>16),aw(r,e.adler&65535)),e.adler=1,r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(r.status===IJ){if(e.adler=0,Tr(r,31),Tr(r,139),Tr(r,8),r.gzhead)Tr(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Tr(r,r.gzhead.time&255),Tr(r,r.gzhead.time>>8&255),Tr(r,r.gzhead.time>>16&255),Tr(r,r.gzhead.time>>24&255),Tr(r,r.level===9?2:r.strategy>=J5||r.level<2?4:0),Tr(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(Tr(r,r.gzhead.extra.length&255),Tr(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=ys(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=gJ;else if(Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,0),Tr(r,r.level===9?2:r.strategy>=J5||r.level<2?4:0),Tr(r,Fzt),r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(r.status===gJ){if(r.gzhead.extra){let n=r.pending,a=(r.gzhead.extra.length&65535)-r.gzindex;for(;r.pending+a>r.pending_buf_size;){let s=r.pending_buf_size-r.pending;if(r.pending_buf.set(r.gzhead.extra.subarray(r.gzindex,r.gzindex+s),r.pending),r.pending=r.pending_buf_size,r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex+=s,a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0,a-=s}let i=new Uint8Array(r.gzhead.extra);r.pending_buf.set(i.subarray(r.gzindex,r.gzindex+a),r.pending),r.pending+=a,r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex=0}r.status=OJ}if(r.status===OJ){if(r.gzhead.name){let n=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0}r.gzindex<r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&255:a=0,Tr(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),r.gzindex=0}r.status=MJ}if(r.status===MJ){if(r.gzhead.comment){let n=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n)),a0(e),r.pending!==0)return r.last_flush=-1,Gs;n=0}r.gzindex<r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&255:a=0,Tr(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>n&&(e.adler=ys(e.adler,r.pending_buf,r.pending-n,n))}r.status=_J}if(r.status===_J){if(r.gzhead.hcrc){if(r.pending+2>r.pending_buf_size&&(a0(e),r.pending!==0))return r.last_flush=-1,Gs;Tr(r,e.adler&255),Tr(r,e.adler>>8&255),e.adler=0}if(r.status=HO,a0(e),r.pending!==0)return r.last_flush=-1,Gs}if(e.avail_in!==0||r.lookahead!==0||t!==Km&&r.status!==sw){let n=r.level===0?WMe(r,t):r.strategy===J5?Hzt(r,t):r.strategy===wzt?Kzt(r,t):cw[r.level].func(r,t);if((n===JO||n===FS)&&(r.status=sw),n===Qc||n===JO)return e.avail_out===0&&(r.last_flush=-1),Gs;if(n===WS&&(t===Szt?Azt(r):t!==HOe&&(bJ(r,0,0,!1),t===Ezt&&(Fm(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),a0(e),e.avail_out===0))return r.last_flush=-1,Gs}return t!==c1?Gs:r.wrap<=0?VOe:(r.wrap===2?(Tr(r,e.adler&255),Tr(r,e.adler>>8&255),Tr(r,e.adler>>16&255),Tr(r,e.adler>>24&255),Tr(r,e.total_in&255),Tr(r,e.total_in>>8&255),Tr(r,e.total_in>>16&255),Tr(r,e.total_in>>24&255)):(aw(r,e.adler>>>16),aw(r,e.adler&65535)),a0(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Gs:VOe)},Qzt=e=>{if(_w(e))return pd;let t=e.state.status;return e.state=null,t===HO?VO(e,Tzt):Gs},Zzt=(e,t)=>{let r=t.length;if(_w(e))return pd;let o=e.state,n=o.wrap;if(n===2||n===1&&o.status!==qS||o.lookahead)return pd;if(n===1&&(e.adler=bw(e.adler,t,r,0)),o.wrap=0,r>=o.w_size){n===0&&(Fm(o.head),o.strstart=0,o.block_start=0,o.insert=0);let c=new Uint8Array(o.w_size);c.set(t.subarray(r-o.w_size,r),0),t=c,r=o.w_size}let a=e.avail_in,i=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,BS(o);o.lookahead>=tr;){let c=o.strstart,l=o.lookahead-(tr-1);do o.ins_h=Hm(o,o.ins_h,o.window[c+tr-1]),o.prev[c&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=c,c++;while(--l);o.strstart=c,o.lookahead=tr-1,BS(o)}return o.strstart+=o.lookahead,o.block_start=o.strstart,o.insert=o.lookahead,o.lookahead=0,o.match_length=o.prev_length=tr-1,o.match_available=0,e.next_in=i,e.input=s,e.avail_in=a,o.wrap=n,Gs},eRt=Xzt,tRt=GMe,nRt=jMe,iRt=FMe,rRt=Jzt,oRt=Yzt,aRt=Qzt,sRt=Zzt,cRt="pako deflate (from Nodeca project)",uw={deflateInit:eRt,deflateInit2:tRt,deflateReset:nRt,deflateResetKeep:iRt,deflateSetHeader:rRt,deflate:oRt,deflateEnd:aRt,deflateSetDictionary:sRt,deflateInfo:cRt},lRt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),uRt=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(let o in r)lRt(r,o)&&(e[o]=r[o])}}return e},pRt=e=>{let t=0;for(let o=0,n=e.length;o<n;o++)t+=e[o].length;let r=new Uint8Array(t);for(let o=0,n=0,a=e.length;o<a;o++){let i=e[o];r.set(i,n),n+=i.length}return r},oD={assign:uRt,flattenChunks:pRt},KMe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{KMe=!1}var mw=new Uint8Array(256);for(let e=0;e<256;e++)mw[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;mw[254]=mw[254]=1;var fRt=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,r,o,n,a,i=e.length,s=0;for(n=0;n<i;n++)r=e.charCodeAt(n),(r&64512)===55296&&n+1<i&&(o=e.charCodeAt(n+1),(o&64512)===56320&&(r=65536+(r-55296<<10)+(o-56320),n++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),a=0,n=0;a<s;n++)r=e.charCodeAt(n),(r&64512)===55296&&n+1<i&&(o=e.charCodeAt(n+1),(o&64512)===56320&&(r=65536+(r-55296<<10)+(o-56320),n++)),r<128?t[a++]=r:r<2048?(t[a++]=192|r>>>6,t[a++]=128|r&63):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|r&63):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|r&63);return t},dRt=(e,t)=>{if(t<65534&&e.subarray&&KMe)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let o=0;o<t;o++)r+=String.fromCharCode(e[o]);return r},hRt=(e,t)=>{let r=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let o,n,a=new Array(r*2);for(n=0,o=0;o<r;){let i=e[o++];if(i<128){a[n++]=i;continue}let s=mw[i];if(s>4){a[n++]=65533,o+=s-1;continue}for(i&=s===2?31:s===3?15:7;s>1&&o<r;)i=i<<6|e[o++]&63,s--;if(s>1){a[n++]=65533;continue}i<65536?a[n++]=i:(i-=65536,a[n++]=55296|i>>10&1023,a[n++]=56320|i&1023)}return dRt(a,n)},yRt=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let r=t-1;for(;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+mw[e[r]]>t?r:t},gw={string2buf:fRt,buf2string:hRt,utf8border:yRt};function bRt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var HMe=bRt,VMe=Object.prototype.toString,{Z_NO_FLUSH:mRt,Z_SYNC_FLUSH:gRt,Z_FULL_FLUSH:ORt,Z_FINISH:MRt,Z_OK:nD,Z_STREAM_END:_Rt,Z_DEFAULT_COMPRESSION:ARt,Z_DEFAULT_STRATEGY:SRt,Z_DEFLATED:ERt}=YO;function Aw(e){this.options=oD.assign({level:ARt,method:ERt,chunkSize:16384,windowBits:15,memLevel:8,strategy:SRt},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new HMe,this.strm.avail_out=0;let r=uw.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==nD)throw new Error($O[r]);if(t.header&&uw.deflateSetHeader(this.strm,t.header),t.dictionary){let o;if(typeof t.dictionary=="string"?o=gw.string2buf(t.dictionary):VMe.call(t.dictionary)==="[object ArrayBuffer]"?o=new Uint8Array(t.dictionary):o=t.dictionary,r=uw.deflateSetDictionary(this.strm,o),r!==nD)throw new Error($O[r]);this._dict_set=!0}}Aw.prototype.push=function(e,t){let r=this.strm,o=this.options.chunkSize,n,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?MRt:mRt,typeof e=="string"?r.input=gw.string2buf(e):VMe.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){if(r.avail_out===0&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),(a===gRt||a===ORt)&&r.avail_out<=6){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(n=uw.deflate(r,a),n===_Rt)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),n=uw.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===nD;if(r.avail_out===0){this.onData(r.output);continue}if(a>0&&r.next_out>0){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(r.avail_in===0)break}return!0};Aw.prototype.onData=function(e){this.chunks.push(e)};Aw.prototype.onEnd=function(e){e===nD&&(this.result=oD.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function wJ(e,t){let r=new Aw(t);if(r.push(e,!0),r.err)throw r.msg||$O[r.err];return r.result}function TRt(e,t){return t=t||{},t.raw=!0,wJ(e,t)}function vRt(e,t){return t=t||{},t.gzip=!0,wJ(e,t)}var IRt=Aw,wRt=wJ,PRt=TRt,zRt=vRt,RRt=YO,xRt={Deflate:IRt,deflate:wRt,deflateRaw:PRt,gzip:zRt,constants:RRt},X5=16209,kRt=16191,CRt=function(t,r){let o,n,a,i,s,c,l,p,h,y,b,m,O,_,M,S,v,T,w,P,C,R,N,W,k=t.state;o=t.next_in,N=t.input,n=o+(t.avail_in-5),a=t.next_out,W=t.output,i=a-(r-t.avail_out),s=a+(t.avail_out-257),c=k.dmax,l=k.wsize,p=k.whave,h=k.wnext,y=k.window,b=k.hold,m=k.bits,O=k.lencode,_=k.distcode,M=(1<<k.lenbits)-1,S=(1<<k.distbits)-1;e:do{m<15&&(b+=N[o++]<<m,m+=8,b+=N[o++]<<m,m+=8),v=O[b&M];t:for(;;){if(T=v>>>24,b>>>=T,m-=T,T=v>>>16&255,T===0)W[a++]=v&65535;else if(T&16){w=v&65535,T&=15,T&&(m<T&&(b+=N[o++]<<m,m+=8),w+=b&(1<<T)-1,b>>>=T,m-=T),m<15&&(b+=N[o++]<<m,m+=8,b+=N[o++]<<m,m+=8),v=_[b&S];n:for(;;){if(T=v>>>24,b>>>=T,m-=T,T=v>>>16&255,T&16){if(P=v&65535,T&=15,m<T&&(b+=N[o++]<<m,m+=8,m<T&&(b+=N[o++]<<m,m+=8)),P+=b&(1<<T)-1,P>c){t.msg="invalid distance too far back",k.mode=X5;break e}if(b>>>=T,m-=T,T=a-i,P>T){if(T=P-T,T>p&&k.sane){t.msg="invalid distance too far back",k.mode=X5;break e}if(C=0,R=y,h===0){if(C+=l-T,T<w){w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}}else if(h<T){if(C+=l+h-T,T-=h,T<w){w-=T;do W[a++]=y[C++];while(--T);if(C=0,h<w){T=h,w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}}}else if(C+=h-T,T<w){w-=T;do W[a++]=y[C++];while(--T);C=a-P,R=W}for(;w>2;)W[a++]=R[C++],W[a++]=R[C++],W[a++]=R[C++],w-=3;w&&(W[a++]=R[C++],w>1&&(W[a++]=R[C++]))}else{C=a-P;do W[a++]=W[C++],W[a++]=W[C++],W[a++]=W[C++],w-=3;while(w>2);w&&(W[a++]=W[C++],w>1&&(W[a++]=W[C++]))}}else if((T&64)===0){v=_[(v&65535)+(b&(1<<T)-1)];continue n}else{t.msg="invalid distance code",k.mode=X5;break e}break}}else if((T&64)===0){v=O[(v&65535)+(b&(1<<T)-1)];continue t}else if(T&32){k.mode=kRt;break e}else{t.msg="invalid literal/length code",k.mode=X5;break e}break}}while(o<n&&a<s);w=m>>3,o-=w,m-=w<<3,b&=(1<<m)-1,t.next_in=o,t.next_out=a,t.avail_in=o<n?5+(n-o):5-(o-n),t.avail_out=a<s?257+(s-a):257-(a-s),k.hold=b,k.bits=m},DS=15,JOe=852,XOe=592,YOe=0,aJ=1,QOe=2,NRt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),DRt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),LRt=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),qRt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),BRt=(e,t,r,o,n,a,i,s)=>{let c=s.bits,l=0,p=0,h=0,y=0,b=0,m=0,O=0,_=0,M=0,S=0,v,T,w,P,C,R=null,N,W=new Uint16Array(DS+1),k=new Uint16Array(DS+1),K=null,U,q,H;for(l=0;l<=DS;l++)W[l]=0;for(p=0;p<o;p++)W[t[r+p]]++;for(b=c,y=DS;y>=1&&W[y]===0;y--);if(b>y&&(b=y),y===0)return n[a++]=1<<24|64<<16|0,n[a++]=1<<24|64<<16|0,s.bits=1,0;for(h=1;h<y&&W[h]===0;h++);for(b<h&&(b=h),_=1,l=1;l<=DS;l++)if(_<<=1,_-=W[l],_<0)return-1;if(_>0&&(e===YOe||y!==1))return-1;for(k[1]=0,l=1;l<DS;l++)k[l+1]=k[l]+W[l];for(p=0;p<o;p++)t[r+p]!==0&&(i[k[t[r+p]]++]=p);if(e===YOe?(R=K=i,N=20):e===aJ?(R=NRt,K=DRt,N=257):(R=LRt,K=qRt,N=0),S=0,p=0,l=h,C=a,m=b,O=0,w=-1,M=1<<b,P=M-1,e===aJ&&M>JOe||e===QOe&&M>XOe)return 1;for(;;){U=l-O,i[p]+1<N?(q=0,H=i[p]):i[p]>=N?(q=K[i[p]-N],H=R[i[p]-N]):(q=96,H=0),v=1<<l-O,T=1<<m,h=T;do T-=v,n[C+(S>>O)+T]=U<<24|q<<16|H|0;while(T!==0);for(v=1<<l-1;S&v;)v>>=1;if(v!==0?(S&=v-1,S+=v):S=0,p++,--W[l]===0){if(l===y)break;l=t[r+i[p]]}if(l>b&&(S&P)!==w){for(O===0&&(O=b),C+=h,m=l-O,_=1<<m;m+O<y&&(_-=W[m+O],!(_<=0));)m++,_<<=1;if(M+=1<<m,e===aJ&&M>JOe||e===QOe&&M>XOe)return 1;w=S&P,n[w]=b<<24|m<<16|C-a|0}}return S!==0&&(n[C+S]=l-O<<24|64<<16|0),s.bits=b,0},pw=BRt,URt=0,$Me=1,JMe=2,{Z_FINISH:ZOe,Z_BLOCK:WRt,Z_TREES:Y5,Z_OK:XO,Z_STREAM_END:FRt,Z_NEED_DICT:jRt,Z_STREAM_ERROR:l1,Z_DATA_ERROR:XMe,Z_MEM_ERROR:YMe,Z_BUF_ERROR:GRt,Z_DEFLATED:eMe}=YO,aD=16180,tMe=16181,nMe=16182,iMe=16183,rMe=16184,oMe=16185,aMe=16186,sMe=16187,cMe=16188,lMe=16189,iD=16190,Py=16191,sJ=16192,uMe=16193,cJ=16194,pMe=16195,fMe=16196,dMe=16197,hMe=16198,Q5=16199,Z5=16200,yMe=16201,bMe=16202,mMe=16203,gMe=16204,OMe=16205,lJ=16206,MMe=16207,_Me=16208,To=16209,QMe=16210,ZMe=16211,KRt=852,HRt=592,VRt=15,$Rt=VRt,AMe=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function JRt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var QO=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<aD||t.mode>ZMe?1:0},e_e=e=>{if(QO(e))return l1;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=aD,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(KRt),t.distcode=t.distdyn=new Int32Array(HRt),t.sane=1,t.back=-1,XO},t_e=e=>{if(QO(e))return l1;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,e_e(e)},n_e=(e,t)=>{let r;if(QO(e))return l1;let o=e.state;return t<0?(r=0,t=-t):(r=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?l1:(o.window!==null&&o.wbits!==t&&(o.window=null),o.wrap=r,o.wbits=t,t_e(e))},i_e=(e,t)=>{if(!e)return l1;let r=new JRt;e.state=r,r.strm=e,r.window=null,r.mode=aD;let o=n_e(e,t);return o!==XO&&(e.state=null),o},XRt=e=>i_e(e,$Rt),SMe=!0,uJ,pJ,YRt=e=>{if(SMe){uJ=new Int32Array(512),pJ=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pw($Me,e.lens,0,288,uJ,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pw(JMe,e.lens,0,32,pJ,0,e.work,{bits:5}),SMe=!1}e.lencode=uJ,e.lenbits=9,e.distcode=pJ,e.distbits=5},r_e=(e,t,r,o)=>{let n,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),o>=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):(n=a.wsize-a.wnext,n>o&&(n=o),a.window.set(t.subarray(r-o,r-o+n),a.wnext),o-=n,o?(a.window.set(t.subarray(r-o,r),0),a.wnext=o,a.whave=a.wsize):(a.wnext+=n,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=n))),0},QRt=(e,t)=>{let r,o,n,a,i,s,c,l,p,h,y,b,m,O,_=0,M,S,v,T,w,P,C,R,N=new Uint8Array(4),W,k,K=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(QO(e)||!e.output||!e.input&&e.avail_in!==0)return l1;r=e.state,r.mode===Py&&(r.mode=sJ),i=e.next_out,n=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,p=r.bits,h=s,y=c,R=XO;e:for(;;)switch(r.mode){case aD:if(r.wrap===0){r.mode=sJ;break}for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&2&&l===35615){r.wbits===0&&(r.wbits=15),r.check=0,N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0),l=0,p=0,r.mode=tMe;break}if(r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=To;break}if((l&15)!==eMe){e.msg="unknown compression method",r.mode=To;break}if(l>>>=4,p-=4,C=(l&15)+8,r.wbits===0&&(r.wbits=C),C>15||C>r.wbits){e.msg="invalid window size",r.mode=To;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=l&512?lMe:Py,l=0,p=0;break;case tMe:for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.flags=l,(r.flags&255)!==eMe){e.msg="unknown compression method",r.mode=To;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=To;break}r.head&&(r.head.text=l>>8&1),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0,r.mode=nMe;case nMe:for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.head&&(r.head.time=l),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,N[2]=l>>>16&255,N[3]=l>>>24&255,r.check=ys(r.check,N,4,0)),l=0,p=0,r.mode=iMe;case iMe:for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.head&&(r.head.xflags=l&255,r.head.os=l>>8),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0,r.mode=rMe;case rMe:if(r.flags&1024){for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.length=l,r.head&&(r.head.extra_len=l),r.flags&512&&r.wrap&4&&(N[0]=l&255,N[1]=l>>>8&255,r.check=ys(r.check,N,2,0)),l=0,p=0}else r.head&&(r.head.extra=null);r.mode=oMe;case oMe:if(r.flags&1024&&(b=r.length,b>s&&(b=s),b&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(o.subarray(a,a+b),C)),r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,r.length-=b),r.length))break e;r.length=0,r.mode=aMe;case aMe:if(r.flags&2048){if(s===0)break e;b=0;do C=o[a+b++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C));while(C&&b<s);if(r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,C)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=sMe;case sMe:if(r.flags&4096){if(s===0)break e;b=0;do C=o[a+b++],r.head&&C&&r.length<65536&&(r.head.comment+=String.fromCharCode(C));while(C&&b<s);if(r.flags&512&&r.wrap&4&&(r.check=ys(r.check,o,b,a)),s-=b,a+=b,C)break e}else r.head&&(r.head.comment=null);r.mode=cMe;case cMe:if(r.flags&512){for(;p<16;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&4&&l!==(r.check&65535)){e.msg="header crc mismatch",r.mode=To;break}l=0,p=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Py;break;case lMe:for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}e.adler=r.check=AMe(l),l=0,p=0,r.mode=iD;case iD:if(r.havedict===0)return e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,jRt;e.adler=r.check=1,r.mode=Py;case Py:if(t===WRt||t===Y5)break e;case sJ:if(r.last){l>>>=p&7,p-=p&7,r.mode=lJ;break}for(;p<3;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}switch(r.last=l&1,l>>>=1,p-=1,l&3){case 0:r.mode=uMe;break;case 1:if(YRt(r),r.mode=Q5,t===Y5){l>>>=2,p-=2;break e}break;case 2:r.mode=fMe;break;case 3:e.msg="invalid block type",r.mode=To}l>>>=2,p-=2;break;case uMe:for(l>>>=p&7,p-=p&7;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",r.mode=To;break}if(r.length=l&65535,l=0,p=0,r.mode=cJ,t===Y5)break e;case cJ:r.mode=pMe;case pMe:if(b=r.length,b){if(b>s&&(b=s),b>c&&(b=c),b===0)break e;n.set(o.subarray(a,a+b),i),s-=b,a+=b,c-=b,i+=b,r.length-=b;break}r.mode=Py;break;case fMe:for(;p<14;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.nlen=(l&31)+257,l>>>=5,p-=5,r.ndist=(l&31)+1,l>>>=5,p-=5,r.ncode=(l&15)+4,l>>>=4,p-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=To;break}r.have=0,r.mode=dMe;case dMe:for(;r.have<r.ncode;){for(;p<3;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.lens[K[r.have++]]=l&7,l>>>=3,p-=3}for(;r.have<19;)r.lens[K[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,W={bits:r.lenbits},R=pw(URt,r.lens,0,19,r.lencode,0,r.work,W),r.lenbits=W.bits,R){e.msg="invalid code lengths set",r.mode=To;break}r.have=0,r.mode=hMe;case hMe:for(;r.have<r.nlen+r.ndist;){for(;_=r.lencode[l&(1<<r.lenbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(v<16)l>>>=M,p-=M,r.lens[r.have++]=v;else{if(v===16){for(k=M+2;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(l>>>=M,p-=M,r.have===0){e.msg="invalid bit length repeat",r.mode=To;break}C=r.lens[r.have-1],b=3+(l&3),l>>>=2,p-=2}else if(v===17){for(k=M+3;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=M,p-=M,C=0,b=3+(l&7),l>>>=3,p-=3}else{for(k=M+7;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=M,p-=M,C=0,b=11+(l&127),l>>>=7,p-=7}if(r.have+b>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=To;break}for(;b--;)r.lens[r.have++]=C}}if(r.mode===To)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=To;break}if(r.lenbits=9,W={bits:r.lenbits},R=pw($Me,r.lens,0,r.nlen,r.lencode,0,r.work,W),r.lenbits=W.bits,R){e.msg="invalid literal/lengths set",r.mode=To;break}if(r.distbits=6,r.distcode=r.distdyn,W={bits:r.distbits},R=pw(JMe,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,W),r.distbits=W.bits,R){e.msg="invalid distances set",r.mode=To;break}if(r.mode=Q5,t===Y5)break e;case Q5:r.mode=Z5;case Z5:if(s>=6&&c>=258){e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,CRt(e,y),i=e.next_out,n=e.output,c=e.avail_out,a=e.next_in,o=e.input,s=e.avail_in,l=r.hold,p=r.bits,r.mode===Py&&(r.back=-1);break}for(r.back=0;_=r.lencode[l&(1<<r.lenbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(S&&(S&240)===0){for(T=M,w=S,P=v;_=r.lencode[P+((l&(1<<T+w)-1)>>T)],M=_>>>24,S=_>>>16&255,v=_&65535,!(T+M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=T,p-=T,r.back+=T}if(l>>>=M,p-=M,r.back+=M,r.length=v,S===0){r.mode=OMe;break}if(S&32){r.back=-1,r.mode=Py;break}if(S&64){e.msg="invalid literal/length code",r.mode=To;break}r.extra=S&15,r.mode=yMe;case yMe:if(r.extra){for(k=r.extra;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.length+=l&(1<<r.extra)-1,l>>>=r.extra,p-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=bMe;case bMe:for(;_=r.distcode[l&(1<<r.distbits)-1],M=_>>>24,S=_>>>16&255,v=_&65535,!(M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if((S&240)===0){for(T=M,w=S,P=v;_=r.distcode[P+((l&(1<<T+w)-1)>>T)],M=_>>>24,S=_>>>16&255,v=_&65535,!(T+M<=p);){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}l>>>=T,p-=T,r.back+=T}if(l>>>=M,p-=M,r.back+=M,S&64){e.msg="invalid distance code",r.mode=To;break}r.offset=v,r.extra=S&15,r.mode=mMe;case mMe:if(r.extra){for(k=r.extra;p<k;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}r.offset+=l&(1<<r.extra)-1,l>>>=r.extra,p-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=To;break}r.mode=gMe;case gMe:if(c===0)break e;if(b=y-c,r.offset>b){if(b=r.offset-b,b>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=To;break}b>r.wnext?(b-=r.wnext,m=r.wsize-b):m=r.wnext-b,b>r.length&&(b=r.length),O=r.window}else O=n,m=i-r.offset,b=r.length;b>c&&(b=c),c-=b,r.length-=b;do n[i++]=O[m++];while(--b);r.length===0&&(r.mode=Z5);break;case OMe:if(c===0)break e;n[i++]=r.length,c--,r.mode=Z5;break;case lJ:if(r.wrap){for(;p<32;){if(s===0)break e;s--,l|=o[a++]<<p,p+=8}if(y-=c,e.total_out+=y,r.total+=y,r.wrap&4&&y&&(e.adler=r.check=r.flags?ys(r.check,n,y,i-y):bw(r.check,n,y,i-y)),y=c,r.wrap&4&&(r.flags?l:AMe(l))!==r.check){e.msg="incorrect data check",r.mode=To;break}l=0,p=0}r.mode=MMe;case MMe:if(r.wrap&&r.flags){for(;p<32;){if(s===0)break e;s--,l+=o[a++]<<p,p+=8}if(r.wrap&4&&l!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=To;break}l=0,p=0}r.mode=_Me;case _Me:R=FRt;break e;case To:R=XMe;break e;case QMe:return YMe;case ZMe:default:return l1}return e.next_out=i,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=p,(r.wsize||y!==e.avail_out&&r.mode<To&&(r.mode<lJ||t!==ZOe))&&r_e(e,e.output,e.next_out,y-e.avail_out),h-=e.avail_in,y-=e.avail_out,e.total_in+=h,e.total_out+=y,r.total+=y,r.wrap&4&&y&&(e.adler=r.check=r.flags?ys(r.check,n,y,e.next_out-y):bw(r.check,n,y,e.next_out-y)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Py?128:0)+(r.mode===Q5||r.mode===cJ?256:0),(h===0&&y===0||t===ZOe)&&R===XO&&(R=GRt),R},ZRt=e=>{if(QO(e))return l1;let t=e.state;return t.window&&(t.window=null),e.state=null,XO},e4t=(e,t)=>{if(QO(e))return l1;let r=e.state;return(r.wrap&2)===0?l1:(r.head=t,t.done=!1,XO)},t4t=(e,t)=>{let r=t.length,o,n,a;return QO(e)||(o=e.state,o.wrap!==0&&o.mode!==iD)?l1:o.mode===iD&&(n=1,n=bw(n,t,r,0),n!==o.check)?XMe:(a=r_e(e,t,r,r),a?(o.mode=QMe,YMe):(o.havedict=1,XO))},n4t=t_e,i4t=n_e,r4t=e_e,o4t=XRt,a4t=i_e,s4t=QRt,c4t=ZRt,l4t=e4t,u4t=t4t,p4t="pako inflate (from Nodeca project)",Ry={inflateReset:n4t,inflateReset2:i4t,inflateResetKeep:r4t,inflateInit:o4t,inflateInit2:a4t,inflate:s4t,inflateEnd:c4t,inflateGetHeader:l4t,inflateSetDictionary:u4t,inflateInfo:p4t};function f4t(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var d4t=f4t,o_e=Object.prototype.toString,{Z_NO_FLUSH:h4t,Z_FINISH:y4t,Z_OK:Ow,Z_STREAM_END:fJ,Z_NEED_DICT:dJ,Z_STREAM_ERROR:b4t,Z_DATA_ERROR:EMe,Z_MEM_ERROR:m4t}=YO;function Sw(e){this.options=oD.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new HMe,this.strm.avail_out=0;let r=Ry.inflateInit2(this.strm,t.windowBits);if(r!==Ow)throw new Error($O[r]);if(this.header=new d4t,Ry.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=gw.string2buf(t.dictionary):o_e.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Ry.inflateSetDictionary(this.strm,t.dictionary),r!==Ow)))throw new Error($O[r])}Sw.prototype.push=function(e,t){let r=this.strm,o=this.options.chunkSize,n=this.options.dictionary,a,i,s;if(this.ended)return!1;for(t===~~t?i=t:i=t===!0?y4t:h4t,o_e.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(r.avail_out===0&&(r.output=new Uint8Array(o),r.next_out=0,r.avail_out=o),a=Ry.inflate(r,i),a===dJ&&n&&(a=Ry.inflateSetDictionary(r,n),a===Ow?a=Ry.inflate(r,i):a===EMe&&(a=dJ));r.avail_in>0&&a===fJ&&r.state.wrap>0&&e[r.next_in]!==0;)Ry.inflateReset(r),a=Ry.inflate(r,i);switch(a){case b4t:case EMe:case dJ:case m4t:return this.onEnd(a),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(r.avail_out===0||a===fJ))if(this.options.to==="string"){let c=gw.utf8border(r.output,r.next_out),l=r.next_out-c,p=gw.buf2string(r.output,c);r.next_out=l,r.avail_out=o-l,l&&r.output.set(r.output.subarray(c,c+l),0),this.onData(p)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(!(a===Ow&&s===0)){if(a===fJ)return a=Ry.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(r.avail_in===0)break}}return!0};Sw.prototype.onData=function(e){this.chunks.push(e)};Sw.prototype.onEnd=function(e){e===Ow&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=oD.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function PJ(e,t){let r=new Sw(t);if(r.push(e),r.err)throw r.msg||$O[r.err];return r.result}function g4t(e,t){return t=t||{},t.raw=!0,PJ(e,t)}var O4t=Sw,M4t=PJ,_4t=g4t,A4t=PJ,S4t=YO,E4t={Inflate:O4t,inflate:M4t,inflateRaw:_4t,ungzip:A4t,constants:S4t},{Deflate:T4t,deflate:v4t,deflateRaw:I4t,gzip:w4t}=xRt,{Inflate:P4t,inflate:z4t,inflateRaw:R4t,ungzip:x4t}=E4t,k4t=T4t,C4t=v4t,N4t=I4t,D4t=w4t,L4t=P4t,q4t=z4t,B4t=R4t,U4t=x4t,W4t=YO,a_e={Deflate:k4t,deflate:C4t,deflateRaw:N4t,gzip:D4t,Inflate:L4t,inflate:q4t,inflateRaw:B4t,ungzip:U4t,constants:W4t};var __e=ke(l_e(),1),kJ=ke(CS(),1),A_e=ke(O_e(),1);var RJ=class extends Map{set(t,r,o=3e5){return setTimeout(()=>{this.delete(t)},o),super.set(t,r)}},xJ=(e=30,t=689)=>({API_TYPE:e,API_VERSION:t,uploadCallbacks:new RJ,options:{selfListen:!1,checkUpdate:!0,logging:!0,polyfill:global.fetch},secretKey:null});function uD(e){return!!e.secretKey}var pD=50;var NJ=typeof Bun<"u";function jS(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function DJ(e,t){let r=[];for(let n in t)jS(t,n)&&r.push(n);r.sort();let o="zsecure"+e;for(let n=0;n<r.length;n++)o+=t[r[n]];return qr.default.MD5(o).toString()}function Vm(e,t,r={},o=!0){let n=new URL(t);for(let a in r)jS(r,a)&&n.searchParams.append(a,r[a].toString());return o&&(n.searchParams.has("zpw_ver")||n.searchParams.set("zpw_ver",e.API_VERSION.toString()),n.searchParams.has("zpw_type")||n.searchParams.set("zpw_type",e.API_TYPE.toString())),n.toString()}var Tw=class e{constructor({type:t,imei:r,firstLaunchTime:o}){this.zcid=null,this.enc_ver="v2",this.zcid=null,this.encryptKey=null,this.createZcid(t,r,o),this.zcid_ext=e.randomString(),this.createEncryptKey()}getEncryptKey(){if(!this.encryptKey)throw new ce("getEncryptKey: didn't create encryptKey yet");return this.encryptKey}createZcid(t,r,o){if(!t||!r||!o)throw new ce("createZcid: missing params");let n=`${t},${r},${o}`,a=e.encodeAES("3FC4F0D2AB50057BCE0D90D9187A22B1",n,"hex",!0);this.zcid=a}createEncryptKey(t=0){let r=(o,n)=>{let{even:a}=e.processStr(o),{even:i,odd:s}=e.processStr(n);if(!a||!i||!s)return!1;let c=a.slice(0,8).join("")+i.slice(0,12).join("")+s.reverse().slice(0,12).join("");return this.encryptKey=c,!0};if(!this.zcid||!this.zcid_ext)throw new ce("createEncryptKey: zcid or zcid_ext is null");try{let o=qr.default.MD5(this.zcid_ext).toString().toUpperCase();if(r(o,this.zcid)||!(t<3))return!1;this.createEncryptKey(t+1)}catch{t<3&&this.createEncryptKey(t+1)}return!0}getParams(){return this.zcid?{zcid:this.zcid,zcid_ext:this.zcid_ext,enc_ver:this.enc_ver}:null}static processStr(t){if(!t||typeof t!="string")return{even:null,odd:null};let[r,o]=[...t].reduce((n,a,i)=>(n[i%2].push(a),n),[[],[]]);return{even:r,odd:o}}static randomString(t,r){let o=t||6,n=r&&t&&r>t?r:12,a=Math.floor(Math.random()*(n-o+1))+o;if(a>12){let i="";for(;a>0;)i+=Math.random().toString(16).substr(2,a>12?12:a),a-=12;return i}return Math.random().toString(16).substr(2,a)}static encodeAES(t,r,o,n,a=0){if(!r)return null;try{{let i=o=="hex"?qr.default.enc.Hex:qr.default.enc.Base64,s=qr.default.enc.Utf8.parse(t),c={words:[0,0,0,0],sigBytes:16},l=qr.default.AES.encrypt(r,s,{iv:c,mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).ciphertext.toString(i);return n?l.toUpperCase():l}}catch{return a<3?e.encodeAES(t,r,o,n,a+1):null}}};function S_e(e,t){let r=null;try{return r=K4t(e,t),JSON.parse(r)}catch{return r}}function K4t(e,t){t=decodeURIComponent(t);let r=qr.default.enc.Utf8.parse(e),o={words:[0,0,0,0],sigBytes:16};return qr.default.AES.decrypt({ciphertext:qr.default.enc.Base64.parse(t)},r,{iv:o,mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).toString(qr.default.enc.Utf8)}function M_e(e){return Buffer.from(e,"base64")}function H4t(e){try{return new TextDecoder().decode(e)}catch{return null}}function E_e(e,t,r=0){try{let o=qr.default.enc.Base64.parse(e);return qr.default.AES.encrypt(t,o,{iv:qr.default.enc.Hex.parse("00000000000000000000000000000000"),mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).ciphertext.toString(qr.default.enc.Base64)}catch{return r<3?E_e(e,t,r+1):null}}function T_e(e,t,r=0){try{t=decodeURIComponent(t);let o=qr.default.enc.Base64.parse(e);return qr.default.AES.decrypt({ciphertext:qr.default.enc.Base64.parse(t)},o,{iv:qr.default.enc.Hex.parse("00000000000000000000000000000000"),mode:qr.default.mode.CBC,padding:qr.default.pad.Pkcs7}).toString(qr.default.enc.Utf8)}catch{return r<3?T_e(e,t,r+1):null}}function V4t(e){return!e||/Windows/i.test(e)?"Windows":/Macintosh|Mac OS X/i.test(e)?"macOS":/Linux|X11/i.test(e)?"Linux":"Windows"}function $4t(e){if(!e)return"133";let t=e.match(/Chrome\/(\d+)/);return t?t[1]:"133"}function vw(e){return e==="en"?"en-US,en;q=0.9,vi;q=0.8":"vi-VN,vi;q=0.9,en-US;q=0.8,en;q=0.7"}function LJ(e){if(!e||!/Chrome\//i.test(e))return{};let t=V4t(e),r=$4t(e);return{"sec-ch-ua":`"Not=A?Brand";v="99", "Google Chrome";v="${r}", "Chromium";v="${r}"`,"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":`"${t}"`}}async function J4t(e,t="https://chat.zalo.me"){if(!e.cookie)throw new ce("Cookie is not available");if(!e.userAgent)throw new ce("User agent is not available");let r=LJ(e.userAgent);return Object.assign({accept:"*/*","accept-encoding":"gzip, deflate, br, zstd","accept-language":vw(e.language),"content-type":"application/x-www-form-urlencoded",cookie:await e.cookie.getCookieString(t),origin:t,priority:"u=1, i",referer:`${t}/`,"user-agent":e.userAgent,"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":t==="https://id.zalo.me"?"same-origin":"same-site"},r)}async function Zl(e,t,r,o=!1){var n,a;e.cookie||(e.cookie=new kJ.default.CookieJar);let i=new URL(t).origin,s=await J4t(e,i);if(!o)if(r&&r.headers){let y=Object.assign({},s),b=r.headers;for(let[m,O]of Object.entries(b)){let _=m.toLowerCase();for(let M of Object.keys(y))M.toLowerCase()===_&&M!==m&&delete y[M];y[m]=O}r.headers=y}else r=Object.assign(Object.assign({},r||{}),{headers:s});let c=Object.assign(Object.assign({},r??{}),NJ?{proxy:(a=(n=e.options.agent)===null||n===void 0?void 0:n.proxy)===null||a===void 0?void 0:a.href}:{agent:e.options.agent,dispatcher:e.options.agent}),l=await e.options.polyfill(t,c),p=l.headers.get("set-cookie");if(p&&!o){let y=[],b=l.headers;if(typeof b.raw=="function"){let m=b.raw();m&&m["set-cookie"]&&(y=m["set-cookie"])}else typeof b.getSetCookie=="function"?y=b.getSetCookie():y=p.split(/,\s*(?=[a-zA-Z0-9_-]+\s*=)/);for(let m of y){let O=kJ.default.Cookie.parse(m);try{O&&await e.cookie.setCookie(O,O.domain!="zalo.me"?`https://${O.domain}`:i)}catch(_){Hi(e).error(_)}}}let h=l.headers.get("location");if(h){let y=Object.assign({},r);return y.method="GET",o||(y.headers=new Headers(y.headers),y.headers.set("Referer","https://id.zalo.me/")),await Zl(e,h,y)}return l}async function $m(e,t){if(!e.options.imageMetadataGetter)throw new XI;let r=await e.options.imageMetadataGetter(t);if(!r)throw new ce("Failed to get image metadata");return{fileName:t.split("/").pop(),totalSize:r.size,width:r.width,height:r.height}}async function qJ(e){return CJ.default.promises.stat(e).then(t=>t.size)}async function v_e(e,t){if(!e.options.imageMetadataGetter)throw new XI;let r=await e.options.imageMetadataGetter(t);if(!r)throw new ce("Failed to get gif metadata");return{fileName:dD.default.basename(t),totalSize:r.size,width:r.width,height:r.height}}async function Wp(e,t){if(typeof e.data!="string")throw new ce(`Invalid data, expected string but got ${typeof e.data}`);if(typeof e.encrypt!="number")throw new ce(`Invalid encrypt type, expected number but got ${typeof e.encrypt}`);if(e.encrypt<0||e.encrypt>3)throw new ce(`Invalid encrypt type, expected 0-3 but got ${e.encrypt}`);let r=e.data,o=e.encrypt;if(o===0)return JSON.parse(r);let n=M_e(o===1?r:decodeURIComponent(r)),a=n;if(o!==1)if(t&&n.length>=48){let c={name:"AES-GCM",iv:n.subarray(0,16),tagLength:128,additionalData:n.subarray(16,32)},l=n.subarray(32),p=await Ew.default.subtle.importKey("raw",M_e(t),c,!1,["decrypt"]);a=await Ew.default.subtle.decrypt(c,p,l)}else throw new ce("Invalid data length or missing cipher key");let i=o===3?new Uint8Array(a):a_e.inflate(a),s=H4t(i);if(s)return A_e.default.parse(s)}async function hD(e,t){let r=typeof e=="string"?await CJ.default.promises.readFile(e):e.data;return new Promise(o=>{let n=0,a=2097152,i=Math.ceil(t/a),s=new __e.default.ArrayBuffer;function c(){let l=n*a,p=l+a>=t?t:l+a;s.append(new Uint8Array(r.subarray(l,p)).buffer),n++,n<i?c():o({currentChunk:n,data:s.end()})}c()})}var Hi=e=>({verbose:(...t)=>{e.options.logging&&console.log("\x1B[35m\u{1F680} VERBOSE\x1B[0m",...t)},info:(...t)=>{e.options.logging&&console.log("\x1B[34mINFO\x1B[0m",...t)},warn:(...t)=>{e.options.logging&&console.log("\x1B[33mWARN\x1B[0m",...t)},error:(...t)=>{e.options.logging&&console.log("\x1B[31mERROR\x1B[0m",...t)},success:(...t)=>{e.options.logging&&console.log("\x1B[32mSUCCESS\x1B[0m",...t)},timestamp:(...t)=>{let r=new Date().toISOString();e.options.logging&&console.log(`\x1B[90m[${r}]\x1B[0m`,...t)}});function I_e(e){return e==="webchat"?1:e==="chat.voice"?31:e==="chat.photo"?32:e==="chat.sticker"?36:e==="chat.doodle"?37:e==="chat.recommended"||e==="chat.link"?38:e==="chat.video.msg"?44:e==="share.file"?46:e==="chat.gif"?49:e==="chat.location.new"?43:1}function fD(e,t,r){let o=(e=""+e).length;return o===r?e:o>r?e.slice(-r):t.repeat(r-o)+e}function w_e(e,t=Date.now()){let r=new Date(t),o={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},n=new Intl.DateTimeFormat("vi-VN",o).format(r);return e.includes("%H")||e.includes("%d")?e.replace("%H",r.getHours().toString().padStart(2,"0")).replace("%M",r.getMinutes().toString().padStart(2,"0")).replace("%S",r.getSeconds().toString().padStart(2,"0")).replace("%d",r.getDate().toString().padStart(2,"0")).replace("%m",(r.getMonth()+1).toString().padStart(2,"0")).replace("%Y",r.getFullYear().toString()):n}function P_e(e){let t=new Date(e);return fD(t.getHours(),"0",2)+":"+fD(t.getMinutes(),"0",2)+" "+fD(t.getDate(),"0",2)+"/"+fD(t.getMonth()+1,"0",2)+"/"+t.getFullYear()}function xy(e){return dD.default.extname(e).slice(1)}function Iw(e){return dD.default.basename(e)}function ky(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function z_e(e){return e=="join_request"?Gi.JOIN_REQUEST:e=="join"?Gi.JOIN:e=="leave"?Gi.LEAVE:e=="remove_member"?Gi.REMOVE_MEMBER:e=="block_member"?Gi.BLOCK_MEMBER:e=="update_setting"?Gi.UPDATE_SETTING:e=="update_avatar"?Gi.UPDATE_AVATAR:e=="update"?Gi.UPDATE:e=="new_link"?Gi.NEW_LINK:e=="add_admin"?Gi.ADD_ADMIN:e=="remove_admin"?Gi.REMOVE_ADMIN:e=="new_pin_topic"?Gi.NEW_PIN_TOPIC:e=="update_pin_topic"?Gi.UPDATE_PIN_TOPIC:e=="update_topic"?Gi.UPDATE_TOPIC:e=="update_board"?Gi.UPDATE_BOARD:e=="remove_board"?Gi.REMOVE_BOARD:e=="reorder_pin_topic"?Gi.REORDER_PIN_TOPIC:e=="unpin_topic"?Gi.UNPIN_TOPIC:e=="remove_topic"?Gi.REMOVE_TOPIC:e=="accept_remind"?Gi.ACCEPT_REMIND:e=="reject_remind"?Gi.REJECT_REMIND:e=="remind_topic"?Gi.REMIND_TOPIC:Gi.UNKNOWN}function R_e(e){return e=="add"?Er.ADD:e=="remove"?Er.REMOVE:e=="block"?Er.BLOCK:e=="unblock"?Er.UNBLOCK:e=="block_call"?Er.BLOCK_CALL:e=="unblock_call"?Er.UNBLOCK_CALL:e=="req_v2"?Er.REQUEST:e=="reject"?Er.REJECT_REQUEST:e=="undo_req"?Er.UNDO_REQUEST:e=="seen_fr_req"?Er.SEEN_FRIEND_REQUEST:e=="pin_unpin"?Er.PIN_UNPIN:e=="pin_create"?Er.PIN_CREATE:Er.UNKNOWN}async function X4t(e,t,r=!0){let o={data:null,error:null};if(!t.ok)return o.error={message:"Request failed with status code "+t.status},o;try{let n=await t.json();if(n.error_code!=0)return o.error={message:n.error_message,code:n.error_code},o;let a=r?JSON.parse(T_e(e.secretKey,n.data)):n;if(a.error_code!=0)return o.error={message:a.error_message,code:a.error_code},o;o.data=a.data}catch(n){Hi(e).error("Failed to parse response data:",n),o.error={message:"Failed to parse response data"}}return o}async function Jm(e,t,r,o){let n=await X4t(e,t,o);if(n.error)throw new ce(n.error.message,n.error.code);return r?r(n):n.data}function Ie(){return e=>(t,r)=>{if(!uD(t))throw new ce("Invalid context "+JSON.stringify(t,null,2));let o={makeURL(n,a,i){return Vm(t,n,a,i)},encodeAES(n,a){return E_e(t.secretKey,n,a)},request(n,a,i){return Zl(t,n,a,i)},logger:Hi(t),resolve:(n,a,i)=>Jm(t,n,a,i)};return e(r,t,o)}}function x_e(e){return Ew.default.randomUUID()+"-"+qr.default.MD5(e).toString()}function k_e(e){return Ew.default.createHash("md5").update(e).digest("hex")}function Xm(e,t){return Object.assign(Object.assign({"accept-language":vw(e.language)},LJ(e.userAgent)),t)}var dd;(function(e){e[e.QRCodeGenerated=0]="QRCodeGenerated",e[e.QRCodeExpired=1]="QRCodeExpired",e[e.QRCodeScanned=2]="QRCodeScanned",e[e.QRCodeDeclined=3]="QRCodeDeclined",e[e.GotLoginInfo=4]="GotLoginInfo"})(dd||(dd={}));async function Y4t(e){let r=await(await Zl(e,"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F",{headers:Object.assign({accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","cache-control":"max-age=0",priority:"u=0, i"},Xm(e,{"sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"same-site","sec-fetch-user":"?1","upgrade-insecure-requests":"1",Referer:"https://chat.zalo.me/","Referrer-Policy":"strict-origin-when-cross-origin"})),method:"GET"})).text(),o=/https:\/\/stc-zlogin\.zdn\.vn\/main-([\d.]+)\.js/,n=r.match(o);return n?.[1]}async function Q4t(e,t){let r=new URLSearchParams;return r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/logininfo",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function Z4t(e,t){let r=new URLSearchParams;return r.append("type","device"),r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/verify-client",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function ext(e,t){let r=new URLSearchParams;return r.append("continue","https://zalo.me/pc"),r.append("v",t),await Zl(e,"https://id.zalo.me/account/authen/qr/generate",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc","Referrer-Policy":"strict-origin-when-cross-origin"})),body:r,method:"POST"}).then(o=>o.json()).catch(Hi(e).error)}async function C_e(e,t){await(0,D_e.writeFile)(e,t,"base64")}async function L_e(e,t,r,o){let n=new URLSearchParams;return n.append("code",r),n.append("continue","https://chat.zalo.me/"),n.append("v",t),await Zl(e,"https://id.zalo.me/account/authen/qr/waiting-scan",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),body:n,method:"POST",signal:o}).then(a=>a.json()).then(a=>a.error_code==8?L_e(e,t,r,o):a).catch(a=>{o.aborted||Hi(e).error(a)})}async function q_e(e,t,r,o){let n=new URLSearchParams;return n.append("code",r),n.append("gToken",""),n.append("gAction","CONFIRM_QR"),n.append("continue","https://chat.zalo.me/"),n.append("v",t),Hi(e).info("Please confirm on your phone"),await Zl(e,"https://id.zalo.me/account/authen/qr/waiting-confirm",{headers:Object.assign({accept:"*/*","content-type":"application/x-www-form-urlencoded",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),body:n,method:"POST",signal:o}).then(a=>a.json()).then(a=>a.error_code==8?q_e(e,t,r,o):a).catch(a=>{o.aborted||Hi(e).error(a)})}async function txt(e){return await Zl(e,"https://id.zalo.me/account/checksession?continue=https%3A%2F%2Fchat.zalo.me%2Findex.html",{headers:Object.assign({accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",priority:"u=0, i"},Xm(e,{"sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"same-origin","upgrade-insecure-requests":"1",Referer:"https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F","Referrer-Policy":"strict-origin-when-cross-origin"})),redirect:"manual",method:"GET"}).catch(Hi(e).error)}async function nxt(e){return await Zl(e,"https://jr.chat.zalo.me/jr/userinfo",{headers:Object.assign({accept:"*/*",priority:"u=1, i"},Xm(e,{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-site",Referer:"https://chat.zalo.me/","Referrer-Policy":"strict-origin-when-cross-origin"})),method:"GET"}).then(t=>t.json()).catch(Hi(e).error)}async function BJ(e,t,r){return e.cookie=new N_e.CookieJar,e.userAgent=t.userAgent,new Promise(async(o,n)=>{var a;let i=new AbortController,s=null;function c(){i.abort(),s&&(clearTimeout(s),s=null)}try{let l=function(){return c(),o(BJ(e,t,r))},p=function(){return c(),n(new K6)};e.options.logging&&console.log();let h=await Y4t(e);if(!h)throw new ce("Cannot get API login version");Hi(e).info("Got login version:",h),await Q4t(e,h),await Z4t(e,h);let y=await ext(e,h);if(!y||!y.data)throw new ce(`Unable to generate QRCode
|
|
228
228
|
Response: ${JSON.stringify(y,null,2)}`);let b=y.data;if(r)r({type:dd.QRCodeGenerated,data:Object.assign(Object.assign({},y.data),{image:y.data.image.replace(/^data:image\/png;base64,/,"")}),actions:{async saveToFile(S){var v;S===void 0&&(S=(v=t.qrPath)!==null&&v!==void 0?v:"qr.png"),await C_e(S,b.image.replace(/^data:image\/png;base64,/,"")),Hi(e).info("Scan the QR code at",`'${S}'`,"to proceed with login")},retry:l,abort:p}});else{let S=(a=t.qrPath)!==null&&a!==void 0?a:"qr.png";await C_e(S,b.image.replace(/^data:image\/png;base64,/,"")),Hi(e).info("Scan the QR code at",`'${S}'`,"to proceed with login")}s=setTimeout(()=>{c(),Hi(e).info("QR expired!"),r?r({type:dd.QRCodeExpired,data:null,actions:{retry:l,abort:p}}):l()},1e5);let m=await L_e(e,h,y.data.code,i.signal);if(!m||!m.data)throw new ce("Cannot get scan result");r&&r({type:dd.QRCodeScanned,data:m.data,actions:{retry:l,abort:p}});let O=await q_e(e,h,y.data.code,i.signal);if(!O)throw new ce("Cannot get confirm result");if(clearTimeout(s),O.error_code==-13){if(r)r({type:dd.QRCodeDeclined,data:{code:b.code},actions:{retry:l,abort:p}});else throw Hi(e).error("QRCode login declined"),new H6;return}else if(O.error_code!=0)throw new ce(`An error has occurred.
|
|
229
229
|
Response: ${JSON.stringify(O,null,2)}`);if(!await txt(e))throw new ce("Cannot get session, login failed");Hi(e).info("Successfully logged into the account",m.data.display_name);let M=await nxt(e);if(!M||!M.data)throw new ce("Can't get account info");if(!M.data.logged)throw new ce("Can't login");o({cookies:e.cookie.toJSON().cookies,userInfo:M.data.info})}catch(l){c(),n(l)}})}async function B_e(e,t){let r=await W_e(e,t,"getlogininfo");try{let o=await Zl(e,Vm(e,"https://wpa.chat.zalo.me/api/login/getLoginInfo",Object.assign(Object.assign({},r.params),{nretry:0}),!1));if(!o.ok)throw new ce("Failed to fetch login info: "+o.statusText);let n=await o.json();if(r.enk){let a=S_e(r.enk,n.data);return a!=null&&typeof a!="string"?a:null}return null}catch(o){throw Hi(e).error("Login failed:",o),o}}async function U_e(e,t){let r=await W_e(e,t,"getserverinfo");if(!r.params.signkey||typeof r.params.signkey!="string")throw new ce("Missing signkey");let o=await Zl(e,Vm(e,"https://wpa.chat.zalo.me/api/login/getServerInfo",{imei:e.imei,type:e.API_TYPE,client_version:e.API_VERSION,computer_name:"Web",signkey:r.params.signkey},!1));if(!o.ok)throw new ce("Failed to fetch server info: "+o.statusText);let n=await o.json();if(n.data==null)throw new ce("Failed to fetch server info: "+n.error_message);return n.data}async function W_e(e,t,r){let o={},n={computer_name:"Web",imei:e.imei,language:e.language,ts:Date.now()},a=await ixt(e,n,t);if(a==null)Object.assign(o,n);else{let{encrypted_params:i,encrypted_data:s}=a;Object.assign(o,i),o.params=s}return o.type=e.API_TYPE,o.client_version=e.API_VERSION,o.signkey=r=="getserverinfo"?DJ(r,{imei:e.imei,type:e.API_TYPE,client_version:e.API_VERSION,computer_name:"Web"}):DJ(r,o),{params:o,enk:a?a.enk:null}}async function ixt(e,t,r){if(r){let o=new Tw({type:e.API_TYPE,imei:t.imei,firstLaunchTime:Date.now()});try{let n=JSON.stringify(t),a=o.getEncryptKey(),i=Tw.encodeAES(a,n,"base64",!1),s=o.getParams();return s?{encrypted_data:i,encrypted_params:s,enk:a}:null}catch(n){throw new ce("Failed to encrypt params: "+n)}}return null}var eY=ke(CS(),1);var RSe=ke(Qm(),1);var lNt="2.1.2",uNt="https://registry.npmjs.org/zca-js";async function xSe(e){var t,r;if(!e.options.checkUpdate)return;let o=Object.assign({},NJ?{proxy:(r=(t=e.options.agent)===null||t===void 0?void 0:t.proxy)===null||r===void 0?void 0:r.href}:{agent:e.options.agent}),n=await e.options.polyfill(uNt,o).catch(()=>null);if(!n||!n.ok)return;let a=await n.json().catch(()=>null);if(!a)return;let i=a["dist-tags"].latest;(0,RSe.compare)(lNt,i)===-1?Hi(e).info(`A new version of zca-js is available: ${i}`):Hi(e).info("zca-js is up to date")}var L3e=ke(require("events"),1);Uw();var tg;(function(e){e[e.ManualClosure=1e3]="ManualClosure",e[e.AbnormalClosure=1006]="AbnormalClosure",e[e.DuplicateConnection=3e3]="DuplicateConnection",e[e.KickConnection=3003]="KickConnection"})(tg||(tg={}));var UD=class extends L3e.default{constructor(t,r){if(super(),this.ctx=t,this.urls=r,this.consecutive1006Count=0,this.id=0,!t.cookie)throw new ce("Cookie is not available");if(!t.userAgent)throw new ce("User agent is not available");this.wsURL=Vm(this.ctx,this.urls[0],{t:Date.now()}),this.retryCount={},this.rotateCount=0;for(let o in t.settings.features.socket.retries){let{times:n,max:a}=t.settings.features.socket.retries[o];this.retryCount[o]={count:0,max:a||0,times:typeof n=="number"?[n]:n}}this.cookie=t.cookie.getCookieStringSync("https://chat.zalo.me"),this.userAgent=t.userAgent,this.selfListen=t.options.selfListen,this.ws=null,this.onConnectedCallback=()=>{},this.onClosedCallback=()=>{},this.onErrorCallback=()=>{},this.onMessageCallback=()=>{}}onConnected(t){this.onConnectedCallback=t}onClosed(t){this.onClosedCallback=t}onError(t){this.onErrorCallback=t}onMessage(t){this.onMessageCallback=t}isRetryable(t){return t===tg.AbnormalClosure||this.ctx.settings.features.socket.close_and_retry_codes.includes(t)}canRetry(t){var r;if(!this.isRetryable(t))return!1;let o=(r=this.retryCount[t.toString()])!==null&&r!==void 0?r:this.retryCount.internal;if(!o||o.count>=o.max)return!1;o.count++;let{count:n,max:a,times:i}=o,s;if(n-1<i.length)s=i[n-1];else{let c=i[i.length-1]||1e3,l=Math.min(Math.pow(1.5,n-i.length),10),p=Math.floor(Math.random()*1e3);s=Math.min(Math.floor(c*l)+p,3e4)}return Hi(this.ctx).verbose(`Retry for code ${t} in ${s}ms (${n}/${a})`),s}resetRetryCount(){for(let t of Object.values(this.retryCount))t.count=0}resetWatchdog(){this.watchdogTimeout&&clearTimeout(this.watchdogTimeout),this.watchdogTimeout=setTimeout(()=>{if(Hi(this.ctx).verbose("Watchdog timeout: no packet/pong received from Zalo WebSocket in 50s. Forcing reconnect..."),this.ws)try{typeof this.ws.terminate=="function"?this.ws.terminate():typeof this.ws.close=="function"&&this.ws.close(tg.AbnormalClosure)}catch{}},5e4)}shouldRotate(t){return t===tg.AbnormalClosure?(this.consecutive1006Count++,this.consecutive1006Count>=2?(this.consecutive1006Count=0,!0):!1):(this.consecutive1006Count=0,this.ctx.settings.features.socket.rotate_error_codes.includes(t))}rotateEndpoint(){this.rotateCount=(this.rotateCount+1)%this.urls.length,this.wsURL=Vm(this.ctx,this.urls[this.rotateCount],{t:Date.now()}),Hi(this.ctx).verbose(`Rotating endpoint to ${this.wsURL}`)}start({retryOnClose:t=!1}={}){if(this.retryTimeout&&(clearTimeout(this.retryTimeout),this.retryTimeout=void 0),this.ws){let n=this.ws.readyState;if(n===Vs.CONNECTING||n===Vs.OPEN){Hi(this.ctx).warn("Listener is already active or connecting. Skipping duplicate start().");return}try{this.ws.removeAllListeners(),this.ws.close()}catch{}this.ws=null}this.wsURL=Vm(this.ctx,this.urls[this.rotateCount],{t:Date.now()});let r=this.ctx.cookie.getCookieStringSync("https://chat.zalo.me"),o=new Vs(this.wsURL,{headers:{"accept-language":vw(this.ctx.language),"cache-control":"no-cache",connection:"Upgrade",host:new URL(this.wsURL).host,origin:"https://chat.zalo.me",pragma:"no-cache","sec-websocket-extensions":"permessage-deflate; client_max_window_bits","sec-websocket-version":"13",upgrade:"websocket","user-agent":this.userAgent,cookie:r},agent:this.ctx.options.agent});this.ws=o,o.onopen=()=>{this.consecutive1006Count=0,this.resetRetryCount(),this.resetWatchdog(),this.onConnectedCallback(),this.emit("connected")},o.onclose=n=>{this.reset(),this.emit("disconnected",n.code,n.reason);let a=t&&this.isRetryable(n.code)&&this.canRetry(n.code);a&&t?(this.shouldRotate(n.code)&&this.rotateEndpoint(),this.emit("reconnecting",n.code),this.retryTimeout=setTimeout(()=>{try{this.start({retryOnClose:!0})}catch(s){Hi(this.ctx).error("Failed to auto-restart listener on retry timeout:",s)}},a)):(this.onClosedCallback(n.code,n.reason),this.emit("closed",n.code,n.reason))},o.onerror=n=>{this.onErrorCallback(n),this.emit("error",n)},o.onmessage=async n=>{var a,i,s;this.resetWatchdog(),this.emit("pong");let{data:c}=n;if(!(c instanceof Buffer))return;let l=c.subarray(0,4),[p,h,y]=q6t(l);try{let b=c.subarray(4),m=new TextDecoder("utf-8").decode(b);if(m.length==0)return;let O=JSON.parse(m);if(p==1&&h==1&&y==1&&jS(O,"key")){this.cipherKey=O.key,this.emit("cipher_key",O.key),this.pingInterval&&clearInterval(this.pingInterval);let _=()=>{let S={version:1,cmd:2,subCmd:1,data:{eventId:Date.now()}};this.sendWs(S,!1),this.emit("ping")},M=Math.min(Math.max(((s=(i=(a=this.ctx.settings)===null||a===void 0?void 0:a.features)===null||i===void 0?void 0:i.socket)===null||s===void 0?void 0:s.ping_interval)||25e3,1e4),25e3);this.pingInterval=setInterval(()=>{_()},M)}if(p==1&&h==501&&y==0){let _=(await Wp(O,this.cipherKey)).data,{msgs:M}=_;for(let S of M)if(typeof S.content=="object"&&jS(S.content,"deleteMsg")){let v=new ZI(this.ctx.uid,S,!1);if(v.isSelf&&!this.selfListen)continue;this.emit("undo",v)}else{let v=new YI(this.ctx.uid,S);if(v.isSelf&&!this.selfListen)continue;this.onMessageCallback(v),this.emit("message",v)}}if(p==1&&h==521&&y==0){let _=(await Wp(O,this.cipherKey)).data,{groupMsgs:M}=_;for(let S of M)if(typeof S.content=="object"&&jS(S.content,"deleteMsg")){let v=new ZI(this.ctx.uid,S,!0);if(v.isSelf&&!this.selfListen)continue;this.emit("undo",v)}else{let v=new UO(this.ctx.uid,S);if(v.isSelf&&!this.selfListen)continue;this.onMessageCallback(v),this.emit("message",v)}}if(p==1&&h==601&&y==0){let _=(await Wp(O,this.cipherKey)).data,{controls:M}=_;for(let S of M)if(S.content.act_type=="file_done"){let v={fileUrl:S.content.data.url,fileId:S.content.fileId},T=this.ctx.uploadCallbacks.get(String(S.content.fileId));T&&T(v),this.ctx.uploadCallbacks.delete(String(S.content.fileId)),this.emit("upload_attachment",v)}else if(S.content.act_type=="group"){if(S.content.act=="join_reject")continue;let v=typeof S.content.data=="string"?JSON.parse(S.content.data):S.content.data,T=n2e(this.ctx.uid,v,z_e(S.content.act),S.content.act);if(T.isSelf&&!this.selfListen)continue;this.emit("group_event",T)}else if(S.content.act_type=="fr"){if(S.content.act=="req")continue;let v=typeof S.content.data=="string"?JSON.parse(S.content.data):S.content.data;typeof v=="object"&&"topic"in v&&typeof v.topic=="object"&&"params"in v.topic&&(v.topic.params=JSON.parse(`${v.topic.params}`));let T=Zge(this.ctx.uid,typeof v=="number"?S.content.data:v,R_e(S.content.act));if(T.isSelf&&!this.selfListen)continue;this.emit("friend_event",T)}}if(h==612){let _=(await Wp(O,this.cipherKey)).data,{reacts:M,reactGroups:S}=_;for(let v of M){v.content=JSON.parse(v.content);let T=new RS(this.ctx.uid,v,!1);T.isSelf&&!this.selfListen||this.emit("reaction",T)}for(let v of S){v.content=JSON.parse(v.content);let T=new RS(this.ctx.uid,v,!0);T.isSelf&&!this.selfListen||this.emit("reaction",T)}}if(h==610||h==611){let _=(await Wp(O,this.cipherKey)).data,M=h==611,v=_[M?"reactGroups":"reacts"].map(T=>new RS(this.ctx.uid,T,M));this.emit("old_reactions",v,M)}if(h==510&&y==1){let S=(await Wp(O,this.cipherKey)).data.msgs.map(v=>new YI(this.ctx.uid,v));this.emit("old_messages",S,Xe.User)}if(h==511&&y==1){let S=(await Wp(O,this.cipherKey)).data.groupMsgs.map(v=>new UO(this.ctx.uid,v));this.emit("old_messages",S,Xe.Group)}if(h==602&&y==0){let _=(await Wp(O,this.cipherKey)).data,{actions:M}=_;for(let S of M)if(S.act_type=="typing"){let v=JSON.parse(`{${S.data}}`);if(S.act=="typing"){let T=new Z6(v);this.emit("typing",T)}else if(S.act=="gtyping"){let T=new e5(v);this.emit("typing",T)}}}if(h==502&&y==0){let _=(await Wp(O,this.cipherKey)).data,{delivereds:M,seens:S}=_;if(Array.isArray(M)&&M.length>0){let v=M.map(T=>new J6(T));this.emit("delivered_messages",v)}if(Array.isArray(S)&&S.length>0){let v=S.map(T=>new Y6(T));this.emit("seen_messages",v)}}if(h==522&&y==0){let _=(await Wp(O,this.cipherKey)).data,{delivereds:M,groupSeens:S}=_;if(Array.isArray(M)&&M.length>0){let v=M.map(T=>new X6(this.ctx.uid,T));this.selfListen||(v=v.filter(T=>!T.isSelf)),this.emit("delivered_messages",v)}if(Array.isArray(S)&&S.length>0){let v=S.map(T=>new Q6(this.ctx.uid,T));this.selfListen||(v=v.filter(T=>!T.isSelf)),this.emit("seen_messages",v)}}p==1&&h==3e3&&y==0&&(Hi(this.ctx).error(),Hi(this.ctx).error("Another connection is opened, closing this one"),Hi(this.ctx).error(),o.readyState!==Vs.CLOSED&&o.close(tg.DuplicateConnection))}catch(b){if(b instanceof ce&&b.message.includes("Invalid data length or missing cipher key")){Hi(this.ctx).verbose("Ignored undecryptable Zalo packet. This is normal for some reaction/system events.");return}this.onErrorCallback(b),this.emit("error",b)}}}stop(){this.retryTimeout&&clearTimeout(this.retryTimeout),this.watchdogTimeout&&clearTimeout(this.watchdogTimeout),this.ws&&this.ws.readyState!==Vs.CLOSED&&this.ws.close(tg.ManualClosure),this.reset()}sendWs(t,r=!0){if(this.ws){r&&(t.data.req_id=`req_${this.id++}`);let o=new TextEncoder().encode(JSON.stringify(t.data)),n=o.length,a=new DataView(Buffer.alloc(4+n).buffer);a.setUint8(0,t.version),a.setInt32(1,t.cmd,!0),a.setInt8(3,t.subCmd),o.forEach((i,s)=>{a.setUint8(4+s,i)}),this.ws.send(a)}}requestOldMessages(t,r=null){let o={version:1,cmd:t===Xe.User?510:511,subCmd:1,data:{first:!0,lastId:r,preIds:[]}};this.sendWs(o)}requestOldReactions(t,r=null){let o={version:1,cmd:t===Xe.User?610:611,subCmd:1,data:{first:!0,lastId:r,preIds:[]}};this.sendWs(o)}reset(){this.ws=null,this.cipherKey=void 0,this.pingInterval&&clearInterval(this.pingInterval),this.watchdogTimeout&&clearTimeout(this.watchdogTimeout)}};function q6t(e){if(e.byteLength<4)throw new ce("Invalid header");return[e[0],e.readUInt16LE(1),e[3]]}var q3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/accept`);return async function(a){let i={fid:a,language:t.language},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var B3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/blockedmems/add`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var U3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/admins/add`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var W3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/option/add`);return async function(a){let i={poll_id:a.pollId,new_options:JSON.stringify(a.options),voted_option_ids:a.votedOptionIds},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var F3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.quick_message[0]}/api/quickmessage/create`);return async function(a){let i=a.media?1:0,s={keyword:a.keyword,message:{title:a.title,params:""},type:i,imei:t.imei};if(i===1){if(!a.media)throw new ce("Media is required");let p=await e.uploadProductPhoto({file:a.media}),h=p.photoId,y=p.thumbUrl,b=p.normalUrl,m=p.hdUrl;s.media={items:[{type:0,photoId:h,title:"",width:"",height:"",previewThumb:y,rawUrl:b||m,thumbUrl:y,normalUrl:b||m,hdUrl:m||b}]}}let c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var j3e=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.reaction[0]}/api/message/reaction`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.reaction[0]}/api/group/reaction`)};return async function(a,i){let s=o[i.type],c,l;if(typeof a=="object")c=a.rType,l=a.source;else switch(a){case gn.HAHA:c=0,l=6;break;case gn.LIKE:c=3,l=6;break;case gn.HEART:c=5,l=6;break;case gn.WOW:c=32,l=6;break;case gn.CRY:c=2,l=6;break;case gn.ANGRY:c=20,l=6;break;case gn.KISS:c=8,l=6;break;case gn.TEARS_OF_JOY:c=7,l=6;break;case gn.SHIT:c=66,l=6;break;case gn.ROSE:c=120,l=6;break;case gn.BROKEN_HEART:c=65,l=6;break;case gn.DISLIKE:c=4,l=6;break;case gn.LOVE:c=29,l=6;break;case gn.CONFUSED:c=51,l=6;break;case gn.WINK:c=45,l=6;break;case gn.FADE:c=121,l=6;break;case gn.SUN:c=67,l=6;break;case gn.BIRTHDAY:c=126,l=6;break;case gn.BOMB:c=127,l=6;break;case gn.OK:c=68,l=6;break;case gn.PEACE:c=69,l=6;break;case gn.THANKS:c=70,l=6;break;case gn.PUNCH:c=71,l=6;break;case gn.SHARE:c=72,l=6;break;case gn.PRAY:c=73,l=6;break;case gn.NO:c=131,l=6;break;case gn.BAD:c=132,l=6;break;case gn.LOVE_YOU:c=133,l=6;break;case gn.SAD:c=1,l=6;break;case gn.VERY_SAD:c=16,l=6;break;case gn.COOL:c=21,l=6;break;case gn.NERD:c=22,l=6;break;case gn.BIG_SMILE:c=23,l=6;break;case gn.SUNGLASSES:c=26,l=6;break;case gn.NEUTRAL:c=30,l=6;break;case gn.SAD_FACE:c=35,l=6;break;case gn.BYE:c=36,l=6;break;case gn.SLEEPY:c=38,l=6;break;case gn.WIPE:c=39,l=6;break;case gn.DIG:c=42,l=6;break;case gn.ANGUISH:c=44,l=6;break;case gn.HANDCLAP:c=46,l=6;break;case gn.ANGRY_FACE:c=47,l=6;break;case gn.F_CHAIR:c=48,l=6;break;case gn.L_CHAIR:c=49,l=6;break;case gn.R_CHAIR:c=50,l=6;break;case gn.SILENT:c=52,l=6;break;case gn.SURPRISE:c=53,l=6;break;case gn.EMBARRASSED:c=54,l=6;break;case gn.AFRAID:c=60,l=6;break;case gn.SAD2:c=61,l=6;break;case gn.BIG_LAUGH:c=62,l=6;break;case gn.RICH:c=63,l=6;break;case gn.BEER:c=99,l=6;break;default:c=-1,l=6}let p=typeof a=="object"?a.icon:a;if(c==null||l==null||p==null)throw new ce("Invalid reaction");let h={react_list:[{message:JSON.stringify({rMsg:[{gMsgID:parseInt(i.data.msgId),cMsgID:parseInt(i.data.cliMsgId),msgType:1}],rIcon:p,rType:c,source:l}),clientId:Date.now()}]};i.type==Xe.User?h.toid=i.threadId:(h.grid=i.threadId,h.imei=t.imei);let y=r.encodeAES(JSON.stringify(h));if(!y)throw new ce("Failed to encrypt message");let b=await r.request(s,{method:"POST",body:new URLSearchParams({params:y})});return r.resolve(b,m=>typeof m.data.msgIds=="string"?{msgIds:JSON.parse(m.data.msgIds)}:m.data)}});var G3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/conv/addUnreadMark`);return async function(a,i=Xe.User){let s=Date.now(),c=s.toString(),l=i===Xe.Group,p={param:JSON.stringify({[l?"convsGroup":"convsUser"]:[{id:a,cliMsgId:c,fromUid:"0",ts:s}],[l?"convsUser":"convsGroup"]:[],imei:t.imei})},h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(o,{method:"POST",body:new URLSearchParams({params:h})});return r.resolve(y,b=>{let m=b.data;return typeof m.data=="string"?{data:JSON.parse(m.data),status:m.status}:b.data})}});var K3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/invite/v2`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a,memberTypes:a.map(()=>-1),imei:t.imei,clientLang:t.language},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var H3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/block`);return async function(a){let i={fid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var V3e=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/feed/block`);return async function(a,i){let s={fid:i,isBlockFeed:a?1:0,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var YTe=ke(oM(),1),QTe=ke(require("node:fs"),1);var ZTe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.file[0]}/api/profile/upavatar`);return async function(a){let i=typeof a=="string",s=i?await $m(t,a):a.metadata,c=s.totalSize||0,l={avatarSize:120,clientId:String(t.uid+w_e("%H:%M %d/%m/%Y")),language:t.language,metaData:JSON.stringify({origin:{width:s.width||1080,height:s.height||1080},processed:{width:s.width||1080,height:s.height||1080,size:c}})},p=i?QTe.default.readFileSync(a):a.data,h=new YTe.default;h.append("fileContent",p,{filename:"blob",contentType:"image/jpeg"});let y=r.encodeAES(JSON.stringify(l));if(!y)throw new ce("Failed to encrypt params");let b=await r.request(r.makeURL(o,{params:y}),{method:"POST",headers:h.getHeaders(),body:h.getBuffer()});return r.resolve(b)}});var eve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.alias[0]}/api/alias/update`);return async function(a,i){let s={friendId:i,alias:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var tve=ke(oM(),1),nve=ke(require("node:fs"),1);var ive=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.file[0]}/api/group/upavatar`);return async function(a,i){let s={grid:i,avatarSize:120,clientId:`g${i}${P_e(new Date().getTime())}`,imei:t.imei},c=typeof a=="string",l=c?await $m(t,a):a.metadata;s.originWidth=l.width||1080,s.originHeight=l.height||1080;let p=c?nve.default.readFileSync(a):a.data,h=new tve.default;h.append("fileContent",p,{filename:"blob",contentType:"image/jpeg"});let y=r.encodeAES(JSON.stringify(s));if(!y)throw new ce("Failed to encrypt params");let b=await r.request(r.makeURL(o,{params:y}),{method:"POST",headers:h.getHeaders(),body:h.getBuffer()});return r.resolve(b)}});var rve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/updateinfo`);return async function(a,i){a.length==0&&(a=Date.now().toString());let s={grid:i,gname:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var ove=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/change-owner`);return async function(a,i){let s={grid:i,newAdminId:a,imei:t.imei,language:t.language},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var ave=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.auto_reply[0]}/api/autoreply/create`);return async function(a){let i=Array.isArray(a.uids)?a.uids:[a.uids],s=a.scope===2||a.scope===3?i:[],c={cliLang:t.language,enable:a.isEnable,content:a.content,startTime:a.startTime,endTime:a.endTime,recurrence:["RRULE:FREQ=DAILY;"],scope:a.scope,uids:s},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o,{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var sve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/catalog/create`);return async function(a){let i={catalog_name:a,catalog_photo:""},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var cve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/create/v2`);return async function(a){if(a.members.length==0)throw new ce("Group must have at least one member");let i={clientId:Date.now(),gname:String(Date.now()),gdesc:null,members:a.members,membersTypes:a.members.map(()=>-1),nameChanged:0,createLink:1,clientLang:t.language,imei:t.imei,zsource:601};a.name&&a.name.length>0&&(i.gname=a.name,i.nameChanged=1);let s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(r.makeURL(o,{params:s}),{method:"POST"}),l=await r.resolve(c);return a.avatarSource=a.avatarSource||a.avatarPath,a.avatarSource&&await e.changeGroupAvatar(a.avatarSource,l.groupId).catch(r.logger.error),l}});var lve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/createv2`);return async function(a,i){let s={grid:i,type:0,color:-16777216,emoji:"",startTime:-1,duration:-1,params:JSON.stringify({title:a.title}),repeat:0,src:1,imei:t.imei,pinAct:a.pinAct?1:0},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l,p=>(typeof p.data.params=="string"&&(p.data.params=JSON.parse(p.data.params)),p.data))}});var uve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/create`);return async function(a,i){var s;let c={group_id:i,question:a.question,options:a.options,expired_time:(s=a.expiredTime)!==null&&s!==void 0?s:0,pinAct:!1,allow_multi_choices:!!a.allowMultiChoices,allow_add_new_option:!!a.allowAddNewOption,is_hide_vote_preview:!!a.hideVotePreview,is_anonymous:!!a.isAnonymous,poll_type:0,src:1,imei:t.imei},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o,{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var pve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/product/create`);return async function(a){let i=a.product_photos||[];if(a.files&&a.files.length==0){if(a.files.length>5)throw new ce("Maximum 5 media files are allowed");for(let p of a.files){let h=await e.uploadProductPhoto({file:p}),y=h.normalUrl||h.hdUrl;i.push(y)}}if(i.length>5)throw new ce("Maximum 5 media files are allowed");let s={product_name:a.productName,price:a.price,description:a.description,product_photos:i,catalog_id:a.catalogId,currency_unit:"\u20AB",create_time:Date.now()},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var fve=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/oneone/create`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/createv2`)};return async function(a,i,s=Xe.User){var c,l,p,h,y,b;let m=s===Xe.User?{objectData:JSON.stringify({toUid:i,type:0,color:-16245706,emoji:(c=a.emoji)!==null&&c!==void 0?c:"\u23F0",startTime:(l=a.startTime)!==null&&l!==void 0?l:Date.now(),duration:-1,params:{title:a.title},needPin:!1,repeat:(p=a.repeat)!==null&&p!==void 0?p:QI.None,creatorUid:t.uid,src:1}),imei:t.imei}:{grid:i,type:0,color:-16245706,emoji:(h=a.emoji)!==null&&h!==void 0?h:"\u23F0",startTime:(y=a.startTime)!==null&&y!==void 0?y:Date.now(),duration:-1,params:JSON.stringify({title:a.title}),repeat:(b=a.repeat)!==null&&b!==void 0?b:QI.None,src:1,imei:t.imei,pinAct:0},O=r.encodeAES(JSON.stringify(m));if(!O)throw new ce("Failed to encrypt params");let _=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:O})});return r.resolve(_)}});var dve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/gid/decrypt`);return async function(a){if(!a)throw new ce("Missing gids");Array.isArray(a)||(a=[a]);let i={gids:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var hve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.auto_reply[0]}/api/autoreply/delete`);return async function(a){let i={cliLang:t.language,id:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var yve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/del-avatars`);return async function(a){let s=(Array.isArray(a)?a:[a]).map(h=>({photoId:h})),c={delPhotos:JSON.stringify(s),imei:t.imei},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p)}});var bve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/catalog/delete`);return async function(a){let i={catalog_id:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var mve=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/deleteconver`,{nretry:0}),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/deleteconver`,{nretry:0})};return async function(a,i,s=Xe.User){let c=Date.now().toString(),l=s===Xe.User?{toid:i,cliMsgId:c,conver:a,onlyMe:1,imei:t.imei}:{grid:i,cliMsgId:c,conver:a,onlyMe:1,imei:t.imei},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h)}});var gve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/inv-box/mdel-inv`);return async function(a,i=!1){let s=Array.isArray(a)?a:[a],c={invitations:JSON.stringify(s.map(h=>({grid:h}))),block:i?1:0},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p)}});var Ove=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/delete`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/deletemsg`)};return async function(a,i=!1){let{threadId:s,type:c=Xe.User,data:l}=a,p=c===Xe.Group;if(t.uid==l.uidFrom&&i===!1)throw new ce("To delete your message for everyone, use undo api instead");if(!p&&i===!1)throw new ce("Can't delete message for everyone in a private chat");let y={[p?"grid":"toid"]:s,cliMsgId:Date.now(),msgs:[{cliMsgId:l.cliMsgId,globalMsgId:l.msgId,ownerId:l.uidFrom,destId:s}],onlyMe:i?1:0};p||(y.imei=t.imei);let b=r.encodeAES(JSON.stringify(y));if(!b)throw new ce("Failed to encrypt message");let m=await r.request(o[c],{method:"POST",body:new URLSearchParams({params:b})});return r.resolve(m)}});var Mve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/product/mdelete`);return async function(a){Array.isArray(a.productIds)||(a.productIds=[a.productIds]);let i={product_ids:a.productIds,catalog_id:a.catalogId},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var _ve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/link/disable`);return async function(a){let i={grid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Ave=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/disperse`);return async function(a){let i={grid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var Sve=Ie()((e,t,r)=>async function(n){let a="";if(typeof n=="string")a=n;else{if(!n.key||!n.exp||!n.sig)throw new ce("Missing key, exp or sig in options");a=`https://transfersync.zaloapp.com/api/transfer-sync-v2/download?key=${n.key}&exp=${n.exp}&sig=${n.sig}`}let i=await r.request(a,{method:"GET"});if(!i.ok)throw new ce(`Failed to download transfer snapshot: ${i.statusText} (${i.status})`);let s=await i.arrayBuffer();return Buffer.from(s)});var Eve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/updatev2`);return async function(a,i){let s={grid:i,type:0,color:-16777216,emoji:"",startTime:-1,duration:-1,params:JSON.stringify({title:a.title}),topicId:a.topicId,repeat:0,imei:t.imei,pinAct:a.pinAct?1:2},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l,p=>{let h=p.data;return typeof h.params=="string"&&(h.params=JSON.parse(h.params)),h})}});var Tve=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/oneone/update`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/updatev2`)};return async function(a,i,s=Xe.User){var c,l,p,h,y,b;let m=s===Xe.User?{objectData:JSON.stringify({toUid:i,type:0,color:-16777216,emoji:(c=a.emoji)!==null&&c!==void 0?c:"",startTime:(l=a.startTime)!==null&&l!==void 0?l:Date.now(),duration:-1,params:{title:a.title},needPin:!1,reminderId:a.topicId,repeat:(p=a.repeat)!==null&&p!==void 0?p:0})}:{grid:i,type:0,color:-16777216,emoji:(h=a.emoji)!==null&&h!==void 0?h:"",startTime:(y=a.startTime)!==null&&y!==void 0?y:Date.now(),duration:-1,params:JSON.stringify({title:a.title}),topicId:a.topicId,repeat:(b=a.repeat)!==null&&b!==void 0?b:0,imei:t.imei,pinAct:2},O=r.encodeAES(JSON.stringify(m));if(!O)throw new ce("Failed to encrypt params");let _=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:O})});return r.resolve(_)}});var vve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/link/new`);return async function(a){let i={grid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Ive=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/me-v2`);return async function(){let a=await r.request(o,{method:"GET"});return r.resolve(a)}});var wve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/profile/get`);return async function(a,i=Yl.Large){if(!a)throw new ce("Missing phoneNumber");a.startsWith("0")&&t.language=="vi"&&(a="84"+a.slice(1));let s={phone:a,avatar_size:i,language:t.language,imei:t.imei,reqSrc:40},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt message");let l=new URL(o);l.searchParams.append("params",c);let p=await r.request(r.makeURL(l.toString(),{params:c}));return r.resolve(p,h=>{if(h.error&&h.error.code!=216)throw new ce(h.error.message,h.error.code);return h.data})}});var Pve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/search/by-user-name`);return async function(a,i=Yl.Large){let s={user_name:a,avatar_size:i},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var zve=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/message/mforward`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/group/mforward`)};return async function(a,i,s=Xe.User){var c,l;if(!a.message)throw new ce("Missing message content");if(!i||i.length===0)throw new ce("Missing thread IDs");let h=Date.now().toString(),y={message:a.message,reference:a.reference?JSON.stringify({type:3,data:JSON.stringify(a.reference)}):void 0},b=a.reference?{fw:{pmsg:{st:1,ts:a.reference.ts,id:a.reference.id},rmsg:{st:1,ts:a.reference.ts,id:a.reference.id},fwLvl:a.reference.fwLvl}}:null,m;s===Xe.User?m={toIds:i.map(M=>{var S;return{clientId:h,toUid:M,ttl:(S=a.ttl)!==null&&S!==void 0?S:0}}),imei:t.imei,ttl:(c=a.ttl)!==null&&c!==void 0?c:0,msgType:"1",totalIds:i.length,msgInfo:JSON.stringify(y),decorLog:JSON.stringify(b)}:m={grids:i.map(M=>{var S;return{clientId:h,grid:M,ttl:(S=a.ttl)!==null&&S!==void 0?S:0}}),ttl:(l=a.ttl)!==null&&l!==void 0?l:0,msgType:"1",totalIds:i.length,msgInfo:JSON.stringify(y),decorLog:JSON.stringify(b)};let O=r.encodeAES(JSON.stringify(m));if(!O)throw new ce("Failed to encrypt params");let _=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:O})});return r.resolve(_)}});var Rve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.alias[0]}/api/alias/list`);return async function(a=100,i=1){let s={page:i,count:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var xve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/friend/getfriends`);return async function(a=2e4,i=1,s=Yl.Small){let c={incInvalid:1,page:i,count:a,avatar_size:s,actiontime:0,imei:t.imei},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt message");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p)}});var kve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_poll[0]}/api/group/getlg/v4`);return async function(){let a=await r.request(o,{method:"GET"});return r.resolve(a)}});var Cve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.label[0]}/api/archivedchat/list`);return async function(){let a={version:1,imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var Nve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/conv/autodelete/getConvers`);return async function(){let a={},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var Dve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.auto_reply[0]}/api/autoreply/list`);return async function(){let a={version:0,cliLang:t.language},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var Lve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/avatar-list`);return async function(a=50,i=1){let s={page:i,albumId:"0",count:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var qve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/avatar-url`);return async function(a,i=Yl.Large){Array.isArray(a)||(a=[a]);let s={friend_ids:a,avatar_size:i,srcReq:-1},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var Bve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/friend/get-bizacc`);return async function(a){let i={fid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var Uve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/catalog/list`);return async function(a){var i,s,c;let l={version_list_catalog:0,limit:(i=a?.limit)!==null&&i!==void 0?i:20,last_product_id:(s=a?.lastProductId)!==null&&s!==void 0?s:-1,page:(c=a?.page)!==null&&c!==void 0?c:0},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(o,{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h)}});var Wve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/friend/getclosedfriends`);return async function(){let a={},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var Fve=Ie()((e,t)=>()=>t);var jve=Ie()((e,t)=>function(){return t.cookie});var Gve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend_board[0]}/api/friendboard/list`);return async function(a){let i={conversationId:a,version:0,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Kve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/friend/onlines`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s,c=>{let l=c.data;if(Array.isArray(l.onlines)){for(let p of l.onlines)if(typeof p.status=="string"){let h=JSON.parse(p.status);h&&typeof h.status=="string"&&(p.status=h.status)}}return l})}});var VX;(function(e){e[e.RecommendedFriend=1]="RecommendedFriend",e[e.ReceivedFriendRequest=2]="ReceivedFriendRequest"})(VX||(VX={}));var Hve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/recommendsv2/list`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var Vve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/reqstatus`);return async function(a){let i={fid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var $ve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/avatar`);return async function(a){let i={fid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Jve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/blockedmems/list`);return async function(a,i){var s,c;let l={grid:i,page:(s=a.page)!==null&&s!==void 0?s:1,count:(c=a.count)!==null&&c!==void 0?c:50,imei:t.imei},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(r.makeURL(o,{params:p}),{method:"GET"});return r.resolve(h)}});var Xve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_cloud_message[0]}/api/cm/getrecentv2`);return async function(a,i=50){if(!a)throw new ce("Missing groupId");a.startsWith("g")&&(a=a.slice(1));let s=Math.min(Math.max(i,1),200),c=[],l=0,p=null,h=0;for(;c.length<s&&h<10;){h++;let b={groupId:a,globalMsgId:l,count:Math.min(50,s-c.length),msgIds:[],imei:t.imei,src:3},m=r.encodeAES(JSON.stringify(b));if(!m)throw new ce("Failed to encrypt params");let O=await r.request(r.makeURL(o,{params:m,nretry:0}),{method:"GET"});if(p=await r.resolve(O,M=>{let S=M.data;return typeof S=="string"&&(S=JSON.parse(S)),S}),!p||!Array.isArray(p.groupMsgs))break;for(let M of p.groupMsgs){if(c.length>=s)break;c.some(S=>S.msgId===M.msgId)||c.push(M)}let _=Number(p.lastMsgId);if(!p.hasMore||!_||_===l)break;l=_}let y=c.map(b=>new UO(t.uid,b));return Object.assign({},p||{},{groupMsgs:y})}});var Yve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/getmg-v2`);return async function(a){Array.isArray(a)||(a=[a]);let i={gridVerMap:JSON.stringify(a.reduce((l,p)=>(l[p]=0,l),{}))},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var Qve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/inv-box/inv-info`);return async function(a){var i,s;let c={grId:a.groupId,mcount:(i=a.mcount)!==null&&i!==void 0?i:10,mpage:(s=a.mpage)!==null&&s!==void 0?s:1},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p,h=>{let y=h.data,b=y.groupInfo.topic;if(typeof b.params=="string"){let m=JSON.parse(b.params);typeof m.extra=="string"&&(m.extra=JSON.parse(m.extra)),b.params=m}return y})}});var Zve=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/inv-box/list`);return async function(a){var i,s,c,l;let p={mpage:(i=a?.mpage)!==null&&i!==void 0?i:1,page:(s=a?.page)!==null&&s!==void 0?s:0,invPerPage:(c=a?.invPerPage)!==null&&c!==void 0?c:12,mcount:(l=a?.mcount)!==null&&l!==void 0?l:10,lastGroupId:null,avatar_size:120,member_avatar_size:120},h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(r.makeURL(o,{params:h}),{method:"GET"});return r.resolve(y)}});var eIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/link/detail`);return async function(a){let i={grid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var tIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/link/ginfo`);return async function(a){var i;let s={link:a.link,avatar_size:120,member_avatar_size:120,mpage:(i=a.memberPage)!==null&&i!==void 0?i:1},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var nIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/group/members`);return async function(a){Array.isArray(a)||(a=[a]);let i={friend_pversion_map:a.map(l=>l.endsWith("_0")?l:`${l}_0`)},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(r.makeURL(o,{params:s}));return r.resolve(c)}});var iIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/hiddenconvers/get-all`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var rIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.label[0]}/api/convlabel/get`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt message");let s=await r.request(r.makeURL(o,{params:i}));return r.resolve(s,c=>{let l=c.data;return{labelData:JSON.parse(l.labelData),version:l.version,lastUpdateTime:l.lastUpdateTime}})}});var oIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/list`);return async function(a,i){var s,c;let l={group_id:i,board_type:0,page:(s=a.page)!==null&&s!==void 0?s:1,count:(c=a.count)!==null&&c!==void 0?c:20,last_id:0,last_type:0,imei:t.imei},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(r.makeURL(o,{params:p}),{method:"GET"});return r.resolve(h,y=>{let b=y.data;return b.items.forEach(m=>{if(m.boardType!=V6.Poll){let O=m.data;typeof O.params=="string"&&(O.params=JSON.parse(O.params))}}),b})}});var aIe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/oneone/list`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/listReminder`)};return async function(a,i,s=Xe.User){var c,l,p,h;let y=Object.assign({objectData:JSON.stringify(s===Xe.User?{uid:i,board_type:1,page:(c=a.page)!==null&&c!==void 0?c:1,count:(l=a.count)!==null&&l!==void 0?l:20,last_id:0,last_type:0}:{group_id:i,board_type:1,page:(p=a.page)!==null&&p!==void 0?p:1,count:(h=a.count)!==null&&h!==void 0?h:20,last_id:0,last_type:0})},s===Xe.Group&&{imei:t.imei}),b=r.encodeAES(JSON.stringify(y));if(!b)throw new ce("Failed to encrypt params");let m=await r.request(r.makeURL(o[s],{params:b}),{method:"GET"});return r.resolve(m,O=>JSON.parse(O.data))}});var sIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/profile/multiget`);return async function(a,i=Yl.Large){if(!a)throw new ce("Missing phoneNumbers");Array.isArray(a)||(a=[a]),a=a.map(p=>(p.startsWith("0")&&t.language=="vi"&&(p="84"+p.slice(1)),p));let s={phones:a,avatar_size:i,language:t.language},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var cIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/getmute`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var lIe=Ie()((e,t)=>()=>t.uid);var uIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/pending-mems/list`);return async function(a){let i={grid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var pIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/pinconvers/list`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var fIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/detail`);return async function(a){if(!a)throw new ce("Missing poll id");let i={poll_id:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var dIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/product/list`);return async function(a){var i,s,c,l;let p={catalog_id:a.catalogId,limit:(i=a.limit)!==null&&i!==void 0?i:100,version_catalog:(s=a.versionCatalog)!==null&&s!==void 0?s:0,last_product_id:(c=a.lastProductId)!==null&&c!==void 0?c:-1,page:(l=a.page)!==null&&l!==void 0?l:0},h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(o,{method:"POST",body:new URLSearchParams({params:h})});return r.resolve(y)}});var hIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/mget-qr`);return async function(a){typeof a=="string"&&(a=[a]);let i={fids:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var yIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.quick_message[0]}/api/quickmessage/list`);return async function(){let a={version:0,lang:0,imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var bIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/group/related`);return async function(a){let i=Array.isArray(a)?a:[a],s={friend_ids:JSON.stringify(i),imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var mIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/getReminder`);return async function(a){let i={eventId:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var gIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/listResponseEvent`);return async function(a){let i={eventId:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var OIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/requested/list`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var MIe=Ie()((e,t,r)=>{let o=r.makeURL("https://wpa.chat.zalo.me/api/setting/me");return async function(){let a={},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var _Ie=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.sticker[0]}/api/message/sticker/category/sticker_detail`);return async function(a){let i={cid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var AIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.sticker}/api/message/sticker`);return async function(a){if(!a)throw new ce("Missing keyword");let i={keyword:a,gif:1,guggy:0,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=new URL(o);c.pathname=c.pathname+"/suggest/stickers";let l=await r.request(r.makeURL(c.toString(),{params:s}));return r.resolve(l,p=>{let h=p.data,y=[];return h.sugg_sticker&&h.sugg_sticker.forEach(b=>y.push(b.sticker_id)),y})}});var SIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.sticker}/api/message/sticker/sticker_detail`);return async function(i){if(!i)throw new ce("Missing sticker id");if(Array.isArray(i)||(i=[i]),i.length==0)throw new ce("Missing sticker id");let s=[],c=i.map(p=>n(p));return(await Promise.allSettled(c)).forEach(p=>{p.status==="fulfilled"&&s.push(p.value)}),s};async function n(a){let i={sid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(r.makeURL(o,{params:s}));return Jm(t,c)}});var EIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/conv/getUnreadMark`);return async function(){let a={},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s,c=>{let l=c.data;return typeof l.data=="string"?{data:JSON.parse(l.data),status:l.status}:l})}});var TIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/friend/getprofiles/v2`);return async function(a,i=Yl.Small){if(!a)throw new ce("Missing user id");Array.isArray(a)||(a=[a]),a=a.map(p=>p.split("_").length>1?p:`${p}_0`);let s={phonebook_version:t.extraVer.phonebook,friend_pversion_map:a,avatar_size:i,language:t.language,show_online_status:1,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var vIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/invite/multi`);return async function(a,i){let s={grids:Array.isArray(i)?i:[i],member:a,memberType:-1,srcInteraction:2,clientLang:t.language},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var IIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/inv-box/join`);return async function(a){let i={grid:a,lang:t.language},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var wIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/link/join`);return async function(a){let i={link:a,clientLang:t.language},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var PIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.chat[0]}/keepalive`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s,void 0,!1)}});var zIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/lastOnline`);return async function(a){let i={uid:a,conv_type:1,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var RIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/leave`);return async function(a,i=!1){let s={grids:[a],imei:t.imei,silent:i?1:0,language:t.language},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var xIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/end`);return async function(a){let i={poll_id:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var kIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.file[0]}/api/message/parselink`);return async function(a){let i={link:a,version:1,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var CIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/preloadconvers/get-last-msgs`);return async function(){let a={imei:t.imei},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var NIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/reject`);return async function(a){let i={fid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var DIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/remove`);return async function(a){let i={fid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var LIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.alias[0]}/api/alias/remove`);return async function(a){let i={friendId:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var qIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/blockedmems/remove`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var BIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/admins/remove`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var UIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.quick_message[0]}/api/quickmessage/delete`);return async function(a){let s={itemIds:Array.isArray(a)?a:[a]},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var WIe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/oneone/remove`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group_board[0]}/api/board/topic/remove`)};return async function(a,i,s=Xe.User){let c=s===Xe.User?{uid:i,reminderId:a}:{grid:i,topicId:a,imei:t.imei},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var FIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/conv/removeUnreadMark`);return async function(a,i=Xe.User){let s=Date.now(),c=i===Xe.Group,l={param:JSON.stringify({[c?"convsGroup":"convsUser"]:[a],[c?"convsUser":"convsGroup"]:[],[c?"convsGroupData":"convsUserData"]:[{id:a,ts:s}],[c?"convsUserData":"convsGroupData"]:[]})},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(o,{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h,y=>{let b=y.data;return typeof b.data=="string"?{data:JSON.parse(b.data),status:b.status}:y.data})}});var jIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/kickout`);return async function(a,i){Array.isArray(a)||(a=[a]);let s={grid:i,members:a,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var GIe=Ie()((e,t)=>async function(){if(!e.listener)throw new ce("WebSocket listener is not initialized. Please call api.listener.start() first.");let o={version:1,cmd:510,subCmd:0,data:{act:"sync_request",imei:t.imei,ts:Date.now()}};return e.listener.sendWs(o,!0),{success:!0}});var KIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/hiddenconvers/reset`);return async function(){let a={},i=r.encodeAES(JSON.stringify(a));if(!i)throw new ce("Failed to encrypt params");let s=await r.request(r.makeURL(o,{params:i}),{method:"GET"});return r.resolve(s)}});var HIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/reuse-avatar`);return async function(a){let i={photoId:a,isPostSocial:0,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var $X;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.NOT_IN_PENDING_LIST=170]="NOT_IN_PENDING_LIST",e[e.ALREADY_IN_GROUP=178]="ALREADY_IN_GROUP",e[e.INSUFFICIENT_PERMISSION=166]="INSUFFICIENT_PERMISSION"})($X||($X={}));var VIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/pending-mems/review`);return async function(a,i){Array.isArray(a.members)||(a.members=[a.members]);let s={grid:i,members:a.members,isApprove:a.isApprove?1:0},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var $Ie=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.sticker[0]}/api/message/sticker/search`);return async function(a,i=50){let s={keyword:a,limit:i,srcType:0,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var JIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.zimsg[0]}/api/transfer/card`);return async function(a,i,s=Xe.User){var c;let l={binBank:a.binBank,numAccBank:a.numAccBank,nameAccBank:((c=a.nameAccBank)===null||c===void 0?void 0:c.toUpperCase())||"---",cliMsgId:Date.now().toString(),tsMsg:Date.now(),destUid:i,destType:s===Xe.Group?1:0},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(o,{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h)}});var XIe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/message/forward`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/group/forward`)};return async function(a,i,s=Xe.User){var c;let p=(await e.getQR(a.userId))[a.userId],h=Date.now().toString(),y={ttl:(c=a.ttl)!==null&&c!==void 0?c:0,msgType:6,clientId:h,msgInfo:{contactUid:a.userId,qrCodeUrl:p}};a.phoneNumber&&(y.msgInfo.phone=a.phoneNumber),s==Xe.Group?(y.visibility=0,y.grid=i):(y.toId=i,y.imei=t.imei);let b=JSON.stringify(y.msgInfo);y.msgInfo=b;let m=r.encodeAES(JSON.stringify(y));if(!m)throw new ce("Failed to encrypt params");let O=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:m})});return r.resolve(O)}});var YIe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/deliveredv2`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/deliveredv2`)};return async function(a,i,s=Xe.User){if(!i)throw new ce("messages are missing or not in a valid array format.");if(Array.isArray(i)||(i=[i]),i.length===0||i.length>pD)throw new ce("messages must contain between 1 and 50 messages.");let c=i[0].idTo;if(s===Xe.Group&&!i.every(b=>b.idTo===c))throw new ce("All messages must have the same idTo for Group thread");let l=Object.assign({seen:a?1:0,data:i.map(b=>({cmi:b.cliMsgId,gmi:b.msgId,si:b.uidFrom,di:b.idTo===t.uid?"0":b.idTo,mt:b.msgType,st:b.st||b.st===0?0:-1,at:b.at||b.at===0?0:-1,cmd:b.cmd||b.cmd===0?0:-1,ts:parseInt(`${b.ts}`)||parseInt(`${b.ts}`)===0?0:-1}))},s===Xe.User?{}:{grid:c}),p=Object.assign({msgInfos:JSON.stringify(l)},s===Xe.User?{}:{imei:t.imei}),h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:h})});return r.resolve(y)}});var QIe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/sendreq`);return async function(a,i){let s={toid:i,msg:a,reqsrc:30,imei:t.imei,language:t.language,srcParams:JSON.stringify({uidTo:i})},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var ZIe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/link`,{nretry:0}),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/sendlink`,{nretry:0})};return async function(a,i,s=Xe.User){var c;let l=await e.parseLink(a.link),p={msg:a.msg&&a.msg.trim()?a.msg.includes(a.link)?a.msg:a.msg+" "+a.link:a.link,href:l.data.href,src:l.data.src,title:l.data.title,desc:l.data.desc,thumb:l.data.thumb,type:2,media:JSON.stringify(l.data.media),ttl:(c=a.ttl)!==null&&c!==void 0?c:0,clientId:Date.now()};s==Xe.Group?(p.grid=i,p.imei=t.imei):(p.toId=i,p.mentionInfo="");let h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:h})});return r.resolve(y)}});var JX=ke(oM(),1),XX=ke(require("node:fs/promises"),1);var SDt={image:"photo_original/send?",gif:"gif?",video:"asyncfile/msg?",others:"asyncfile/msg?"};function EDt(e){let t=e;return typeof t.content=="string"?t.propertyExt:t.msgType=="chat.todo"?{properties:{color:0,size:0,type:0,subType:0,ext:'{"shouldParseLinkOrContact":0}'}}:Object.assign(Object.assign({},t.content),{thumbUrl:t.content.thumb,oriUrl:t.content.href,normalUrl:t.content.href})}function TDt(e){let t=e;return t.msgType=="chat.todo"&&typeof t.content=="object"&&typeof t.content.params=="string"?JSON.parse(t.content.params).item.content:""}var o3;(function(e){e.Bold="b",e.Italic="i",e.Underline="u",e.StrikeThrough="s",e.Red="c_db342e",e.Orange="c_f27806",e.Yellow="c_f7b503",e.Green="c_15a85f",e.Small="f_13",e.Big="f_18",e.UnorderedList="lst_1",e.OrderedList="lst_2",e.Indent="ind_$"})(o3||(o3={}));var a3;(function(e){e[e.Default=0]="Default",e[e.Important=1]="Important",e[e.Urgent=2]="Urgent"})(a3||(a3={}));var ewe=Ie()((e,t,r)=>{let o={message:{[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message`,{nretry:0}),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group`,{nretry:0})},attachment:{[Xe.User]:`${e.zpwServiceMap.file[0]}/api/message/`,[Xe.Group]:`${e.zpwServiceMap.file[0]}/api/group/`}},{sharefile:n}=t.settings.features;function a(O){return O>n.max_file}function i(O){return O>n.max_size_share_file_v3*1024*1024}function s(){return Date.now()}async function c(O){Array.isArray(O)||(O=[O]);let _=[];for(let M of O)_.push((async()=>{let S=await r.request(M.url,{method:"POST",body:M.body,headers:M.headers});return await Jm(t,S)})());return await Promise.all(_)}async function l(O,_){let M=new JX.default,S=typeof O=="string"?await XX.default.readFile(O):O.data;M.append("fileContent",S,{filename:"blob",contentType:"image/png"});let v={clientId:Date.now(),imei:t.imei},T=r.encodeAES(JSON.stringify(v));if(!T)throw new ce("Failed to encrypt message");let w=await r.request(r.makeURL(_+"upthumb?",{params:T}),{method:"POST",headers:M.getHeaders(),body:M.getBuffer()});return await Jm(t,w)}function p(O,_,M){let S=0,v=Array.isArray(M)&&O==Xe.Group?M.filter(T=>T.pos>=0&&T.uid&&T.len>0).map(T=>(S+=T.len,{pos:T.pos,uid:T.uid,len:T.len,type:T.uid=="-1"?1:0})):[];if(S>_.length)throw new ce("Invalid mentions: total mention characters exceed message length");return{mentionsFinal:v,msgFinal:_}}function h(O,_){_&&Object.assign(O,{textProperties:JSON.stringify({styles:_.map(M=>{var S;let v=Object.assign(Object.assign({},M),{indentSize:void 0,st:M.st==o3.Indent?o3.Indent.replace(/\$/g,`${(S=M.indentSize)!==null&&S!==void 0?S:1}0`):M.st});return ky(v),v}),ver:0})})}function y(O,_){(_==a3.Important||_==a3.Urgent)&&Object.assign(O,{metaData:{urgency:_}})}async function b({msg:O,styles:_,urgency:M,mentions:S,quote:v,ttl:T},w,P){if(!O||O.length==0)throw new ce("Missing message content");let C=P==Xe.Group,{mentionsFinal:R,msgFinal:N}=p(P,O,S);if(O=N,v){if(typeof v.content!="string"&&v.msgType=="webchat")throw new ce("This kind of `webchat` quote type is not available");if(v.msgType=="group.poll")throw new ce("The `group.poll` quote type is not available")}let W=R.length>0&&C,k=v?{toid:C?void 0:w,grid:C?w:void 0,message:O,clientId:Date.now(),mentionInfo:W?JSON.stringify(R):void 0,qmsgOwner:v.uidFrom,qmsgId:v.msgId,qmsgCliId:v.cliMsgId,qmsgType:I_e(v.msgType),qmsgTs:v.ts,qmsg:typeof v.content=="string"?v.content:TDt(v),imei:C?void 0:t.imei,visibility:C?0:void 0,qmsgAttach:C?JSON.stringify(EDt(v)):void 0,qmsgTTL:v.ttl,ttl:T??0}:{message:O,clientId:Date.now(),mentionInfo:W?JSON.stringify(R):void 0,imei:C?void 0:t.imei,ttl:T??0,visibility:C?0:void 0,toid:C?void 0:w,grid:C?w:void 0};h(k,_),y(k,M),ky(k);let K=r.encodeAES(JSON.stringify(k));if(!K)throw new ce("Failed to encrypt message");let U=new URL(o.message[P]);return v?U.pathname=U.pathname+"/quote":U.pathname=U.pathname+"/"+(C?k.mentionInfo?"mention":"sendmsg":"sms"),{url:U.toString(),body:new URLSearchParams({params:K})}}async function m({msg:O,attachments:_,mentions:M,quote:S,ttl:v,urgency:T},w,P){if(!_)throw new ce("Missing attachments");if(Array.isArray(_)||(_=[_]),_.length==0)throw new ce("Missing attachments");let C=_[0],N=xy(typeof C=="string"?C:C.filename),W=_.length==1,k=P==Xe.Group,K=W&&["jpg","jpeg","png","webp"].includes(N),U=_.filter(xe=>xy(typeof xe=="string"?xe:xe.filename)=="gif");_=_.filter(xe=>xy(typeof xe=="string"?xe:xe.filename)!="gif");let q=_.length==0?[]:await e.uploadAttachment(_,w,P),H=[],ee=0,Ae=s().toString(),{mentionsFinal:ue,msgFinal:se}=p(P,O,M);O=se;let de=ue.length>0&&k&&_.length==1,Oe=_.length>1,Te=Date.now();for(let xe of q){let je;switch(xe.fileType){case"image":{je={fileType:xe.fileType,params:{photoId:xe.photoId,clientId:(Te++).toString(),desc:O,width:xe.width,height:xe.height,toid:k?void 0:String(w),grid:k?String(w):void 0,rawUrl:xe.normalUrl,hdUrl:xe.hdUrl,thumbUrl:xe.thumbUrl,oriUrl:k?xe.normalUrl:void 0,normalUrl:k?void 0:xe.normalUrl,hdSize:String(xe.totalSize),zsource:-1,ttl:v??0,jcp:'{"convertible":"jxl"}',groupLayoutId:Oe?Ae:void 0,isGroupLayout:Oe?1:void 0,idInGroup:Oe?ee++:void 0,totalItemInGroup:Oe?q.length:void 0,extMsgProp:Oe?`{"groupMediaMsg":{"groupLayoutId":"${Ae}"}}`:void 0,mentionInfo:de&&K&&!S?JSON.stringify(ue):void 0},body:new URLSearchParams};break}case"video":{je={fileType:xe.fileType,params:{fileId:xe.fileId,checksum:xe.checksum,checksumSha:"",extention:xy(xe.fileName),totalSize:xe.totalSize,fileName:xe.fileName,clientId:xe.clientFileId,fType:1,fileCount:0,fdata:"{}",toid:k?void 0:String(w),grid:k?String(w):void 0,fileUrl:xe.fileUrl,zsource:-1,ttl:v??0},body:new URLSearchParams};break}case"others":{je={fileType:xe.fileType,params:{fileId:xe.fileId,checksum:xe.checksum,checksumSha:"",extention:xy(xe.fileName),totalSize:xe.totalSize,fileName:xe.fileName,clientId:xe.clientFileId,fType:1,fileCount:0,fdata:"{}",toid:k?void 0:String(w),grid:k?String(w):void 0,fileUrl:xe.fileUrl,zsource:-1,ttl:v??0},body:new URLSearchParams};break}}y(je.params,T),ky(je.params);let Z=r.encodeAES(JSON.stringify(je.params));if(!Z)throw new ce("Failed to encrypt message");je.body.append("params",Z),H.push(je)}for(let xe of U){let je=typeof xe=="string",Z=je?await v_e(t,xe):Object.assign(Object.assign({},xe.metadata),{fileName:xe.filename});if(i(Z.totalSize))throw new ce(`File ${je?Iw(xe):xe.filename} size exceed maximum size of ${n.max_size_share_file_v3}MB`);let pe=await l(xe,o.attachment[Xe.User]),he=new JX.default;he.append("chunkContent",je?await XX.default.readFile(xe):xe.data,{filename:je?Iw(xe):xe.filename,contentType:"application/octet-stream"});let V={clientId:Date.now().toString(),fileName:Z.fileName,totalSize:Z.totalSize,width:Z.width,height:Z.height,msg:O,type:1,ttl:v??0,visibility:k?0:void 0,toid:k?void 0:w,grid:k?w:void 0,thumb:pe.url,checksum:(await hD(xe,Z.totalSize)).data,totalChunk:1,chunkId:1};y(V,T),ky(V);let re=r.encodeAES(JSON.stringify(V));if(!re)throw new ce("Failed to encrypt message");H.push({query:{params:re,type:"1"},body:he.getBuffer(),headers:he.getHeaders(),fileType:"gif"})}let _e=[];for(let xe of H)_e.push({url:r.makeURL(o.attachment[P]+SDt[xe.fileType],Object.assign({nretry:"0"},xe.query||{})),body:xe.body,headers:xe.fileType=="gif"?xe.headers:{}});return _e}return async function(_,M,S=Xe.User){if(!_)throw new ce("Missing message content");if(!M)throw new ce("Missing threadId");typeof _=="string"&&(_={msg:_});let{msg:v,attachments:T,mentions:w}=_,{quote:P,ttl:C,styles:R,urgency:N}=_;if(T&&!Array.isArray(T)&&(T=[T]),!v&&(!T||T&&T.length==0))throw new ce("Missing message content");if(T&&a(T.length))throw new ce("Exceed maximum file of "+n.max_file);let W={message:null,attachment:[]};if(T&&T.length>0){let k=xy(typeof T[0]=="string"?T[0]:T[0].filename);(!(T.length==1&&["jpg","jpeg","png","webp"].includes(k))&&v.length>0||v.length>0&&P)&&(await b(_,M,S).then(async H=>{W.message=(await c(H))[0]}),v="",w=void 0);let q=await m({msg:v,mentions:w,attachments:T,quote:P,ttl:C,styles:R,urgency:N},M,S);W.attachment=await c(q),v=""}if(v.length>0){let k=await b(_,M,S);W.message=(await c(k))[0]}return W}});var Kw;(function(e){e[e.Sensitive=1]="Sensitive",e[e.Annoy=2]="Annoy",e[e.Fraud=3]="Fraud",e[e.Other=0]="Other"})(Kw||(Kw={}));var twe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.profile[0]}/api/report/abuse-v2`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/reportabuse`)};return async function(a,i,s=Xe.User){let c=s==Xe.User?{idTo:i,objId:"person.profile",reason:a.reason.toString(),content:a.reason==Kw.Other?a.content:void 0}:{uidTo:i,type:14,reason:a.reason,content:a.reason==Kw.Other?a.content:"",imei:t.imei};ky(c);let l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var nwe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/seenv2`,{nretry:0}),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/seenv2`,{nretry:0})};return async function(a,i=Xe.User){if(!a)throw new ce("messages are missing or not in a valid array format.");if(Array.isArray(a)||(a=[a]),a.length===0||a.length>pD)throw new ce("messages must contain between 1 and 50 messages.");let s=i===Xe.Group,c=s?a[0].idTo:a[0].uidFrom,l={data:a.map(b=>{if((s?b.idTo:b.uidFrom)!==c)throw new ce("All messages must belong to the same thread.");return{cmi:b.cliMsgId,gmi:b.msgId,si:b.uidFrom,di:b.idTo===t.uid?"0":b.idTo,mt:b.msgType,st:b.st||b.st===0?0:-1,at:b.at||b.at===0?0:-1,cmd:b.cmd||b.cmd===0?0:-1,ts:parseInt(`${b.ts}`)||parseInt(`${b.ts}`)===0?0:-1}}),[s?"grid":"senderId"]:c},p=Object.assign({msgInfos:JSON.stringify(l)},s?{imei:t.imei}:{}),h=r.encodeAES(JSON.stringify(p));if(!h)throw new ce("Failed to encrypt params");let y=await r.request(o[i],{method:"POST",body:new URLSearchParams({params:h})});return r.resolve(y)}});var iwe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/sticker`,{nretry:"0"}),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/sticker`,{nretry:"0"})};return async function(a,i,s=Xe.User){if(!a)throw new ce("Missing sticker");if(!i)throw new ce("Missing threadId");if(!a.id)throw new ce("Missing sticker id");if(a.cateId===void 0||a.cateId===null)throw new ce("Missing sticker cateId");if(!a.type)throw new ce("Missing sticker type");let c=s===Xe.Group,l={stickerId:a.id,cateId:a.cateId,type:a.type,clientId:Date.now(),imei:t.imei,zsource:101,toid:c?void 0:i,grid:c?i:void 0};ky(l);let p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt message");let h=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h)}});var rwe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/typing`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/typing`)};return async function(a,i=Xe.User,s=$6.User){if(!a)throw new ce("Missing threadId");let c=Object.assign(Object.assign({[i===Xe.User?"toid":"grid"]:a},i===Xe.User?{destType:s}:{}),{imei:t.imei}),l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o[i],{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var owe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/message/forward`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/group/forward`)};return async function(a,i,s=Xe.User){var c,l,p,h,y,b,m,O,_,M;let S=0,v=Date.now();try{let C=await r.request(a.videoUrl,{method:"HEAD"},!0);C.ok&&(S=parseInt(C.headers.get("content-length")||"0"))}catch(C){throw new ce(`Unable to get video content: ${C instanceof Error?C.message:String(C)}`)}let T=s===Xe.User?{toId:i,clientId:String(v),ttl:(c=a.ttl)!==null&&c!==void 0?c:0,zsource:704,msgType:5,msgInfo:JSON.stringify({videoUrl:a.videoUrl,thumbUrl:a.thumbnailUrl,duration:(l=a.duration)!==null&&l!==void 0?l:0,width:(p=a.width)!==null&&p!==void 0?p:1280,height:(h=a.height)!==null&&h!==void 0?h:720,fileSize:S,properties:{color:-1,size:-1,type:1003,subType:0,ext:{sSrcType:-1,sSrcStr:"",msg_warning_type:0}},title:(y=a.msg)!==null&&y!==void 0?y:""}),imei:t.imei}:{grid:i,visibility:0,clientId:String(v),ttl:(b=a.ttl)!==null&&b!==void 0?b:0,zsource:704,msgType:5,msgInfo:JSON.stringify({videoUrl:a.videoUrl,thumbUrl:a.thumbnailUrl,duration:(m=a.duration)!==null&&m!==void 0?m:0,width:(O=a.width)!==null&&O!==void 0?O:1280,height:(_=a.height)!==null&&_!==void 0?_:720,fileSize:S,properties:{color:-1,size:-1,type:1003,subType:0,ext:{sSrcType:-1,sSrcStr:"",msg_warning_type:0}},title:(M=a.msg)!==null&&M!==void 0?M:""}),imei:t.imei};if(s!==Xe.User&&s!==Xe.Group)throw new ce("Thread type is invalid");let w=r.encodeAES(JSON.stringify(T));if(!w)throw new ce("Failed to encrypt params");let P=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:w})});return r.resolve(P)}});var awe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/message/forward`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.file[0]}/api/group/forward`)};return async function(a,i,s=Xe.User){var c,l;let p=null,h=Date.now().toString();try{let O=await r.request(a.voiceUrl,{method:"HEAD"},!0);O.ok&&(p=parseInt(O.headers.get("content-length")||"0"))}catch(O){throw new ce(`Unable to get voice content: ${O instanceof Error?O.message:String(O)}`)}let y=s===Xe.User?{toId:i,ttl:(c=a.ttl)!==null&&c!==void 0?c:0,zsource:-1,msgType:3,clientId:h,msgInfo:JSON.stringify({voiceUrl:a.voiceUrl,m4aUrl:a.voiceUrl,fileSize:p??0}),imei:t.imei}:{grid:i,visibility:0,ttl:(l=a.ttl)!==null&&l!==void 0?l:0,zsource:-1,msgType:3,clientId:h,msgInfo:JSON.stringify({voiceUrl:a.voiceUrl,m4aUrl:a.voiceUrl,fileSize:p??0}),imei:t.imei};if(s!==Xe.User&&s!==Xe.Group)throw new ce("Thread type is invalid");let b=r.encodeAES(JSON.stringify(y));if(!b)throw new ce("Failed to encrypt params");let m=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:b})});return r.resolve(m)}});var swe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/hiddenconvers/add-remove`);return async function(a,i,s=Xe.User){if(i=Array.isArray(i)?i:[i],i.length===0)throw new ce("threadId is required");let c=s===Xe.Group?1:0,l={[a?"add_threads":"del_threads"]:JSON.stringify(i.map(y=>({thread_id:y,is_group:c}))),[a?"del_threads":"add_threads"]:"[]",imei:t.imei},p=r.encodeAES(JSON.stringify(l));if(!p)throw new ce("Failed to encrypt params");let h=await r.request(o,{method:"POST",body:new URLSearchParams({params:p})});return r.resolve(h)}});var s3;(function(e){e[e.ONE_HOUR=3600]="ONE_HOUR",e[e.FOUR_HOURS=14400]="FOUR_HOURS",e[e.FOREVER=-1]="FOREVER",e.UNTIL_8AM="until8AM"})(s3||(s3={}));var Hw;(function(e){e[e.MUTE=1]="MUTE",e[e.UNMUTE=3]="UNMUTE"})(Hw||(Hw={}));var cwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/setmute`);return async function(a={},i,s=Xe.User){let{duration:c=s3.FOREVER,action:l=Hw.MUTE}=a,p;if(l===Hw.UNMUTE)p=-1;else if(c===s3.FOREVER)p=-1;else if(c===s3.UNTIL_8AM){let m=new Date,O=new Date(m);O.setHours(8,0,0,0),m.getHours()>=8&&O.setDate(O.getDate()+1),p=Math.floor((O.getTime()-m.getTime())/1e3)}else p=c;let h={toid:i,duration:p,action:l,startTime:Math.floor(Date.now()/1e3),muteType:s===Xe.User?1:2,imei:t.imei},y=r.encodeAES(JSON.stringify(h));if(!y)throw new ce("Failed to encrypt params");let b=await r.request(o,{method:"POST",body:new URLSearchParams({params:y})});return r.resolve(b)}});var lwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/pinconvers/updatev2`);return async function(a,i,s=Xe.User){typeof i=="string"&&(i=[i]);let c={actionType:a?1:2,conversations:s==Xe.Group?i.map(h=>`g${h}`):i.map(h=>`u${h}`)},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o,{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var uwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/share`);return async function(a){let i={poll_id:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var pwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/unblock`);return async function(a){let i={fid:a,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var fwe=Ie()((e,t,r)=>{let o={[Xe.User]:r.makeURL(`${e.zpwServiceMap.chat[0]}/api/message/undo`),[Xe.Group]:r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/undomsg`)};return async function(a,i,s=Xe.User){let c={msgId:a.msgId,clientId:Date.now(),cliMsgIdUndo:a.cliMsgId};s==Xe.Group?(c.grid=i,c.visibility=0,c.imei=t.imei):c.toid=i;let l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt message");let p=await r.request(o[s],{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var dwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.friend[0]}/api/friend/undo`);return async function(a){let i={fid:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var hwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/ping`),n=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/deactive`);return async function(i){let s={status:i?1:0,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=i?o:n,p=await r.request(r.makeURL(l,{params:c}),{method:"GET"});return r.resolve(p)}});var ywe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.label[0]}/api/archivedchat/update`);return async function(a,i){Array.isArray(i)||(i=[i]);let s={actionType:a?0:1,ids:i,imei:t.imei,version:Date.now()},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt message");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var YX;(function(e){e[e.NO_DELETE=0]="NO_DELETE",e[e.ONE_DAY=864e5]="ONE_DAY",e[e.SEVEN_DAYS=6048e5]="SEVEN_DAYS",e[e.FOURTEEN_DAYS=12096e5]="FOURTEEN_DAYS"})(YX||(YX={}));var bwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/conv/autodelete/updateConvers`);return async function(a,i,s=Xe.User){let c={threadId:i,isGroup:s===Xe.Group?1:0,ttl:a,clientLang:t.language},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o,{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var mwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.auto_reply[0]}/api/autoreply/update`);return async function(a){let i=Array.isArray(a.uids)?a.uids:[a.uids],s=a.scope===2||a.scope===3?i:[],c={cliLang:t.language,id:a.id,enable:a.isEnable,content:a.content,startTime:a.startTime,endTime:a.endTime,recurrence:["RRULE:FREQ=DAILY;"],scope:a.scope,uids:s},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(o,{method:"POST",body:new URLSearchParams({params:l})});return r.resolve(p)}});var gwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/catalog/update`);return async function(a){let i={catalog_id:a.catalogId,catalog_name:a.catalogName,catalog_photo:""},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var Owe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/setting/update`);return async function(a,i){let s={blockName:a.blockName?1:0,signAdminMsg:a.signAdminMsg?1:0,setTopicOnly:a.setTopicOnly?1:0,enableMsgHistory:a.enableMsgHistory?1:0,joinAppr:a.joinAppr?1:0,lockCreatePost:a.lockCreatePost?1:0,lockCreatePoll:a.lockCreatePoll?1:0,lockSendMsg:a.lockSendMsg?1:0,lockViewMember:a.lockViewMember?1:0,bannFeature:0,dirtyMedia:0,banDuration:0,blocked_members:[],grid:i,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var Mwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.conversation[0]}/api/hiddenconvers/update-pin`),n=/^\d{4}$/;return async function(i){if(!n.test(i))throw new ce("Pin must be a 4-digit number between 0000-9999");let c={new_pin:k_e(i),imei:t.imei},l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p)}});var _we=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.label[0]}/api/convlabel/update`);return async function(a){let i={labelData:JSON.stringify(a.labelData),version:a.version,imei:t.imei},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt message");let c=await r.request(o,{method:"POST",body:new URLSearchParams({params:s})}),l=await r.resolve(c);return{labelData:JSON.parse(l.labelData),version:l.version,lastUpdateTime:l.lastUpdateTime}}});var YD;(function(e){e.VI="VI",e.EN="EN"})(YD||(YD={}));var Awe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/updatelang`);return async function(a=YD.VI){let i={language:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Swe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.catalog[0]}/api/prodcatalog/product/update`);return async function(a){let i=a.product_photos||[];if(a.files&&a.files.length==0){if(a.files.length>5)throw new ce("Maximum 5 media files are allowed");for(let p of a.files){let h=await e.uploadProductPhoto({file:p}),y=h.normalUrl||h.hdUrl;i.push(y)}}if(i.length>5)throw new ce("Maximum 5 media files are allowed");let s={product_id:a.productId,product_name:a.productName,price:a.price,description:a.description,product_photos:i,catalog_id:a.catalogId,currency_unit:"\u20AB",create_time:a.createTime},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(o,{method:"POST",body:new URLSearchParams({params:c})});return r.resolve(l)}});var Ewe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/update`);return async function(a){var i,s,c,l,p;let h={profile:JSON.stringify({name:a.profile.name,dob:a.profile.dob,gender:a.profile.gender}),biz:JSON.stringify({desc:(i=a.biz)===null||i===void 0?void 0:i.description,cate:(s=a.biz)===null||s===void 0?void 0:s.cate,addr:(c=a.biz)===null||c===void 0?void 0:c.address,website:(l=a.biz)===null||l===void 0?void 0:l.website,email:(p=a.biz)===null||p===void 0?void 0:p.email}),language:t.language},y=r.encodeAES(JSON.stringify(h));if(!y)throw new ce("Failed to encrypt params");let b=await r.request(o,{method:"POST",body:new URLSearchParams({params:y})});return r.resolve(b)}});var Twe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.profile[0]}/api/social/profile/status`);return async function(a){let i={status:a},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"POST",body:new URLSearchParams({params:s})});return r.resolve(c)}});var vwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.quick_message[0]}/api/quickmessage/update`);return async function(a,i){let s=a.media?1:0,c={itemId:i,keyword:a.keyword,message:{title:a.title,params:""},type:s};if(s===1){if(!a.media)throw new ce("Media is required");let h=await e.uploadProductPhoto({file:a.media}),y=h.photoId,b=h.thumbUrl,m=h.normalUrl,O=h.hdUrl;c.media={items:[{type:0,photoId:y,title:"",width:"",height:"",previewThumb:b,rawUrl:m||O,thumbUrl:b,normalUrl:m||O,hdUrl:O||m}]}}let l=r.encodeAES(JSON.stringify(c));if(!l)throw new ce("Failed to encrypt params");let p=await r.request(r.makeURL(o,{params:l}),{method:"GET"});return r.resolve(p)}});var QX;(function(e){e.ViewBirthday="view_birthday",e.ShowOnlineStatus="show_online_status",e.DisplaySeenStatus="display_seen_status",e.ReceiveMessage="receive_message",e.AcceptCall="accept_stranger_call",e.AddFriendViaPhone="add_friend_via_phone",e.AddFriendViaQR="add_friend_via_qr",e.AddFriendViaGroup="add_friend_via_group",e.AddFriendViaContact="add_friend_via_contact",e.DisplayOnRecommendFriend="display_on_recommend_friend",e.ArchivedChat="archivedChatStatus",e.QuickMessage="quickMessageStatus"})(QX||(QX={}));var Iwe=Ie()((e,t,r)=>{let o=r.makeURL("https://wpa.chat.zalo.me/api/setting/update");return async function(a,i){let s={[a]:i},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var wwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/group/upgrade/community`);return async function(a){let i={grId:a,language:t.language},s=r.encodeAES(JSON.stringify(i));if(!s)throw new ce("Failed to encrypt params");let c=await r.request(r.makeURL(o,{params:s}),{method:"GET"});return r.resolve(c)}});var Pwe=ke(oM(),1),ZX=ke(require("node:fs"),1);var vDt={image:"photo_original/upload",video:"asyncfile/upload",others:"asyncfile/upload"},zwe=Ie()((e,t,r)=>{let o=`${e.zpwServiceMap.file[0]}/api`,{sharefile:n}=t.settings.features;function a(c){return c>n.max_file}function i(c){return c>n.max_size_share_file_v3*1024*1024}function s(c){return n.restricted_ext_file.indexOf(c)==-1}return async function(l,p,h=Xe.User){if(!l)throw new ce("Missing sources");if(Array.isArray(l)||(l=[l]),l.length==0)throw new ce("Missing sources");if(a(l.length))throw new ce("Exceed maximum file of "+n.max_file);if(!p)throw new ce("Missing threadId");let y=t.settings.features.sharefile.chunk_size_file,b=h==Xe.Group,m=[],O=`${o}/${b?"group":"message"}/`,_=b?"11":"2",M=Date.now();for(let T of l){let w=typeof T=="string",P=typeof T=="object"&&T.data instanceof Buffer;if(!w&&!P)throw new ce("Invalid source type");if(!w&&!T.filename)throw new ce("Missing filename");if(w&&!ZX.default.existsSync(T))throw new ce("File not found");let C=xy(w?T:T.filename).toLowerCase(),R=w?Iw(T):T.filename;if(s(C)==!1)throw new ce(`File extension "${C}" is not allowed`);let N={filePath:w?T:T.filename,chunkContent:[],params:{},source:T};switch(b?N.params.grid=p:N.params.toid=p,C){case"jpg":case"jpeg":case"png":case"webp":{let k=w?await $m(t,T):Object.assign(Object.assign({},T.metadata),{fileName:R});if(i(k.totalSize))throw new ce(`File ${R} size exceed maximum size of ${n.max_size_share_file_v3}MB`);N.fileData=k,N.fileType="image",N.params.totalChunk=Math.ceil(N.fileData.totalSize/y),N.params.fileName=R,N.params.clientId=M++,N.params.totalSize=k.totalSize,N.params.imei=t.imei,N.params.isE2EE=0,N.params.jxl=0,N.params.chunkId=1;break}case"mp4":{let k=w?await qJ(T):T.metadata.totalSize;if(i(k))throw new ce(`File ${R} size exceed maximum size of ${n.max_size_share_file_v3}MB`);N.fileType="video",N.fileData={fileName:R,totalSize:k},N.params.totalChunk=Math.ceil(N.fileData.totalSize/y),N.params.fileName=R,N.params.clientId=M++,N.params.totalSize=k,N.params.imei=t.imei,N.params.isE2EE=0,N.params.jxl=0,N.params.chunkId=1;break}default:{let k=w?await qJ(T):T.metadata.totalSize;if(i(k))throw new ce(`File ${R} size exceed maximum size of ${n.max_size_share_file_v3}MB`);N.fileType="others",N.fileData={fileName:R,totalSize:k},N.params.totalChunk=Math.ceil(N.fileData.totalSize/y),N.params.fileName=R,N.params.clientId=M++,N.params.totalSize=k,N.params.imei=t.imei,N.params.isE2EE=0,N.params.jxl=0,N.params.chunkId=1;break}}let W=w?await ZX.default.promises.readFile(T):T.data;for(let k=0;k<N.params.totalChunk;k++){let K=new Pwe.default,U=W.subarray(k*y,(k+1)*y);K.append("chunkContent",U,{filename:R,contentType:"application/octet-stream"}),N.chunkContent[k]=K}m.push(N)}let S=[],v=[];for(let T=0;T<m.length;T++){let w=m[T];for(let P=0;P<w.params.totalChunk;P++){let C=r.encodeAES(JSON.stringify(w.params));if(!C)throw new ce("Failed to encrypt message");S.push(r.request(r.makeURL(O+vDt[w.fileType],{type:_,params:C}),{method:"POST",headers:w.chunkContent[P].getHeaders(),body:w.chunkContent[P].getBuffer()}).then(async R=>{let N=await Jm(t,R);N&&N.fileId!="-1"&&N.photoId!="-1"&&await new Promise(W=>{if(w.fileType=="video"||w.fileType=="others"){let k=async K=>{let U=Object.assign(Object.assign(Object.assign({fileType:w.fileType},N),K),{totalSize:w.fileData.totalSize,fileName:w.fileData.fileName,checksum:(await hD(w.source,w.fileData.totalSize)).data});v[T]=U,W()};t.uploadCallbacks.set(N.fileId.toString(),k)}if(w.fileType=="image"){let k={fileType:"image",width:w.fileData.width,height:w.fileData.height,totalSize:w.fileData.totalSize,hdSize:w.fileData.totalSize,finished:N.finished,normalUrl:N.normalUrl,hdUrl:N.hdUrl,thumbUrl:N.thumbUrl,chunkId:N.chunkId,photoId:N.photoId,clientFileId:N.clientFileId};v[T]=k,W()}})})),w.params.chunkId++}}return await Promise.all(S),v}});var Rwe=ke(require("node:fs"),1),xwe=ke(oM(),1);var kwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.file[0]}/api/product/upload/photo`);return async function(a){let i=typeof a.file=="string",c=(i?await $m(t,a.file):a.file.metadata).totalSize||0,l=i?await Rwe.default.promises.readFile(a.file):a.file.data,p=new xwe.default;p.append("chunkContent",l,{filename:"undefined",contentType:"application/octet-stream"});let h={totalChunk:1,fileName:`Base64_Img_Picker_${Date.now()}.jpg`,clientId:Date.now(),totalSize:c,imei:t.imei,chunkId:1,toid:t.loginInfo.send2me_id,featureId:1},y=r.encodeAES(JSON.stringify(h));if(!y)throw new ce("Failed to encrypt params");let b=await r.request(r.makeURL(o,{params:y}),{method:"POST",headers:p.getHeaders(),body:p.getBuffer()});return r.resolve(b)}});var Cwe=Ie()((e,t,r)=>{let o=r.makeURL(`${e.zpwServiceMap.group[0]}/api/poll/vote`);return async function(a,i){Array.isArray(i)||(i=[i]);let s={poll_id:a,option_ids:i,imei:t.imei},c=r.encodeAES(JSON.stringify(s));if(!c)throw new ce("Failed to encrypt params");let l=await r.request(r.makeURL(o,{params:c}),{method:"GET"});return r.resolve(l)}});var Nwe=Ie()((e,t,r)=>function(n,a){Object.defineProperty(e,n,{value:function(i){return a({ctx:t,utils:r,props:i})},writable:!1,enumerable:!1,configurable:!1})});var Vw=class{constructor(t,r,o){this.zpwServiceMap=r,this.listener=new UD(t,o),this.acceptFriendRequest=q3e(t,this),this.addGroupBlockedMember=B3e(t,this),this.addGroupDeputy=U3e(t,this),this.addPollOptions=W3e(t,this),this.addQuickMessage=F3e(t,this),this.addReaction=j3e(t,this),this.addUnreadMark=G3e(t,this),this.addUserToGroup=K3e(t,this),this.blockUser=H3e(t,this),this.blockViewFeed=V3e(t,this),this.changeAccountAvatar=ZTe(t,this),this.changeFriendAlias=eve(t,this),this.changeGroupAvatar=ive(t,this),this.changeGroupName=rve(t,this),this.changeGroupOwner=ove(t,this),this.createAutoReply=ave(t,this),this.createCatalog=sve(t,this),this.createGroup=cve(t,this),this.createNote=lve(t,this),this.createPoll=uve(t,this),this.createProductCatalog=pve(t,this),this.createReminder=fve(t,this),this.decryptGids=dve(t,this),this.deleteAutoReply=hve(t,this),this.deleteAvatar=yve(t,this),this.deleteCatalog=bve(t,this),this.deleteChat=mve(t,this),this.deleteGroupInviteBox=gve(t,this),this.deleteMessage=Ove(t,this),this.deleteProductCatalog=Mve(t,this),this.disableGroupLink=_ve(t,this),this.disperseGroup=Ave(t,this),this.downloadTransferSync=Sve(t,this),this.editNote=Eve(t,this),this.editReminder=Tve(t,this),this.enableGroupLink=vve(t,this),this.fetchAccountInfo=Ive(t,this),this.findUser=wve(t,this),this.findUserByUsername=Pve(t,this),this.forwardMessage=zve(t,this),this.getAliasList=Rve(t,this),this.getAllFriends=xve(t,this),this.getAllGroups=kve(t,this),this.getArchivedChatList=Cve(t,this),this.getAutoDeleteChat=Nve(t,this),this.getAutoReplyList=Dve(t,this),this.getAvatarList=Lve(t,this),this.getAvatarUrlProfile=qve(t,this),this.getBizAccount=Bve(t,this),this.getCatalogList=Uve(t,this),this.getCloseFriends=Wve(t,this),this.getContext=Fve(t,this),this.getCookie=jve(t,this),this.getFriendBoardList=Gve(t,this),this.getFriendOnlines=Kve(t,this),this.getFriendRecommendations=Hve(t,this),this.getFriendRequestStatus=Vve(t,this),this.getFullAvatar=$ve(t,this),this.getGroupBlockedMember=Jve(t,this),this.getGroupChatHistory=Xve(t,this),this.getGroupInfo=Yve(t,this),this.getGroupInviteBoxInfo=Qve(t,this),this.getGroupInviteBoxList=Zve(t,this),this.getGroupLinkDetail=eIe(t,this),this.getGroupLinkInfo=tIe(t,this),this.getGroupMembersInfo=nIe(t,this),this.getHiddenConversations=iIe(t,this),this.getLabels=rIe(t,this),this.getListBoard=oIe(t,this),this.getListReminder=aIe(t,this),this.getMultiUsersByPhones=sIe(t,this),this.getMute=cIe(t,this),this.getOwnId=lIe(t,this),this.getPendingGroupMembers=uIe(t,this),this.getPinConversations=pIe(t,this),this.getPollDetail=fIe(t,this),this.getProductCatalogList=dIe(t,this),this.getQR=hIe(t,this),this.getQuickMessageList=yIe(t,this),this.getRelatedFriendGroup=bIe(t,this),this.getReminder=mIe(t,this),this.getReminderResponses=gIe(t,this),this.getSentFriendRequest=OIe(t,this),this.getSettings=MIe(t,this),this.getStickerCategoryDetail=_Ie(t,this),this.getStickers=AIe(t,this),this.getStickersDetail=SIe(t,this),this.getUnreadMark=EIe(t,this),this.getUserInfo=TIe(t,this),this.inviteUserToGroups=vIe(t,this),this.joinGroupInviteBox=IIe(t,this),this.joinGroupLink=wIe(t,this),this.keepAlive=PIe(t,this),this.lastOnline=zIe(t,this),this.leaveGroup=RIe(t,this),this.lockPoll=xIe(t,this),this.parseLink=kIe(t,this),this.preloadConversations=CIe(t,this),this.rejectFriendRequest=NIe(t,this),this.removeFriend=DIe(t,this),this.removeFriendAlias=LIe(t,this),this.removeGroupBlockedMember=qIe(t,this),this.removeGroupDeputy=BIe(t,this),this.removeQuickMessage=UIe(t,this),this.removeReminder=WIe(t,this),this.removeUnreadMark=FIe(t,this),this.removeUserFromGroup=jIe(t,this),this.requestSyncFromPhone=GIe(t,this),this.resetHiddenConversPin=KIe(t,this),this.reuseAvatar=HIe(t,this),this.reviewPendingMemberRequest=VIe(t,this),this.searchSticker=$Ie(t,this),this.sendBankCard=JIe(t,this),this.sendCard=XIe(t,this),this.sendDeliveredEvent=YIe(t,this),this.sendFriendRequest=QIe(t,this),this.sendLink=ZIe(t,this),this.sendMessage=ewe(t,this),this.sendReport=twe(t,this),this.sendSeenEvent=nwe(t,this),this.sendSticker=iwe(t,this),this.sendTypingEvent=rwe(t,this),this.sendVideo=owe(t,this),this.sendVoice=awe(t,this),this.setHiddenConversations=swe(t,this),this.setMute=cwe(t,this),this.setPinnedConversations=lwe(t,this),this.sharePoll=uwe(t,this),this.unblockUser=pwe(t,this),this.undo=fwe(t,this),this.undoFriendRequest=dwe(t,this),this.updateActiveStatus=hwe(t,this),this.updateArchivedChatList=ywe(t,this),this.updateAutoDeleteChat=bwe(t,this),this.updateAutoReply=mwe(t,this),this.updateCatalog=gwe(t,this),this.updateGroupSettings=Owe(t,this),this.updateHiddenConversPin=Mwe(t,this),this.updateLabels=_we(t,this),this.updateLang=Awe(t,this),this.updateProductCatalog=Swe(t,this),this.updateProfile=Ewe(t,this),this.updateProfileBio=Twe(t,this),this.updateQuickMessage=vwe(t,this),this.updateSettings=Iwe(t,this),this.upgradeGroupToCommunity=wwe(t,this),this.uploadAttachment=zwe(t,this),this.uploadProductPhoto=kwe(t,this),this.votePoll=Cwe(t,this),this.custom=Nwe(t,this)}};var $w=class{constructor(t={}){this.options=t,this.enableEncryptParam=!0}parseCookies(t){let r=Array.isArray(t)?t:t.cookies;r.forEach((n,a)=>{typeof n.domain=="string"&&n.domain.startsWith(".")&&(r[a].domain=n.domain.slice(1))});let o=new eY.default.CookieJar;for(let n of r)try{let a=eY.default.Cookie.fromJSON(Object.assign(Object.assign({},n),{key:n.key||n.name}));if(a){let i=a.domain||"chat.zalo.me",s=`https://${i.startsWith(".")?i.slice(1):i}`;o.setCookieSync(a,s)}}catch(a){Hi({options:{logging:this.options.logging}}).error("Failed to set cookie:",a)}return o}validateParams(t){if(!t.imei||!t.cookie||!t.userAgent)throw new ce("Missing required params")}async login(t){let r=xJ(this.options.apiType,this.options.apiVersion);return Object.assign(r.options,this.options),this.loginCookie(r,t)}async loginCookie(t,r){await xSe(t),this.validateParams(r),t.imei=r.imei,t.cookie=this.parseCookies(r.cookie),t.userAgent=r.userAgent,t.language=r.language||"vi";let o=await B_e(t,this.enableEncryptParam),n=await U_e(t,this.enableEncryptParam),a=o?.data;if(!o||!a||!n)throw new ce("\u0110\u0103ng nh\u1EADp th\u1EA5t b\u1EA1i");if(t.secretKey=a.zpw_enk,t.uid=a.uid,t.settings=n.setttings||n.settings,t.extraVer=n.extra_ver,t.loginInfo=a,!uD(t))throw new ce("Kh\u1EDFi t\u1EA1o ng\u1EEF c\u1EA3nh th\u1EA5t b\u1EA1i.");return Hi(t).info("Logged in as",a.uid),new Vw(t,a.zpw_service_map_v3,a.zpw_ws)}async loginQR(t,r){t||(t={}),t.userAgent||(t.userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"),t.language||(t.language="vi");let o=xJ(this.options.apiType,this.options.apiVersion);Object.assign(o.options,this.options);let n=await BJ(o,t,r);if(!n)throw new ce("Unable to login with QRCode");let a=x_e(t.userAgent);return r&&r({type:dd.GotLoginInfo,data:{cookie:n.cookies,imei:a,userAgent:t.userAgent},actions:null}),this.loginCookie(o,{cookie:n.cookies,imei:a,userAgent:t.userAgent,language:t.language})}};var Eze=ke(hL()),Tze=ke(bL()),vze=ke(ML());var yze=ke(require("node:http"),1),bze=ke(require("node:https"),1),mM=ke(require("node:zlib"),1),d0=ke(require("node:stream"),1),rP=require("node:buffer");function Qqt(e){if(!/^data:/i.test(e))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');e=e.replace(/\r?\n/g,"");let t=e.indexOf(",");if(t===-1||t<=4)throw new TypeError("malformed data: URI");let r=e.substring(5,t).split(";"),o="",n=!1,a=r[0]||"text/plain",i=a;for(let p=1;p<r.length;p++)r[p]==="base64"?n=!0:r[p]&&(i+=`;${r[p]}`,r[p].indexOf("charset=")===0&&(o=r[p].substring(8)));!r[0]&&!o.length&&(i+=";charset=US-ASCII",o="US-ASCII");let s=n?"base64":"ascii",c=unescape(e.substring(t+1)),l=Buffer.from(c,s);return l.type=a,l.typeFull=i,l.charset=o,l}var qPe=Qqt;var M1=ke(require("node:stream"),1),Fy=require("node:util"),p0=require("node:buffer");Qw();AL();var Wy=class extends Error{constructor(t,r){super(t),Error.captureStackTrace(this,this.constructor),this.type=r}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var ou=class extends Wy{constructor(t,r,o){super(t,r),o&&(this.code=this.errno=o.code,this.erroredSysCall=o.syscall)}};var SL=Symbol.toStringTag,wY=e=>typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&typeof e.sort=="function"&&e[SL]==="URLSearchParams",eP=e=>e&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&/^(Blob|File)$/.test(e[SL]),VPe=e=>typeof e=="object"&&(e[SL]==="AbortSignal"||e[SL]==="EventTarget"),$Pe=(e,t)=>{let r=new URL(t).hostname,o=new URL(e).hostname;return r===o||r.endsWith(`.${o}`)},JPe=(e,t)=>{let r=new URL(t).protocol,o=new URL(e).protocol;return r===o};var d8t=(0,Fy.promisify)(M1.default.pipeline),au=Symbol("Body internals"),Td=class{constructor(t,{size:r=0}={}){let o=null;t===null?t=null:wY(t)?t=p0.Buffer.from(t.toString()):eP(t)||p0.Buffer.isBuffer(t)||(Fy.types.isAnyArrayBuffer(t)?t=p0.Buffer.from(t):ArrayBuffer.isView(t)?t=p0.Buffer.from(t.buffer,t.byteOffset,t.byteLength):t instanceof M1.default||(t instanceof hM?(t=HPe(t),o=t.type.split("=")[1]):t=p0.Buffer.from(String(t))));let n=t;p0.Buffer.isBuffer(t)?n=M1.default.Readable.from(t):eP(t)&&(n=M1.default.Readable.from(t.stream())),this[au]={body:t,stream:n,boundary:o,disturbed:!1,error:null},this.size=r,t instanceof M1.default&&t.on("error",a=>{let i=a instanceof Wy?a:new ou(`Invalid response body while trying to fetch ${this.url}: ${a.message}`,"system",a);this[au].error=i})}get body(){return this[au].stream}get bodyUsed(){return this[au].disturbed}async arrayBuffer(){let{buffer:t,byteOffset:r,byteLength:o}=await RY(this);return t.slice(r,r+o)}async formData(){let t=this.headers.get("content-type");if(t.startsWith("application/x-www-form-urlencoded")){let o=new hM,n=new URLSearchParams(await this.text());for(let[a,i]of n)o.append(a,i);return o}let{toFormData:r}=await Promise.resolve().then(()=>(eze(),ZPe));return r(this.body,t)}async blob(){let t=this.headers&&this.headers.get("content-type")||this[au].body&&this[au].body.type||"",r=await this.arrayBuffer();return new Uy([r],{type:t})}async json(){let t=await this.text();return JSON.parse(t)}async text(){let t=await RY(this);return new TextDecoder().decode(t)}buffer(){return RY(this)}};Td.prototype.buffer=(0,Fy.deprecate)(Td.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(Td.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,Fy.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function RY(e){if(e[au].disturbed)throw new TypeError(`body used already for: ${e.url}`);if(e[au].disturbed=!0,e[au].error)throw e[au].error;let{body:t}=e;if(t===null)return p0.Buffer.alloc(0);if(!(t instanceof M1.default))return p0.Buffer.alloc(0);let r=[],o=0;try{for await(let n of t){if(e.size>0&&o+n.length>e.size){let a=new ou(`content size at ${e.url} over limit: ${e.size}`,"max-size");throw t.destroy(a),a}o+=n.length,r.push(n)}}catch(n){throw n instanceof Wy?n:new ou(`Invalid response body while trying to fetch ${e.url}: ${n.message}`,"system",n)}if(t.readableEnded===!0||t._readableState.ended===!0)try{return r.every(n=>typeof n=="string")?p0.Buffer.from(r.join("")):p0.Buffer.concat(r,o)}catch(n){throw new ou(`Could not create Buffer from response body for ${e.url}: ${n.message}`,"system",n)}else throw new ou(`Premature close of server response while trying to fetch ${e.url}`)}var m3=(e,t)=>{let r,o,{body:n}=e[au];if(e.bodyUsed)throw new Error("cannot clone body after it is used");return n instanceof M1.default&&typeof n.getBoundary!="function"&&(r=new M1.PassThrough({highWaterMark:t}),o=new M1.PassThrough({highWaterMark:t}),n.pipe(r),n.pipe(o),e[au].stream=r,n=o),n},h8t=(0,Fy.deprecate)(e=>e.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),IL=(e,t)=>e===null?null:typeof e=="string"?"text/plain;charset=UTF-8":wY(e)?"application/x-www-form-urlencoded;charset=UTF-8":eP(e)?e.type||null:p0.Buffer.isBuffer(e)||Fy.types.isAnyArrayBuffer(e)||ArrayBuffer.isView(e)?null:e instanceof hM?`multipart/form-data; boundary=${t[au].boundary}`:e&&typeof e.getBoundary=="function"?`multipart/form-data;boundary=${h8t(e)}`:e instanceof M1.default?null:"text/plain;charset=UTF-8",tze=e=>{let{body:t}=e[au];return t===null?0:eP(t)?t.size:p0.Buffer.isBuffer(t)?t.length:t&&typeof t.getLengthSync=="function"&&t.hasKnownLength&&t.hasKnownLength()?t.getLengthSync():null},nze=async(e,{body:t})=>{t===null?e.end():await d8t(t,e)};var xY=require("node:util"),nP=ke(require("node:http"),1),wL=typeof nP.default.validateHeaderName=="function"?nP.default.validateHeaderName:e=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(e)){let t=new TypeError(`Header name must be a valid HTTP token [${e}]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),t}},kY=typeof nP.default.validateHeaderValue=="function"?nP.default.validateHeaderValue:(e,t)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(t)){let r=new TypeError(`Invalid character in header content ["${e}"]`);throw Object.defineProperty(r,"code",{value:"ERR_INVALID_CHAR"}),r}},f0=class e extends URLSearchParams{constructor(t){let r=[];if(t instanceof e){let o=t.raw();for(let[n,a]of Object.entries(o))r.push(...a.map(i=>[n,i]))}else if(t!=null)if(typeof t=="object"&&!xY.types.isBoxedPrimitive(t)){let o=t[Symbol.iterator];if(o==null)r.push(...Object.entries(t));else{if(typeof o!="function")throw new TypeError("Header pairs must be iterable");r=[...t].map(n=>{if(typeof n!="object"||xY.types.isBoxedPrimitive(n))throw new TypeError("Each header pair must be an iterable object");return[...n]}).map(n=>{if(n.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...n]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return r=r.length>0?r.map(([o,n])=>(wL(o),kY(o,String(n)),[String(o).toLowerCase(),String(n)])):void 0,super(r),new Proxy(this,{get(o,n,a){switch(n){case"append":case"set":return(i,s)=>(wL(i),kY(i,String(s)),URLSearchParams.prototype[n].call(o,String(i).toLowerCase(),String(s)));case"delete":case"has":case"getAll":return i=>(wL(i),URLSearchParams.prototype[n].call(o,String(i).toLowerCase()));case"keys":return()=>(o.sort(),new Set(URLSearchParams.prototype.keys.call(o)).keys());default:return Reflect.get(o,n,a)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(t){let r=this.getAll(t);if(r.length===0)return null;let o=r.join(", ");return/^content-encoding$/i.test(t)&&(o=o.toLowerCase()),o}forEach(t,r=void 0){for(let o of this.keys())Reflect.apply(t,r,[this.get(o),o,this])}*values(){for(let t of this.keys())yield this.get(t)}*entries(){for(let t of this.keys())yield[t,this.get(t)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((t,r)=>(t[r]=this.getAll(r),t),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((t,r)=>{let o=this.getAll(r);return r==="host"?t[r]=o[0]:t[r]=o.length>1?o:o[0],t},{})}};Object.defineProperties(f0.prototype,["get","entries","forEach","values"].reduce((e,t)=>(e[t]={enumerable:!0},e),{}));function ize(e=[]){return new f0(e.reduce((t,r,o,n)=>(o%2===0&&t.push(n.slice(o,o+2)),t),[]).filter(([t,r])=>{try{return wL(t),kY(t,String(r)),!0}catch{return!1}}))}var y8t=new Set([301,302,303,307,308]),PL=e=>y8t.has(e);var Gp=Symbol("Response internals"),_1=class e extends Td{constructor(t=null,r={}){super(t,r);let o=r.status!=null?r.status:200,n=new f0(r.headers);if(t!==null&&!n.has("Content-Type")){let a=IL(t,this);a&&n.append("Content-Type",a)}this[Gp]={type:"default",url:r.url,status:o,statusText:r.statusText||"",headers:n,counter:r.counter,highWaterMark:r.highWaterMark}}get type(){return this[Gp].type}get url(){return this[Gp].url||""}get status(){return this[Gp].status}get ok(){return this[Gp].status>=200&&this[Gp].status<300}get redirected(){return this[Gp].counter>0}get statusText(){return this[Gp].statusText}get headers(){return this[Gp].headers}get highWaterMark(){return this[Gp].highWaterMark}clone(){return new e(m3(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(t,r=302){if(!PL(r))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new e(null,{headers:{location:new URL(t).toString()},status:r})}static error(){let t=new e(null,{status:0,statusText:""});return t[Gp].type="error",t}static json(t=void 0,r={}){let o=JSON.stringify(t);if(o===void 0)throw new TypeError("data is not JSON serializable");let n=new f0(r&&r.headers);return n.has("content-type")||n.set("content-type","application/json"),new e(o,{...r,headers:n})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(_1.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var fze=require("node:url"),dze=require("node:util");var rze=e=>{if(e.search)return e.search;let t=e.href.length-1,r=e.hash||(e.href[t]==="#"?"#":"");return e.href[t-r.length]==="?"?"?":""};var aze=require("node:net");function oze(e,t=!1){return e==null||(e=new URL(e),/^(about|blob|data):$/.test(e.protocol))?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}var sze=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),cze="strict-origin-when-cross-origin";function lze(e){if(!sze.has(e))throw new TypeError(`Invalid referrerPolicy: ${e}`);return e}function b8t(e){if(/^(http|ws)s:$/.test(e.protocol))return!0;let t=e.host.replace(/(^\[)|(]$)/g,""),r=(0,aze.isIP)(t);return r===4&&/^127\./.test(t)||r===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(t)?!0:e.host==="localhost"||e.host.endsWith(".localhost")?!1:e.protocol==="file:"}function g3(e){return/^about:(blank|srcdoc)$/.test(e)||e.protocol==="data:"||/^(blob|filesystem):$/.test(e.protocol)?!0:b8t(e)}function uze(e,{referrerURLCallback:t,referrerOriginCallback:r}={}){if(e.referrer==="no-referrer"||e.referrerPolicy==="")return null;let o=e.referrerPolicy;if(e.referrer==="about:client")return"no-referrer";let n=e.referrer,a=oze(n),i=oze(n,!0);a.toString().length>4096&&(a=i),t&&(a=t(a)),r&&(i=r(i));let s=new URL(e.url);switch(o){case"no-referrer":return"no-referrer";case"origin":return i;case"unsafe-url":return a;case"strict-origin":return g3(a)&&!g3(s)?"no-referrer":i.toString();case"strict-origin-when-cross-origin":return a.origin===s.origin?a:g3(a)&&!g3(s)?"no-referrer":i;case"same-origin":return a.origin===s.origin?a:"no-referrer";case"origin-when-cross-origin":return a.origin===s.origin?a:i;case"no-referrer-when-downgrade":return g3(a)&&!g3(s)?"no-referrer":a;default:throw new TypeError(`Invalid referrerPolicy: ${o}`)}}function pze(e){let t=(e.get("referrer-policy")||"").split(/[,\s]+/),r="";for(let o of t)o&&sze.has(o)&&(r=o);return r}var As=Symbol("Request internals"),iP=e=>typeof e=="object"&&typeof e[As]=="object",m8t=(0,dze.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),bM=class e extends Td{constructor(t,r={}){let o;if(iP(t)?o=new URL(t.url):(o=new URL(t),t={}),o.username!==""||o.password!=="")throw new TypeError(`${o} is an url with embedded credentials.`);let n=r.method||t.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(n)&&(n=n.toUpperCase()),!iP(r)&&"data"in r&&m8t(),(r.body!=null||iP(t)&&t.body!==null)&&(n==="GET"||n==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let a=r.body?r.body:iP(t)&&t.body!==null?m3(t):null;super(a,{size:r.size||t.size||0});let i=new f0(r.headers||t.headers||{});if(a!==null&&!i.has("Content-Type")){let l=IL(a,this);l&&i.set("Content-Type",l)}let s=iP(t)?t.signal:null;if("signal"in r&&(s=r.signal),s!=null&&!VPe(s))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let c=r.referrer==null?t.referrer:r.referrer;if(c==="")c="no-referrer";else if(c){let l=new URL(c);c=/^about:(\/\/)?client$/.test(l)?"client":l}else c=void 0;this[As]={method:n,redirect:r.redirect||t.redirect||"follow",headers:i,parsedURL:o,signal:s,referrer:c},this.follow=r.follow===void 0?t.follow===void 0?20:t.follow:r.follow,this.compress=r.compress===void 0?t.compress===void 0?!0:t.compress:r.compress,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent,this.highWaterMark=r.highWaterMark||t.highWaterMark||16384,this.insecureHTTPParser=r.insecureHTTPParser||t.insecureHTTPParser||!1,this.referrerPolicy=r.referrerPolicy||t.referrerPolicy||""}get method(){return this[As].method}get url(){return(0,fze.format)(this[As].parsedURL)}get headers(){return this[As].headers}get redirect(){return this[As].redirect}get signal(){return this[As].signal}get referrer(){if(this[As].referrer==="no-referrer")return"";if(this[As].referrer==="client")return"about:client";if(this[As].referrer)return this[As].referrer.toString()}get referrerPolicy(){return this[As].referrerPolicy}set referrerPolicy(t){this[As].referrerPolicy=lze(t)}clone(){return new e(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(bM.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var hze=e=>{let{parsedURL:t}=e[As],r=new f0(e[As].headers);r.has("Accept")||r.set("Accept","*/*");let o=null;if(e.body===null&&/^(post|put)$/i.test(e.method)&&(o="0"),e.body!==null){let s=tze(e);typeof s=="number"&&!Number.isNaN(s)&&(o=String(s))}o&&r.set("Content-Length",o),e.referrerPolicy===""&&(e.referrerPolicy=cze),e.referrer&&e.referrer!=="no-referrer"?e[As].referrer=uze(e):e[As].referrer="no-referrer",e[As].referrer instanceof URL&&r.set("Referer",e.referrer),r.has("User-Agent")||r.set("User-Agent","node-fetch"),e.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip, deflate, br");let{agent:n}=e;typeof n=="function"&&(n=n(t));let a=rze(t),i={path:t.pathname+a,method:e.method,headers:r[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:e.insecureHTTPParser,agent:n};return{parsedURL:t,options:i}};var zL=class extends Wy{constructor(t,r="aborted"){super(t,r)}};AL();PY();var g8t=new Set(["data:","http:","https:"]);async function oP(e,t){return new Promise((r,o)=>{let n=new bM(e,t),{parsedURL:a,options:i}=hze(n);if(!g8t.has(a.protocol))throw new TypeError(`node-fetch cannot load ${e}. URL scheme "${a.protocol.replace(/:$/,"")}" is not supported.`);if(a.protocol==="data:"){let m=qPe(n.url),O=new _1(m,{headers:{"Content-Type":m.typeFull}});r(O);return}let s=(a.protocol==="https:"?bze.default:yze.default).request,{signal:c}=n,l=null,p=()=>{let m=new zL("The operation was aborted.");o(m),n.body&&n.body instanceof d0.default.Readable&&n.body.destroy(m),!(!l||!l.body)&&l.body.emit("error",m)};if(c&&c.aborted){p();return}let h=()=>{p(),b()},y=s(a.toString(),i);c&&c.addEventListener("abort",h);let b=()=>{y.abort(),c&&c.removeEventListener("abort",h)};y.on("error",m=>{o(new ou(`request to ${n.url} failed, reason: ${m.message}`,"system",m)),b()}),O8t(y,m=>{l&&l.body&&l.body.destroy(m)}),process.version<"v14"&&y.on("socket",m=>{let O;m.prependListener("end",()=>{O=m._eventsCount}),m.prependListener("close",_=>{if(l&&O<m._eventsCount&&!_){let M=new Error("Premature close");M.code="ERR_STREAM_PREMATURE_CLOSE",l.body.emit("error",M)}})}),y.on("response",m=>{y.setTimeout(0);let O=ize(m.rawHeaders);if(PL(m.statusCode)){let T=O.get("Location"),w=null;try{w=T===null?null:new URL(T,n.url)}catch{if(n.redirect!=="manual"){o(new ou(`uri requested responds with an invalid redirect URL: ${T}`,"invalid-redirect")),b();return}}switch(n.redirect){case"error":o(new ou(`uri requested responds with a redirect, redirect mode is set to error: ${n.url}`,"no-redirect")),b();return;case"manual":break;case"follow":{if(w===null)break;if(n.counter>=n.follow){o(new ou(`maximum redirect reached at: ${n.url}`,"max-redirect")),b();return}let P={headers:new f0(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:m3(n),signal:n.signal,size:n.size,referrer:n.referrer,referrerPolicy:n.referrerPolicy};if(!$Pe(n.url,w)||!JPe(n.url,w))for(let R of["authorization","www-authenticate","cookie","cookie2"])P.headers.delete(R);if(m.statusCode!==303&&n.body&&t.body instanceof d0.default.Readable){o(new ou("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(m.statusCode===303||(m.statusCode===301||m.statusCode===302)&&n.method==="POST")&&(P.method="GET",P.body=void 0,P.headers.delete("content-length"));let C=pze(O);C&&(P.referrerPolicy=C),r(oP(new bM(w,P))),b();return}default:return o(new TypeError(`Redirect option '${n.redirect}' is not a valid value of RequestRedirect`))}}c&&m.once("end",()=>{c.removeEventListener("abort",h)});let _=(0,d0.pipeline)(m,new d0.PassThrough,T=>{T&&o(T)});process.version<"v12.10"&&m.on("aborted",h);let M={url:n.url,status:m.statusCode,statusText:m.statusMessage,headers:O,size:n.size,counter:n.counter,highWaterMark:n.highWaterMark},S=O.get("Content-Encoding");if(!n.compress||n.method==="HEAD"||S===null||m.statusCode===204||m.statusCode===304){l=new _1(_,M),r(l);return}let v={flush:mM.default.Z_SYNC_FLUSH,finishFlush:mM.default.Z_SYNC_FLUSH};if(S==="gzip"||S==="x-gzip"){_=(0,d0.pipeline)(_,mM.default.createGunzip(v),T=>{T&&o(T)}),l=new _1(_,M),r(l);return}if(S==="deflate"||S==="x-deflate"){let T=(0,d0.pipeline)(m,new d0.PassThrough,w=>{w&&o(w)});T.once("data",w=>{(w[0]&15)===8?_=(0,d0.pipeline)(_,mM.default.createInflate(),P=>{P&&o(P)}):_=(0,d0.pipeline)(_,mM.default.createInflateRaw(),P=>{P&&o(P)}),l=new _1(_,M),r(l)}),T.once("end",()=>{l||(l=new _1(_,M),r(l))});return}if(S==="br"){_=(0,d0.pipeline)(_,mM.default.createBrotliDecompress(),T=>{T&&o(T)}),l=new _1(_,M),r(l);return}l=new _1(_,M),r(l)}),nze(y,n).catch(o)})}function O8t(e,t){let r=rP.Buffer.from(`0\r
|
|
230
230
|
\r
|