"use strict"; (()=>{ var ct = Object.create; var be = Object.defineProperty; var gt = Object.getOwnPropertyDescriptor; var xt = Object.getOwnPropertyNames; var At = Object.getPrototypeOf , yt = Object.prototype.hasOwnProperty; var G = (e,t)=>()=>(t || e((t = { exports: {} }).exports, t), t.exports); var bt = (e,t,r,a)=>{ if (t && typeof t == "object" || typeof t == "function") for (let s of xt(t)) !yt.call(e, s) && s !== r && be(e, s, { get: ()=>t[s], enumerable: !(a = gt(t, s)) || a.enumerable }); return e } ; var he = (e,t,r)=>(r = e != null ? ct(At(e)) : {}, bt(t || !e || !e.__esModule ? be(r, "default", { value: e, enumerable: !0 }) : r, e)); var we = G((ko,ve)=>{ "use strict"; ve.exports = ()=>{ let e = {}; return e.promise = new Promise((t,r)=>{ e.resolve = t, e.reject = r } ), e } } ); var je = G((So,Te)=>{ "use strict"; var ht = we(); function vt(e, t="maxAge") { let r, a, s, p = async()=>{ if (r !== void 0) return; let x = async m=>{ s = ht(); let c = m[1][t] - Date.now(); if (c <= 0) { e.delete(m[0]), s.resolve(); return } return r = m[0], a = setTimeout(()=>{ e.delete(m[0]), s && s.resolve() } , c), typeof a.unref == "function" && a.unref(), s.promise } ; try { for (let m of e) await x(m) } catch {} r = void 0 } , g = ()=>{ r = void 0, a !== void 0 && (clearTimeout(a), a = void 0), s !== void 0 && (s.reject(void 0), s = void 0) } , y = e.set.bind(e); return e.set = (x,m)=>{ e.has(x) && e.delete(x); let c = y(x, m); return r && r === x && g(), p(), c } , p(), e } Te.exports = vt } ); var Se = G((Oo,ke)=>{ "use strict"; var wt = je() , me = class { constructor(t, r) { if (this.maxAge = t, this[Symbol.toStringTag] = "Map", this.data = new Map, wt(this.data), r) for (let[a,s] of r) this.set(a, s) } get size() { return this.data.size } clear() { this.data.clear() } delete(t) { return this.data.delete(t) } has(t) { return this.data.has(t) } get(t) { let r = this.data.get(t); if (r) return r.data } set(t, r) { return this.data.set(t, { maxAge: Date.now() + this.maxAge, data: r }), this } values() { return this.createIterator(t=>t[1].data) } keys() { return this.data.keys() } entries() { return this.createIterator(t=>[t[0], t[1].data]) } forEach(t, r) { for (let[a,s] of this.entries()) t.apply(r, [s, a, this]) } [Symbol.iterator]() { return this.entries() } *createIterator(t) { for (let r of this.data.entries()) yield t(r) } } ; ke.exports = me } ); var Pe = G((de,Ce)=>{ (function(e, t) { if (typeof define == "function" && define.amd) define("webextension-polyfill", ["module"], t); else if (typeof de < "u") t(Ce); else { var r = { exports: {} }; t(r), e.browser = r.exports } } )(typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : de, function(e) { "use strict"; if (!globalThis.chrome?.runtime?.id) throw new Error("This script should only be loaded in a browser extension."); if (typeof globalThis.browser > "u" || Object.getPrototypeOf(globalThis.browser) !== Object.prototype) { let t = "The message port closed before a response was received." , r = a=>{ let s = { alarms: { clear: { minArgs: 0, maxArgs: 1 }, clearAll: { minArgs: 0, maxArgs: 0 }, get: { minArgs: 0, maxArgs: 1 }, getAll: { minArgs: 0, maxArgs: 0 } }, bookmarks: { create: { minArgs: 1, maxArgs: 1 }, get: { minArgs: 1, maxArgs: 1 }, getChildren: { minArgs: 1, maxArgs: 1 }, getRecent: { minArgs: 1, maxArgs: 1 }, getSubTree: { minArgs: 1, maxArgs: 1 }, getTree: { minArgs: 0, maxArgs: 0 }, move: { minArgs: 2, maxArgs: 2 }, remove: { minArgs: 1, maxArgs: 1 }, removeTree: { minArgs: 1, maxArgs: 1 }, search: { minArgs: 1, maxArgs: 1 }, update: { minArgs: 2, maxArgs: 2 } }, browserAction: { disable: { minArgs: 0, maxArgs: 1, fallbackToNoCallback: !0 }, enable: { minArgs: 0, maxArgs: 1, fallbackToNoCallback: !0 }, getBadgeBackgroundColor: { minArgs: 1, maxArgs: 1 }, getBadgeText: { minArgs: 1, maxArgs: 1 }, getPopup: { minArgs: 1, maxArgs: 1 }, getTitle: { minArgs: 1, maxArgs: 1 }, openPopup: { minArgs: 0, maxArgs: 0 }, setBadgeBackgroundColor: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, setBadgeText: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, setIcon: { minArgs: 1, maxArgs: 1 }, setPopup: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, setTitle: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 } }, browsingData: { remove: { minArgs: 2, maxArgs: 2 }, removeCache: { minArgs: 1, maxArgs: 1 }, removeCookies: { minArgs: 1, maxArgs: 1 }, removeDownloads: { minArgs: 1, maxArgs: 1 }, removeFormData: { minArgs: 1, maxArgs: 1 }, removeHistory: { minArgs: 1, maxArgs: 1 }, removeLocalStorage: { minArgs: 1, maxArgs: 1 }, removePasswords: { minArgs: 1, maxArgs: 1 }, removePluginData: { minArgs: 1, maxArgs: 1 }, settings: { minArgs: 0, maxArgs: 0 } }, commands: { getAll: { minArgs: 0, maxArgs: 0 } }, contextMenus: { remove: { minArgs: 1, maxArgs: 1 }, removeAll: { minArgs: 0, maxArgs: 0 }, update: { minArgs: 2, maxArgs: 2 } }, cookies: { get: { minArgs: 1, maxArgs: 1 }, getAll: { minArgs: 1, maxArgs: 1 }, getAllCookieStores: { minArgs: 0, maxArgs: 0 }, remove: { minArgs: 1, maxArgs: 1 }, set: { minArgs: 1, maxArgs: 1 } }, devtools: { inspectedWindow: { eval: { minArgs: 1, maxArgs: 2, singleCallbackArg: !1 } }, panels: { create: { minArgs: 3, maxArgs: 3, singleCallbackArg: !0 }, elements: { createSidebarPane: { minArgs: 1, maxArgs: 1 } } } }, downloads: { cancel: { minArgs: 1, maxArgs: 1 }, download: { minArgs: 1, maxArgs: 1 }, erase: { minArgs: 1, maxArgs: 1 }, getFileIcon: { minArgs: 1, maxArgs: 2 }, open: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, pause: { minArgs: 1, maxArgs: 1 }, removeFile: { minArgs: 1, maxArgs: 1 }, resume: { minArgs: 1, maxArgs: 1 }, search: { minArgs: 1, maxArgs: 1 }, show: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 } }, extension: { isAllowedFileSchemeAccess: { minArgs: 0, maxArgs: 0 }, isAllowedIncognitoAccess: { minArgs: 0, maxArgs: 0 } }, history: { addUrl: { minArgs: 1, maxArgs: 1 }, deleteAll: { minArgs: 0, maxArgs: 0 }, deleteRange: { minArgs: 1, maxArgs: 1 }, deleteUrl: { minArgs: 1, maxArgs: 1 }, getVisits: { minArgs: 1, maxArgs: 1 }, search: { minArgs: 1, maxArgs: 1 } }, i18n: { detectLanguage: { minArgs: 1, maxArgs: 1 }, getAcceptLanguages: { minArgs: 0, maxArgs: 0 } }, identity: { launchWebAuthFlow: { minArgs: 1, maxArgs: 1 } }, idle: { queryState: { minArgs: 1, maxArgs: 1 } }, management: { get: { minArgs: 1, maxArgs: 1 }, getAll: { minArgs: 0, maxArgs: 0 }, getSelf: { minArgs: 0, maxArgs: 0 }, setEnabled: { minArgs: 2, maxArgs: 2 }, uninstallSelf: { minArgs: 0, maxArgs: 1 } }, notifications: { clear: { minArgs: 1, maxArgs: 1 }, create: { minArgs: 1, maxArgs: 2 }, getAll: { minArgs: 0, maxArgs: 0 }, getPermissionLevel: { minArgs: 0, maxArgs: 0 }, update: { minArgs: 2, maxArgs: 2 } }, pageAction: { getPopup: { minArgs: 1, maxArgs: 1 }, getTitle: { minArgs: 1, maxArgs: 1 }, hide: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, setIcon: { minArgs: 1, maxArgs: 1 }, setPopup: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, setTitle: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 }, show: { minArgs: 1, maxArgs: 1, fallbackToNoCallback: !0 } }, permissions: { contains: { minArgs: 1, maxArgs: 1 }, getAll: { minArgs: 0, maxArgs: 0 }, remove: { minArgs: 1, maxArgs: 1 }, request: { minArgs: 1, maxArgs: 1 } }, runtime: { getBackgroundPage: { minArgs: 0, maxArgs: 0 }, getPlatformInfo: { minArgs: 0, maxArgs: 0 }, openOptionsPage: { minArgs: 0, maxArgs: 0 }, requestUpdateCheck: { minArgs: 0, maxArgs: 0 }, sendMessage: { minArgs: 1, maxArgs: 3 }, sendNativeMessage: { minArgs: 2, maxArgs: 2 }, setUninstallURL: { minArgs: 1, maxArgs: 1 } }, sessions: { getDevices: { minArgs: 0, maxArgs: 1 }, getRecentlyClosed: { minArgs: 0, maxArgs: 1 }, restore: { minArgs: 0, maxArgs: 1 } }, storage: { local: { clear: { minArgs: 0, maxArgs: 0 }, get: { minArgs: 0, maxArgs: 1 }, getBytesInUse: { minArgs: 0, maxArgs: 1 }, remove: { minArgs: 1, maxArgs: 1 }, set: { minArgs: 1, maxArgs: 1 } }, managed: { get: { minArgs: 0, maxArgs: 1 }, getBytesInUse: { minArgs: 0, maxArgs: 1 } }, sync: { clear: { minArgs: 0, maxArgs: 0 }, get: { minArgs: 0, maxArgs: 1 }, getBytesInUse: { minArgs: 0, maxArgs: 1 }, remove: { minArgs: 1, maxArgs: 1 }, set: { minArgs: 1, maxArgs: 1 } } }, tabs: { captureVisibleTab: { minArgs: 0, maxArgs: 2 }, create: { minArgs: 1, maxArgs: 1 }, detectLanguage: { minArgs: 0, maxArgs: 1 }, discard: { minArgs: 0, maxArgs: 1 }, duplicate: { minArgs: 1, maxArgs: 1 }, executeScript: { minArgs: 1, maxArgs: 2 }, get: { minArgs: 1, maxArgs: 1 }, getCurrent: { minArgs: 0, maxArgs: 0 }, getZoom: { minArgs: 0, maxArgs: 1 }, getZoomSettings: { minArgs: 0, maxArgs: 1 }, goBack: { minArgs: 0, maxArgs: 1 }, goForward: { minArgs: 0, maxArgs: 1 }, highlight: { minArgs: 1, maxArgs: 1 }, insertCSS: { minArgs: 1, maxArgs: 2 }, move: { minArgs: 2, maxArgs: 2 }, query: { minArgs: 1, maxArgs: 1 }, reload: { minArgs: 0, maxArgs: 2 }, remove: { minArgs: 1, maxArgs: 1 }, removeCSS: { minArgs: 1, maxArgs: 2 }, sendMessage: { minArgs: 2, maxArgs: 3 }, setZoom: { minArgs: 1, maxArgs: 2 }, setZoomSettings: { minArgs: 1, maxArgs: 2 }, update: { minArgs: 1, maxArgs: 2 } }, topSites: { get: { minArgs: 0, maxArgs: 0 } }, webNavigation: { getAllFrames: { minArgs: 1, maxArgs: 1 }, getFrame: { minArgs: 1, maxArgs: 1 } }, webRequest: { handlerBehaviorChanged: { minArgs: 0, maxArgs: 0 } }, windows: { create: { minArgs: 0, maxArgs: 1 }, get: { minArgs: 1, maxArgs: 2 }, getAll: { minArgs: 0, maxArgs: 1 }, getCurrent: { minArgs: 0, maxArgs: 1 }, getLastFocused: { minArgs: 0, maxArgs: 1 }, remove: { minArgs: 1, maxArgs: 1 }, update: { minArgs: 2, maxArgs: 2 } } }; if (Object.keys(s).length === 0) throw new Error("api-metadata.json has not been included in browser-polyfill"); class p extends WeakMap { constructor(n, f=void 0) { super(f), this.createItem = n } get(n) { return this.has(n) || this.set(n, this.createItem(n)), super.get(n) } } let g = o=>o && typeof o == "object" && typeof o.then == "function" , y = (o,n)=>(...f)=>{ a.runtime.lastError ? o.reject(new Error(a.runtime.lastError.message)) : n.singleCallbackArg || f.length <= 1 && n.singleCallbackArg !== !1 ? o.resolve(f[0]) : o.resolve(f) } , x = o=>o == 1 ? "argument" : "arguments" , m = (o,n)=>function(l, ...v) { if (v.length < n.minArgs) throw new Error(`Expected at least ${n.minArgs} ${x(n.minArgs)} for ${o}(), got ${v.length}`); if (v.length > n.maxArgs) throw new Error(`Expected at most ${n.maxArgs} ${x(n.maxArgs)} for ${o}(), got ${v.length}`); return new Promise((O,P)=>{ if (n.fallbackToNoCallback) try { l[o](...v, y({ resolve: O, reject: P }, n)) } catch (i) { console.warn(`${o} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `, i), l[o](...v), n.fallbackToNoCallback = !1, n.noCallback = !0, O() } else n.noCallback ? (l[o](...v), O()) : l[o](...v, y({ resolve: O, reject: P }, n)) } ) } , c = (o,n,f)=>new Proxy(n,{ apply(l, v, O) { return f.call(v, o, ...O) } }) , A = Function.call.bind(Object.prototype.hasOwnProperty) , b = (o,n={},f={})=>{ let l = Object.create(null) , v = { has(P, i) { return i in o || i in l }, get(P, i, E) { if (i in l) return l[i]; if (!(i in o)) return; let h = o[i]; if (typeof h == "function") if (typeof n[i] == "function") h = c(o, o[i], n[i]); else if (A(f, i)) { let F = m(i, f[i]); h = c(o, o[i], F) } else h = h.bind(o); else if (typeof h == "object" && h !== null && (A(n, i) || A(f, i))) h = b(h, n[i], f[i]); else if (A(f, "*")) h = b(h, n[i], f["*"]); else return Object.defineProperty(l, i, { configurable: !0, enumerable: !0, get() { return o[i] }, set(F) { o[i] = F } }), h; return l[i] = h, h }, set(P, i, E, h) { return i in l ? l[i] = E : o[i] = E, !0 }, defineProperty(P, i, E) { return Reflect.defineProperty(l, i, E) }, deleteProperty(P, i) { return Reflect.deleteProperty(l, i) } } , O = Object.create(o); return new Proxy(O,v) } , u = o=>({ addListener(n, f, ...l) { n.addListener(o.get(f), ...l) }, hasListener(n, f) { return n.hasListener(o.get(f)) }, removeListener(n, f) { n.removeListener(o.get(f)) } }) , k = new p(o=>typeof o != "function" ? o : function(f) { let l = b(f, {}, { getContent: { minArgs: 0, maxArgs: 0 } }); o(l) } ) , j = new p(o=>typeof o != "function" ? o : function(f, l, v) { let O = !1, P, i = new Promise(q=>{ P = function(M) { O = !0, q(M) } } ), E; try { E = o(f, l, P) } catch (q) { E = Promise.reject(q) } let h = E !== !0 && g(E); if (E !== !0 && !h && !O) return !1; let F = q=>{ q.then(M=>{ v(M) } , M=>{ let fe; M && (M instanceof Error || typeof M.message == "string") ? fe = M.message : fe = "An unexpected error occurred", v({ __mozWebExtensionPolyfillReject__: !0, message: fe }) } ).catch(M=>{ console.error("Failed to send onMessage rejected reply", M) } ) } ; return F(h ? E : i), !0 } ) , C = ({reject: o, resolve: n},f)=>{ a.runtime.lastError ? a.runtime.lastError.message === t ? n() : o(new Error(a.runtime.lastError.message)) : f && f.__mozWebExtensionPolyfillReject__ ? o(new Error(f.message)) : n(f) } , S = (o,n,f,...l)=>{ if (l.length < n.minArgs) throw new Error(`Expected at least ${n.minArgs} ${x(n.minArgs)} for ${o}(), got ${l.length}`); if (l.length > n.maxArgs) throw new Error(`Expected at most ${n.maxArgs} ${x(n.maxArgs)} for ${o}(), got ${l.length}`); return new Promise((v,O)=>{ let P = C.bind(null, { resolve: v, reject: O }); l.push(P), f.sendMessage(...l) } ) } , I = { devtools: { network: { onRequestFinished: u(k) } }, runtime: { onMessage: u(j), onMessageExternal: u(j), sendMessage: S.bind(null, "sendMessage", { minArgs: 1, maxArgs: 3 }) }, tabs: { sendMessage: S.bind(null, "sendMessage", { minArgs: 2, maxArgs: 3 }) } } , $ = { clear: { minArgs: 1, maxArgs: 1 }, get: { minArgs: 1, maxArgs: 1 }, set: { minArgs: 1, maxArgs: 1 } }; return s.privacy = { network: { "*": $ }, services: { "*": $ }, websites: { "*": $ } }, b(a, I, s) } ; e.exports = r(chrome) } else e.exports = globalThis.browser }) } ); var pt = he(Se()); var K, Tt = new Uint8Array(16); function le() { if (!K && (K = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !K)) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); return K(Tt) } var w = []; for (let e = 0; e < 256; ++e) w.push((e + 256).toString(16).slice(1)); function Oe(e, t=0) { return (w[e[t + 0]] + w[e[t + 1]] + w[e[t + 2]] + w[e[t + 3]] + "-" + w[e[t + 4]] + w[e[t + 5]] + "-" + w[e[t + 6]] + w[e[t + 7]] + "-" + w[e[t + 8]] + w[e[t + 9]] + "-" + w[e[t + 10]] + w[e[t + 11]] + w[e[t + 12]] + w[e[t + 13]] + w[e[t + 14]] + w[e[t + 15]]).toLowerCase() } var jt = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) , ue = { randomUUID: jt }; function kt(e, t, r) { if (ue.randomUUID && !t && !e) return ue.randomUUID(); e = e || {}; let a = e.random || (e.rng || le)(); if (a[6] = a[6] & 15 | 64, a[8] = a[8] & 63 | 128, t) { r = r || 0; for (let s = 0; s < 16; ++s) t[r + s] = a[s]; return t } return Oe(a) } var D = kt; var B = he(Pe()); async function Ee(e, t, r, a) { return fetch(`https://chat.openai.com/backend-api${r}`, { method: t, headers: { "Content-Type": "application/json", Authorization: `Bearer ${e}` }, body: JSON.stringify(a) }) } async function Ie(e, t) { await Ee(e, "POST", "/conversation/message_feedback", t) } async function pe(e, t, r) { await Ee(e, "PATCH", `/conversation/${t}`, r) } function Me(e) { let t, r, a, s, p, g, y; return x(), { feed: m, reset: x }; function x() { t = !0, r = "", a = 0, s = -1, p = void 0, g = void 0, y = "" } function m(A) { r = r ? r + A : A, t && St(r) && (r = r.slice(Ne.length)), t = !1; let b = r.length , u = 0 , k = !1; for (; u < b; ) { k && (r[u] === ` ` && ++u, k = !1); let j = -1, C = s, S; for (let I = a; j < 0 && I < b; ++I) S = r[I], S === ":" && C < 0 ? C = I - u : S === "\r" ? (k = !0, j = I - u) : S === ` ` && (j = I - u); if (j < 0) { a = b - u, s = C; break } else a = 0, s = -1; c(r, u, C, j), u += j + 1 } u === b ? r = "" : u > 0 && (r = r.slice(u)) } function c(A, b, u, k) { if (k === 0) { y.length > 0 && (e({ type: "event", id: p, event: g || void 0, data: y.slice(0, -1) }), y = "", p = void 0), g = void 0; return } let j = u < 0 , C = A.slice(b, b + (j ? k : u)) , S = 0; j ? S = k : A[b + u + 1] === " " ? S = u + 2 : S = u + 1; let I = b + S , $ = k - S , o = A.slice(I, I + $).toString(); if (C === "data") y += o ? "".concat(o, ` `) : ` `; else if (C === "event") g = o; else if (C === "id" && !o.includes("\0")) p = o; else if (C === "retry") { let n = parseInt(o, 10); Number.isNaN(n) || e({ type: "reconnect-interval", value: n }) } } } var Ne = [239, 187, 191]; function St(e) { return Ne.every((t,r)=>e.charCodeAt(r) === t) } var Ot = typeof global == "object" && global && global.Object === Object && global , J = Ot; var Ct = typeof self == "object" && self && self.Object === Object && self , Pt = J || Ct || Function("return this")() , T = Pt; var Et = T.Symbol , W = Et; var Be = Object.prototype , It = Be.hasOwnProperty , Mt = Be.toString , z = W ? W.toStringTag : void 0; function Nt(e) { var t = It.call(e, z) , r = e[z]; try { e[z] = void 0; var a = !0 } catch {} var s = Mt.call(e); return a && (t ? e[z] = r : delete e[z]), s } var Re = Nt; var Bt = Object.prototype , Rt = Bt.toString; function _t(e) { return Rt.call(e) } var _e = _t; var Lt = "[object Null]" , Ft = "[object Undefined]" , Le = W ? W.toStringTag : void 0; function Dt(e) { return e == null ? e === void 0 ? Ft : Lt : Le && Le in Object(e) ? Re(e) : _e(e) } var R = Dt; function Wt(e) { return e != null && typeof e == "object" } var U = Wt; var Ut = Array.isArray , Fe = Ut; function $t(e) { var t = typeof e; return e != null && (t == "object" || t == "function") } var H = $t; var qt = "[object AsyncFunction]" , zt = "[object Function]" , Vt = "[object GeneratorFunction]" , Gt = "[object Proxy]"; function Kt(e) { if (!H(e)) return !1; var t = R(e); return t == zt || t == Vt || t == qt || t == Gt } var Q = Kt; var Jt = T["__core-js_shared__"] , Z = Jt; var De = function() { var e = /[^.]+$/.exec(Z && Z.keys && Z.keys.IE_PROTO || ""); return e ? "Symbol(src)_1." + e : "" }(); function Ht(e) { return !!De && De in e } var We = Ht; var Qt = Function.prototype , Zt = Qt.toString; function Xt(e) { if (e != null) { try { return Zt.call(e) } catch {} try { return e + "" } catch {} } return "" } var _ = Xt; var Yt = /[\\^$.*+?()[\]{}|]/g , er = /^\[object .+?Constructor\]$/ , tr = Function.prototype , rr = Object.prototype , or = tr.toString , ar = rr.hasOwnProperty , sr = RegExp("^" + or.call(ar).replace(Yt, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); function nr(e) { if (!H(e) || We(e)) return !1; var t = Q(e) ? sr : er; return t.test(_(e)) } var Ue = nr; function ir(e, t) { return e?.[t] } var $e = ir; function fr(e, t) { var r = $e(e, t); return Ue(r) ? r : void 0 } var N = fr; var mr = N(T, "WeakMap") , X = mr; var lr = 9007199254740991; function ur(e) { return typeof e == "number" && e > -1 && e % 1 == 0 && e <= lr } var Y = ur; function dr(e) { return e != null && Y(e.length) && !Q(e) } var qe = dr; var pr = Object.prototype; function cr(e) { var t = e && e.constructor , r = typeof t == "function" && t.prototype || pr; return e === r } var ee = cr; var gr = "[object Arguments]"; function xr(e) { return U(e) && R(e) == gr } var ce = xr; var ze = Object.prototype , Ar = ze.hasOwnProperty , yr = ze.propertyIsEnumerable , br = ce(function() { return arguments }()) ? ce : function(e) { return U(e) && Ar.call(e, "callee") && !yr.call(e, "callee") } , Ve = br; function hr() { return !1 } var Ge = hr; var He = typeof exports == "object" && exports && !exports.nodeType && exports , Ke = He && typeof module == "object" && module && !module.nodeType && module , vr = Ke && Ke.exports === He , Je = vr ? T.Buffer : void 0 , wr = Je ? Je.isBuffer : void 0 , Tr = wr || Ge , Qe = Tr; var jr = "[object Arguments]" , kr = "[object Array]" , Sr = "[object Boolean]" , Or = "[object Date]" , Cr = "[object Error]" , Pr = "[object Function]" , Er = "[object Map]" , Ir = "[object Number]" , Mr = "[object Object]" , Nr = "[object RegExp]" , Br = "[object Set]" , Rr = "[object String]" , _r = "[object WeakMap]" , Lr = "[object ArrayBuffer]" , Fr = "[object DataView]" , Dr = "[object Float32Array]" , Wr = "[object Float64Array]" , Ur = "[object Int8Array]" , $r = "[object Int16Array]" , qr = "[object Int32Array]" , zr = "[object Uint8Array]" , Vr = "[object Uint8ClampedArray]" , Gr = "[object Uint16Array]" , Kr = "[object Uint32Array]" , d = {}; d[Dr] = d[Wr] = d[Ur] = d[$r] = d[qr] = d[zr] = d[Vr] = d[Gr] = d[Kr] = !0; d[jr] = d[kr] = d[Lr] = d[Sr] = d[Fr] = d[Or] = d[Cr] = d[Pr] = d[Er] = d[Ir] = d[Mr] = d[Nr] = d[Br] = d[Rr] = d[_r] = !1; function Jr(e) { return U(e) && Y(e.length) && !!d[R(e)] } var Ze = Jr; function Hr(e) { return function(t) { return e(t) } } var Xe = Hr; var Ye = typeof exports == "object" && exports && !exports.nodeType && exports , V = Ye && typeof module == "object" && module && !module.nodeType && module , Qr = V && V.exports === Ye , ge = Qr && J.process , Zr = function() { try { var e = V && V.require && V.require("util").types; return e || ge && ge.binding && ge.binding("util") } catch {} }() , xe = Zr; var et = xe && xe.isTypedArray , Xr = et ? Xe(et) : Ze , tt = Xr; function Yr(e, t) { return function(r) { return e(t(r)) } } var rt = Yr; var eo = rt(Object.keys, Object) , ot = eo; var to = Object.prototype , ro = to.hasOwnProperty; function oo(e) { if (!ee(e)) return ot(e); var t = []; for (var r in Object(e)) ro.call(e, r) && r != "constructor" && t.push(r); return t } var at = oo; var ao = N(T, "Map") , te = ao; var so = N(T, "DataView") , re = so; var no = N(T, "Promise") , oe = no; var io = N(T, "Set") , ae = io; var st = "[object Map]" , fo = "[object Object]" , nt = "[object Promise]" , it = "[object Set]" , ft = "[object WeakMap]" , mt = "[object DataView]" , mo = _(re) , lo = _(te) , uo = _(oe) , po = _(ae) , co = _(X) , L = R; (re && L(new re(new ArrayBuffer(1))) != mt || te && L(new te) != st || oe && L(oe.resolve()) != nt || ae && L(new ae) != it || X && L(new X) != ft) && (L = function(e) { var t = R(e) , r = t == fo ? e.constructor : void 0 , a = r ? _(r) : ""; if (a) switch (a) { case mo: return mt; case lo: return st; case uo: return nt; case po: return it; case co: return ft } return t } ); var lt = L; var go = "[object Map]" , xo = "[object Set]" , Ao = Object.prototype , yo = Ao.hasOwnProperty; function bo(e) { if (e == null) return !0; if (qe(e) && (Fe(e) || typeof e == "string" || typeof e.splice == "function" || Qe(e) || tt(e) || Ve(e))) return !e.length; var t = lt(e); if (t == go || t == xo) return !e.size; if (ee(e)) return !at(e).length; for (var r in e) if (yo.call(e, r)) return !1; return !0 } var Ae = bo; async function *ut(e) { let t = e.getReader(); try { for (; ; ) { let {done: r, value: a} = await t.read(); if (r) return; yield a } } finally { t.releaseLock() } } async function ye(e, t) { let {onMessage: r, ...a} = t , s = await fetch(e, a); if (!s.ok) { let g = await s.json().catch(()=>({})); throw new Error(Ae(g) ? `${s.status} ${s.statusText}` : JSON.stringify(g)) } let p = Me(g=>{ g.type === "event" && r(g.data) } ); for await(let g of ut(s.body)) { let y = new TextDecoder().decode(g); p.feed(y) } } var se = "accessToken" , ne = new pt.default(10 * 1e3) , dt = null; async function ie() { if (ne.get(se)) return ne.get(se); let e = await fetch("https://chat.openai.com/api/auth/session"); if (e.status === 403) throw new Error("CLOUDFLARE"); let t = await e.json().catch(()=>({})); if (!t.accessToken) throw new Error("UNAUTHORIZED"); return ne.set(se, t.accessToken), t.accessToken } async function ho(e, t) { let r = t.question, a, s = t.clearConversation; try { a = await ie() } catch (c) { e.postMessage({ error: c.message }), a = "" } let p, g = ()=>{ console.log("clearConversation", s), s && p && pe(a, p, { is_visible: !1 }) } , y = new AbortController; e.onDisconnect.addListener(()=>{ y.abort(), g() } ); let x = D() , m = { action: "next", messages: [{ id: D(), role: "user", content: { content_type: "text", parts: [r] } }], model: "text-davinci-002-render", parent_message_id: x }; if (t.conversationId || (dt = null), !s && t.conversationId) { m.conversation_id = t.conversationId; let c = await wo(t.conversationId); c.current_node && (m.parent_message_id = dt = c.current_node) } await ye("https://chat.openai.com/backend-api/conversation", { method: "POST", signal: y.signal, headers: { "Content-Type": "application/json", Authorization: `Bearer ${a}` }, body: JSON.stringify(m), onMessage(c) { var u, k, j; if (c === "[DONE]") { e.postMessage({ event: "DONE" }), g(); return } if (!c.trim()) return; let A; try { A = JSON.parse(c) } catch (C) {} if (!A) return; let b = (j = (k = (u = A.message) == null ? void 0 : u.content) == null ? void 0 : k.parts) == null ? void 0 : j[0]; p = A.conversation_id, b && e.postMessage({ text: b, messageId: A.message.id, conversationId: A.conversation_id }) } }) } async function vo(e, t) { let r = await ie(), a, s = new AbortController, p, g = ()=>{ p && pe(r, p, { is_visible: !1 }) } ; return new Promise((y,x)=>{ ye("https://chat.openai.com/backend-api/conversation", { method: "POST", signal: s.signal, headers: { "Content-Type": "application/json", Authorization: `Bearer ${r}` }, body: JSON.stringify(e), onMessage(m) { if (m === "[DONE]") { t(a); return } a = JSON.parse(m), y(a) } }).catch(m=>x(m)) } ) } async function wo(e) { let t = await ie(); return new Promise((r,a)=>{ fetch("https://chat.openai.com/backend-api/conversation/" + e, { method: "GET", headers: { "Content-Type": "application/json", Authorization: `Bearer ${t}` } }).then(s=>{ r(s.json()) } ) } ) } async function To(e) { return new Promise((t,r)=>{ return t(1), !1; let a = D(); vo({ action: "next", messages: [{ id: a, role: "user", content: { content_type: "text", parts: [e] } }], model: "text-davinci-002-render", parent_message_id: D() }, s=>!1).then(s=>{ s.question = e, t(s) } ) } ) } B.default.runtime.onConnect.addListener(e=>{ e.onMessage.addListener(t=>{ try { ho(e, t) } catch (r) { console.error(r), e.postMessage({ error: r.message }), ne.delete(se) } } ) } ); B.default.runtime.onMessage.addListener(async e=>{ if (e.type === "FEEDBACK") { let t = await ie(); await Ie(t, e.data) } else e.type === "OPEN_OPTIONS_PAGE" && B.default.runtime.openOptionsPage() } ); B.default.runtime.onInstalled.addListener(async()=>{ B.default.contextMenus.create({ id: "question", title: 'Question "%s"', type: "normal", contexts: ["selection"] }) } ); B.default.contextMenus.onClicked.addListener((e,t)=>{ let r = e.selectionText; e.selectionText && To(e.selectionText).then(async function(a) { let s = new URL(`https://chat.openai.com/chat/${a.conversation_id}`) , p = await B.default.tabs.create({ url: "https://chat.openai.com/chat", index: t ? t.index + 1 : 1 }); B.default.tabs.update(p.id, { active: !0 }); function g(y) { function x(m) { return new Promise(c=>{ if (document.querySelector(m)) return c(document.querySelector(m)); let A = new MutationObserver(b=>{ document.querySelector(m) && (c(document.querySelector(m)), A.disconnect()) } ); A.observe(document.body, { childList: !0, subtree: !0 }) } ) } x("a.items-center:nth-child(1)").then(m=>{ document.querySelectorAll("a.items-center")[0].click(), x('textarea[data-id="root"]').then(c=>{ c.value = y, document.querySelectorAll("button.absolute.p-1.rounded-md")[0].click() } ) } ) } B.default.scripting.executeScript({ target: { tabId: p.id }, func: g, args: [r] }) }) } ); } )();