PageSourceSearch

https://lienz.gv.at/media/mod_gptranslate/js/gptranslate.js?f61be9

js lienz.gv.at collected 2026-10-02 19:10:13 UTC 66,685 bytes, 1,695 lines download raw bytes

1import { jsonrepair as e } from "./jsonrepair/index.js";
2!(function () {
3  var t = window.gptranslateSettings || {};
4  // Server-side proxy URL for AI requests (keeps API key on server).
5  // If you place ai_proxy.php next to this file, the path
6  // is resolved relative to this script's URL. You can still override
7  // via global `aiProxyLink` (or legacy `gptChatProxyLink`) before this script loads.
8  const AI_PROXY_URL = (() => {
9    if (typeof aiProxyLink !== "undefined" && aiProxyLink) return aiProxyLink;
10    if (typeof gptChatProxyLink !== "undefined" && gptChatProxyLink) return gptChatProxyLink; // legacy override
11    try {
12      const u = new URL('./ai_proxy.php', import.meta.url);
13      if (u.origin === window.location.origin) return u.pathname;
14    } catch (_) {}
15    // Prefer new neutral name, keep legacy fallback for compatibility
16    return '/ai_proxy.php';
17  })();
18  t =
19    t[
20      (function () {
21        const e = document.querySelectorAll('script[type="module"]'),
22          t = new URL(import.meta.url);
23        for (const a of e) if (a.src === t.href) return a;
24        return null;
25      })().getAttribute("data-gt-widget-id")
26    ] || t;
27  var a = {
28      af: MOD_GPTRANSLATE_LANGUAGE_NAME_AF,
29      sq: MOD_GPTRANSLATE_LANGUAGE_NAME_SQ,
30      am: MOD_GPTRANSLATE_LANGUAGE_NAME_AM,
31      ar: MOD_GPTRANSLATE_LANGUAGE_NAME_AR,
32      hy: MOD_GPTRANSLATE_LANGUAGE_NAME_HY,
33      az: MOD_GPTRANSLATE_LANGUAGE_NAME_AZ,
34      eu: MOD_GPTRANSLATE_LANGUAGE_NAME_EU,
35      be: MOD_GPTRANSLATE_LANGUAGE_NAME_BE,
36      bn: MOD_GPTRANSLATE_LANGUAGE_NAME_BN,
37      bs: MOD_GPTRANSLATE_LANGUAGE_NAME_BS,
38      bg: MOD_GPTRANSLATE_LANGUAGE_NAME_BG,
39      ca: MOD_GPTRANSLATE_LANGUAGE_NAME_CA,
40      ceb: MOD_GPTRANSLATE_LANGUAGE_NAME_CEB,
41      ny: MOD_GPTRANSLATE_LANGUAGE_NAME_NY,
42      "zh-CN": MOD_GPTRANSLATE_LANGUAGE_NAME_ZH_CN,
43      "zh-TW": MOD_GPTRANSLATE_LANGUAGE_NAME_ZH_TW,
44      co: MOD_GPTRANSLATE_LANGUAGE_NAME_CO,
45      hr: MOD_GPTRANSLATE_LANGUAGE_NAME_HR,
46      cs: MOD_GPTRANSLATE_LANGUAGE_NAME_CS,
47      da: MOD_GPTRANSLATE_LANGUAGE_NAME_DA,
48      nl: MOD_GPTRANSLATE_LANGUAGE_NAME_NL,
49      en: MOD_GPTRANSLATE_LANGUAGE_NAME_EN,
50      eo: MOD_GPTRANSLATE_LANGUAGE_NAME_EO,
51      et: MOD_GPTRANSLATE_LANGUAGE_NAME_ET,
52      tl: MOD_GPTRANSLATE_LANGUAGE_NAME_TL,
53      fi: MOD_GPTRANSLATE_LANGUAGE_NAME_FI,
54      fr: MOD_GPTRANSLATE_LANGUAGE_NAME_FR,
55      fy: MOD_GPTRANSLATE_LANGUAGE_NAME_FY,
56      gl: MOD_GPTRANSLATE_LANGUAGE_NAME_GL,
57      ka: MOD_GPTRANSLATE_LANGUAGE_NAME_KA,
58      de: MOD_GPTRANSLATE_LANGUAGE_NAME_DE,
59      el: MOD_GPTRANSLATE_LANGUAGE_NAME_EL,
60      gu: MOD_GPTRANSLATE_LANGUAGE_NAME_GU,
61      ht: MOD_GPTRANSLATE_LANGUAGE_NAME_HT,
62      ha: MOD_GPTRANSLATE_LANGUAGE_NAME_HA,
63      haw: MOD_GPTRANSLATE_LANGUAGE_NAME_HAW,
64      iw: MOD_GPTRANSLATE_LANGUAGE_NAME_IW,
65      hi: MOD_GPTRANSLATE_LANGUAGE_NAME_HI,
66      hmn: MOD_GPTRANSLATE_LANGUAGE_NAME_HMN,
67      hu: MOD_GPTRANSLATE_LANGUAGE_NAME_HU,
68      is: MOD_GPTRANSLATE_LANGUAGE_NAME_IS,
69      ig: MOD_GPTRANSLATE_LANGUAGE_NAME_IG,
70      id: MOD_GPTRANSLATE_LANGUAGE_NAME_ID,
71      ga: MOD_GPTRANSLATE_LANGUAGE_NAME_GA,
72      it: MOD_GPTRANSLATE_LANGUAGE_NAME_IT,
73      ja: MOD_GPTRANSLATE_LANGUAGE_NAME_JA,
74      jw: MOD_GPTRANSLATE_LANGUAGE_NAME_JW,
75      kn: MOD_GPTRANSLATE_LANGUAGE_NAME_KN,
76      kk: MOD_GPTRANSLATE_LANGUAGE_NAME_KK,
77      km: MOD_GPTRANSLATE_LANGUAGE_NAME_KM,
78      ko: MOD_GPTRANSLATE_LANGUAGE_NAME_KO,
79      ku: MOD_GPTRANSLATE_LANGUAGE_NAME_KU,
80      ky: MOD_GPTRANSLATE_LANGUAGE_NAME_KY,
81      lo: MOD_GPTRANSLATE_LANGUAGE_NAME_LO,
82      la: MOD_GPTRANSLATE_LANGUAGE_NAME_LA,
83      lv: MOD_GPTRANSLATE_LANGUAGE_NAME_LV,
84      lt: MOD_GPTRANSLATE_LANGUAGE_NAME_LT,
85      lb: MOD_GPTRANSLATE_LANGUAGE_NAME_LB,
86      mk: MOD_GPTRANSLATE_LANGUAGE_NAME_MK,
87      mg: MOD_GPTRANSLATE_LANGUAGE_NAME_MG,
88      ms: MOD_GPTRANSLATE_LANGUAGE_NAME_MS,
89      ml: MOD_GPTRANSLATE_LANGUAGE_NAME_ML,
90      mt: MOD_GPTRANSLATE_LANGUAGE_NAME_MT,
91      mi: MOD_GPTRANSLATE_LANGUAGE_NAME_MI,
92      mr: MOD_GPTRANSLATE_LANGUAGE_NAME_MR,
93      mn: MOD_GPTRANSLATE_LANGUAGE_NAME_MN,
94      my: MOD_GPTRANSLATE_LANGUAGE_NAME_MY,
95      ne: MOD_GPTRANSLATE_LANGUAGE_NAME_NE,
96      no: MOD_GPTRANSLATE_LANGUAGE_NAME_NO,
97      ps: MOD_GPTRANSLATE_LANGUAGE_NAME_PS,
98      fa: MOD_GPTRANSLATE_LANGUAGE_NAME_FA,
99      pl: MOD_GPTRANSLATE_LANGUAGE_NAME_PL,
100      pt: MOD_GPTRANSLATE_LANGUAGE_NAME_PT,
101      pa: MOD_GPTRANSLATE_LANGUAGE_NAME_PA,
102      ro: MOD_GPTRANSLATE_LANGUAGE_NAME_RO,
103      ru: MOD_GPTRANSLATE_LANGUAGE_NAME_RU,
104      sm: MOD_GPTRANSLATE_LANGUAGE_NAME_SM,
105      gd: MOD_GPTRANSLATE_LANGUAGE_NAME_GD,
106      sr: MOD_GPTRANSLATE_LANGUAGE_NAME_SR,
107      st: MOD_GPTRANSLATE_LANGUAGE_NAME_ST,
108      sn: MOD_GPTRANSLATE_LANGUAGE_NAME_SN,
109      sd: MOD_GPTRANSLATE_LANGUAGE_NAME_SD,
110      si: MOD_GPTRANSLATE_LANGUAGE_NAME_SI,
111      sk: MOD_GPTRANSLATE_LANGUAGE_NAME_SK,
112      sl: MOD_GPTRANSLATE_LANGUAGE_NAME_SL,
113      so: MOD_GPTRANSLATE_LANGUAGE_NAME_SO,
114      es: MOD_GPTRANSLATE_LANGUAGE_NAME_ES,
115      su: MOD_GPTRANSLATE_LANGUAGE_NAME_SU,
116      sw: MOD_GPTRANSLATE_LANGUAGE_NAME_SW,
117      sv: MOD_GPTRANSLATE_LANGUAGE_NAME_SV,
118      tg: MOD_GPTRANSLATE_LANGUAGE_NAME_TG,
119      ta: MOD_GPTRANSLATE_LANGUAGE_NAME_TA,
120      te: MOD_GPTRANSLATE_LANGUAGE_NAME_TE,
121      th: MOD_GPTRANSLATE_LANGUAGE_NAME_TH,
122      tr: MOD_GPTRANSLATE_LANGUAGE_NAME_TR,
123      uk: MOD_GPTRANSLATE_LANGUAGE_NAME_UK,
124      ur: MOD_GPTRANSLATE_LANGUAGE_NAME_UR,
125      uz: MOD_GPTRANSLATE_LANGUAGE_NAME_UZ,
126      vi: MOD_GPTRANSLATE_LANGUAGE_NAME_VI,
127      cy: MOD_GPTRANSLATE_LANGUAGE_NAME_CY,
128      xh: MOD_GPTRANSLATE_LANGUAGE_NAME_XH,
129      yi: MOD_GPTRANSLATE_LANGUAGE_NAME_YI,
130      yo: MOD_GPTRANSLATE_LANGUAGE_NAME_YO,
131      zu: MOD_GPTRANSLATE_LANGUAGE_NAME_ZU,
132    },
133    n = {
134      "en-US": "US English Female",
135      "en-AU": "Australian Female",
136      "en-GB": "UK English Female",
137      en: "UK English Female",
138      "es-ES": "Spanish Female",
139      es: "Spanish Female",
140      "et-EE": "Estonian Male",
141      et: "Estonian Male",
142      "fr-CA": "French Canadian Female",
143      "fr-FR": "French Female",
144      fr: "French Female",
145      "de-DE": "Deutsch Female",
146      de: "Deutsch Female",
147      "it-IT": "Italian Female",
148      it: "Italian Female",
149      "el-GR": "Greek Female",
150      el: "Greek Female",
151      "hu-HU": "Hungarian Female",
152      hu: "Hungarian Female",
153      "tr-TR": "Turkish Female",
154      tr: "Turkish Female",
155      "uk-UA": "Ukrainian Female",
156      uk: "Ukrainian Female",
157      "ru-RU": "Russian Female",
158      ru: "Russian Female",
159      "nl-BE": "Dutch Female",
160      "nl-NL": "Dutch Female",
161      nl: "Dutch Female",
162      "sv-FI": "Swedish Female",
163      "sv-SE": "Swedish Female",
164      sv: "Swedish Female",
165      "nb-NO": "Norwegian Female",
166      nb: "Norwegian Female",
167      no: "Norwegian Female",
168      "ja-JP": "Japanese Female",
169      ja: "Japanese Female",
170      "ko-KR": "Korean Female",
171      ko: "Korean Female",
172      "zh-HK": "Chinese (Hong Kong) Female",
173      "zh-TW": "Chinese Taiwan Female",
174      "zh-CN": "Chinese Female",
175      "zh-MO": "Chinese Female",
176      "zh-SG": "Chinese Female",
177      zh: "Chinese Female",
178      "hi-IN": "Hindi Female",
179      hi: "Hindi Female",
180      "sr-BA": "Serbian Male",
181      "sr-SP": "Serbian Male",
182      sr: "Serbian Male",
183      "hr-BA": "Croatian Male",
184      "hr-HR": "Croatian Male",
185      hr: "Croatian Male",
186      "bs-BA": "Bosnian Male",
187      bs: "Bosnian Male",
188      "ro-RO": "Romanian Female",
189      ro: "Romanian Female",
190      "ca-ES": "Catalan Male",
191      ca: "Catalan Male",
192      "fi-FI": "Finnish Female",
193      fi: "Finnish Female",
194      "af-ZA": "Afrikaans Male",
195      af: "Afrikaans Male",
196      "sq-AL": "Albanian Male",
197      sq: "Albanian Male",
198      "ar-AR": "Arabic Male",
199      "ar-AE": "Arabic Male",
200      "ar-AA": "Arabic Male",
201      ar: "Arabic Male",
202      "hy-AM": "Armenian Male",
203      hy: "Armenian Male",
204      "cs-CZ": "Czech Female",
205      cs: "Czech Female",
206      "da-DK": "Danish Female",
207      da: "Danish Female",
208      eo: "Esperanto Male",
209      "is-IS": "Icelandic Male",
210      is: "Icelandic Male",
211      "id-ID": "Indonesian Female",
212      id: "Indonesian Female",
213      "lv-LV": "Latvian Male",
214      lv: "Latvian Male",
215      "mk-MK": "Macedonian Male",
216      mk: "Macedonian Male",
217      md: "Moldavian Female",
218      "fil-PH": "Filipino Female",
219      tl: "Filipino Female",
220      "pl-PL": "Polish Female",
221      pl: "Polish Female",
222      "pt-BR": "Brazilian Portuguese Female",
223      "pt-PT": "Portuguese Female",
224      pt: "Portuguese Female",
225      "sk-SK": "Slovak Female",
226      sk: "Slovak Female",
227      "sw-KE": "Swahili Male",
228      sw: "Swahili Male",
229      "ta-IN": "Tamil Male",
230      ta: "Tamil Male",
231      "th-TH": "Thai Female",
232      th: "Thai Female",
233      "vi-VN": "Vietnamese Male",
234      vi: "Vietnamese Male",
235      "cy-GB": "Welsh Male",
236      cy: "Welsh Male",
237      "bn-BD": "Bangla Bangladesh Female",
238      "bn-IN": "Bangla India Female",
239      bn: "Bangla Bangladesh Female",
240    },
241    r = {
242      "en-US": "US English Male",
243      "en-AU": "Australian Male",
244      "en-GB": "UK English Male",
245      en: "UK English Male",
246      "es-ES": "Spanish Male",
247      es: "Spanish Male",
248      "et-EE": "Estonian Male",
249      et: "Estonian Male",
250      "fr-CA": "French Canadian Male",
251      "fr-FR": "French Male",
252      fr: "French Male",
253      "de-DE": "Deutsch Male",
254      de: "Deutsch Male",
255      "it-IT": "Italian Male",
256      it: "Italian Male",
257      "el-GR": "Greek Male",
258      el: "Greek Male",
259      "hu-HU": "Hungarian Male",
260      hu: "Hungarian Male",
261      "tr-TR": "Turkish Male",
262      tr: "Turkish Male",
263      "uk-UA": "Ukrainian Female",
264      uk: "Ukrainian Female",
265      "ru-RU": "Russian Male",
266      ru: "Russian Male",
267      "nl-BE": "Dutch Male",
268      "nl-NL": "Dutch Male",
269      nl: "Dutch Male",
270      "sv-FI": "Swedish Male",
271      "sv-SE": "Swedish Male",
272      sv: "Swedish Male",
273      "nb-NO": "Norwegian Male",
274      nb: "Norwegian Male",
275      no: "Norwegian Male",
276      "ja-JP": "Japanese Male",
277      ja: "Japanese Male",
278      "ko-KR": "Korean Male",
279      ko: "Korean Male",
280      "zh-HK": "Chinese (Hong Kong) Male",
281      "zh-TW": "Chinese Taiwan Male",
282      "zh-CN": "Chinese Male",
283      "zh-MO": "Chinese Male",
284      "zh-SG": "Chinese Male",
285      zh: "Chinese Male",
286      "hi-IN": "Hindi Male",
287      hi: "Hindi Male",
288      "sr-BA": "Serbian Male",
289      "sr-SP": "Serbian Male",
290      sr: "Serbian Male",
291      "hr-BA": "Croatian Male",
292      "hr-HR": "Croatian Male",
293      hr: "Croatian Male",
294      "bs-BA": "Bosnian Male",
295      bs: "Bosnian Male",
296      "ro-RO": "Romanian Female",
297      ro: "Romanian Female",
298      "ca-ES": "Catalan Male",
299      ca: "Catalan Male",
300      "fi-FI": "Finnish Male",
301      fi: "Finnish Male",
302      "af-ZA": "Afrikaans Male",
303      af: "Afrikaans Male",
304      "sq-AL": "Albanian Male",
305      sq: "Albanian Male",
306      "ar-AR": "Arabic Male",
307      "ar-AE": "Arabic Male",
308      "ar-AA": "Arabic Male",
309      ar: "Arabic Male",
310      "hy-AM": "Armenian Male",
311      hy: "Armenian Male",
312      "cs-CZ": "Czech Male",
313      cs: "Czech Male",
314      "da-DK": "Danish Male",
315      da: "Danish Male",
316      eo: "Esperanto Male",
317      "is-IS": "Icelandic Male",
318      is: "Icelandic Male",
319      "id-ID": "Indonesian Male",
320      id: "Indonesian Male",
321      "lv-LV": "Latvian Male",
322      lv: "Latvian Male",
323      "mk-MK": "Macedonian Male",
324      mk: "Macedonian Male",
325      md: "Moldavian Male",
326      "fil-PH": "Filipino Female",
327      tl: "Filipino Female",
328      "pl-PL": "Polish Male",
329      pl: "Polish Male",
330      "pt-BR": "Brazilian Portuguese Male",
331      "pt-PT": "Portuguese Male",
332      pt: "Portuguese Male",
333      "sk-SK": "Slovak Male",
334      sk: "Slovak Male",
335      "sw-KE": "Swahili Male",
336      sw: "Swahili Male",
337      "ta-IN": "Tamil Male",
338      ta: "Tamil Male",
339      "th-TH": "Thai Male",
340      th: "Thai Male",
341      "vi-VN": "Vietnamese Male",
342      vi: "Vietnamese Male",
343      "cy-GB": "Welsh Male",
344      cy: "Welsh Male",
345      "bn-BD": "Bangla Bangladesh Male",
346      "bn-IN": "Bangla India Male",
347      bn: "Bangla Bangladesh Male",
348    },
349    s = {
350      "en-US": "US English Female",
351      "en-AU": "Australian Female",
352      "en-GB": "UK English Female",
353      en: "UK English Female",
354      "es-ES": "Spanish Female",
355      es: "Spanish Female",
356      "et-EE": "Estonian Male",
357      et: "Estonian Male",
358      "fr-CA": "French Canadian Female",
359      "fr-FR": "French Female",
360      fr: "French Female",
361      "de-DE": "Deutsch Female",
362      de: "Deutsch Female",
363      "it-IT": "Italian Female",
364      it: "Italian Female",
365      "el-GR": "Greek Female",
366      el: "Greek Female",
367      "hu-HU": "Hungarian Female",
368      hu: "Hungarian Female",
369      "tr-TR": "Turkish Female",
370      tr: "Turkish Female",
371      "uk-UA": "Ukrainian Female",
372      uk: "Ukrainian Female",
373      "ru-RU": "Russian Female",
374      ru: "Russian Female",
375      "nl-BE": "Dutch Female",
376      "nl-NL": "Dutch Female",
377      nl: "Dutch Female",
378      "sv-FI": "Swedish Female",
379      "sv-SE": "Swedish Female",
380      sv: "Swedish Female",
381      "nb-NO": "Norwegian Female",
382      nb: "Norwegian Female",
383      no: "Norwegian Female",
384      "ja-JP": "Japanese Female",
385      ja: "Japanese Female",
386      "ko-KR": "Korean Female",
387      ko: "Korean Female",
388      "zh-HK": "Chinese (Hong Kong) Female",
389      "zh-TW": "Chinese Taiwan Female",
390      "zh-CN": "Chinese Female",
391      "zh-MO": "Chinese Female",
392      "zh-SG": "Chinese Female",
393      zh: "Chinese Female",
394      "hi-IN": "Hindi Female",
395      hi: "Hindi Female",
396      "sr-BA": "Serbian Male",
397      "sr-SP": "Serbian Male",
398      sr: "Serbian Male",
399      "hr-BA": "Croatian Male",
400      "hr-HR": "Croatian Male",
401      hr: "Croatian Male",
402      "bs-BA": "Bosnian Male",
403      bs: "Bosnian Male",
404      "ro-RO": "Romanian Female",
405      ro: "Romanian Female",
406      "ca-ES": "Catalan Male",
407      ca: "Catalan Male",
408      "fi-FI": "Finnish Female",
409      fi: "Finnish Female",
410      "af-ZA": "Afrikaans Male",
411      af: "Afrikaans Male",
412      "sq-AL": "Albanian Male",
413      sq: "Albanian Male",
414      "ar-AR": "Arabic Female",
415      "ar-AE": "Arabic Female",
416      "ar-AA": "Arabic Female",
417      ar: "Arabic Female",
418      "hy-AM": "Armenian Male",
419      hy: "Armenian Male",
420      "cs-CZ": "Czech Female",
421      cs: "Czech Female",
422      "da-DK": "Danish Female",
423      da: "Danish Female",
424      eo: "Esperanto Male",
425      "is-IS": "Icelandic Male",
426      is: "Icelandic Male",
427      "id-ID": "Indonesian Female",
428      id: "Indonesian Female",
429      "lv-LV": "Latvian Male",
430      lv: "Latvian Male",
431      "mk-MK": "Macedonian Male",
432      mk: "Macedonian Male",
433      md: "Moldavian Female",
434      "fil-PH": "Filipino Female",
435      "pl-PL": "Polish Female",
436      pl: "Polish Female",
437      "pt-BR": "Brazilian Portuguese Female",
438      "pt-PT": "Portuguese Female",
439      pt: "Portuguese Female",
440      "sk-SK": "Slovak Female",
441      sk: "Slovak Female",
442      "sw-KE": "Swahili Male",
443      sw: "Swahili Male",
444      "ta-IN": "Tamil Female",
445      ta: "Tamil Female",
446      "th-TH": "Thai Female",
447      th: "Thai Female",
448      "vi-VN": "Vietnamese Female",
449      vi: "Vietnamese Female",
450      "cy-GB": "Welsh Male",
451      cy: "Welsh Male",
452      "bn-BD": "Bangla Bangladesh Female",
453      "bn-IN": "Bangla India Female",
454      bn: "Bangla Bangladesh Female",
455    },
456    i = t.default_language || "auto",
457    o = [],
458    l = 0,
459    c = 0,
460    d = !1,
461    g = {},
462    p = {},
463    A = [],
464    _ = !1,
465    u = "",
466    h = "",
467    m = !1,
468    E = location.href,
469    M = (window.location.href, t.languages || Object.keys(a)),
470    f = t.alt_flags || {},
471    N = t.flag_style || "2d",
472    v = t.widget_max_height || 260,
473    G =
474      "local" == t.flag_loading
475        ? t.flags_location
476        : "https://cdn.gtranslate.net/flags/",
477    T = (t.custom_domains, t.switcher_horizontal_position || "left"),
478    L = t.switcher_vertical_position || "bottom",
479    S = t.float_switcher_open_direction || "top",
480    b = (t.native_language_names, parseInt(t.detect_browser_language) || !1),
481    w = parseInt(t.detect_current_language) || !1,
482    y = parseInt(t.detect_default_language) || !1,
483    R = parseInt(t.autotranslate_detected_language) || !1,
484    F = parseInt(t.show_language_titles) || !1,
485    D = parseInt(t.enable_dropdown) || !1,
486    x = parseInt(t.equal_widths) || !1,
487    P = t.reader_button_position || !1,
488    U = t.wrapper_selector || ".gptranslate_wrapper",
489    O = t.custom_css || "",
490    C = a,
491    k =
492      ".gpt_container-" +
493      Array.from("float" + U)
494        .reduce(function (e, t) {
495          return 0 | (31 * e + t.charCodeAt(0));
496        }, 0)
497        .toString(36),
498    I = "",
499    q = O;
500  G += ("3d" == N ? 32 : "svg") + "/";
501  var z = "3d" == N ? ".png" : ".svg";
502  function B(e) {
503    return f[e]
504      ? "usa" == f[e]
505        ? G + "en-us" + z
506        : "canada" == f[e]
507          ? G + "en-ca" + z
508          : "brazil" == f[e]
509            ? G + "pt-br" + z
510            : "mexico" == f[e]
511              ? G + "es-mx" + z
512              : "argentina" == f[e]
513                ? G + "es-ar" + z
514                : "colombia" == f[e]
515                  ? G + "es-co" + z
516                  : "quebec" == f[e]
517                    ? G + "fr-qc" + z
518                    : f[e]
519      : G + e + z;
520  }
521  var H,
522    K = document.querySelector("html").getAttribute("lang"),
523    W = K || i,
524    j = sessionStorage.getItem("googtrans");
525  ((W = (j && j.split("|")[1]) || W),
526  w && W.length > 2 && W.indexOf("-") > -1 && (W = W.split("-")[0]),
527  y && K) &&
528    ((H = K).indexOf("-") > -1
529      ? (i = H.split("-")[0])
530      : 2 == H.length && (i = H));
531  R &&
532    K &&
533    ((H = K).indexOf("-") > -1
534      ? (W = H.split("-")[0])
535      : 2 == H.length && (W = H));
536  C[W] || (W = i);
537  var V = (j && j.split("|")[0]) || W,
538    J = parseInt(chatgptPopupFontsize - 6),
539    $ = parseInt(chatgptPopupFontsize - 1);
540  if (
541    ((q +=
542      "div.progress.progress-gptranslate,div.progress.progress-gptranslate-reading{position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;height:150px;display:block;background:transparent;
542margin-top:-75px;z-index:9999}"),
543    (q +=
544      "div.progress-gptranslate div.toast,div.progress-gptranslate-reading div.toast{background:#FFF;width:100%} div.progress.progress-gptranslate div.progress-bar,div.progress.progress-gptranslate-reading div.progress-bar{height:20px}"),
545    (q += "div.skiptranslate{display:none!important}"),
546    (q += "body{top:0!important}"),
547    (q +=
548      "font font{background-color:transparent!important;box-shadow:none!important;position:initial!important}"),
549    (q +=
550      ".gpt_float_switcher{font-family:Arial;font-size:20px;border-radius:2px;color:#555;display:inline-block;line-height:20px;box-shadow:rgba(0,0,0,0.15) 0 5px 15px;background:#fff;overflow:hidden;transition:all .5s cubic-bezier(0.4, 0, 1, 1)}"),
551    (q +=
552      ".gpt_float_switcher img{vertical-align:middle;display:inline-block;width:32px;height:auto;margin:0 5px 0 0;border-radius:3px}"),
553    "left" == S || "right" == S)
554  ) {
555    var Y = 0.7 * window.innerWidth - 120;
556    window.innerWidth < 1e3 && (Y = window.innerWidth - 260),
557      (Y += "px"),
558      "inline" == T && (Y = "calc(100% - 122px)"),
559      (q +=
560        ".gpt_float_switcher .gpt_options{position:relative;z-index:777;float:" +
561        S +
562        ";max-width:" +
563        Y +
564        ";overflow:hidden;transform:translateX(-" +
565        window.innerWidth +
566        "px);opacity:0;cursor:pointer;transition:all .8s cubic-bezier(.3,1.1,.4,1.1)}"),
567      (q +=
568        ".gpt_float_switcher .gpt_options a{display:inline-block;text-align:left;text-decoration:none;padding:" +
569        (J > 10 ? 10 : J) +
570        "px " +
571        ($ > 15 ? 15 : $) +
572        "px;color:#444;transition:color .4s linear}"),
573      (q +=
574        ".gpt_float_switcher .gt-selected{position:relative;z-index:888;float:left;cursor:pointer;text-transform:uppercase;overflow:hidden;" +
575        ("inline" != T && "text-align:" + T) +
576        "}");
577  } else
578    (q +=
579      ".gpt_float_switcher .gpt_options{position:relative;z-index:777;max-height:" +
580      v +
581      "px;overflow-y:auto;transform:translateY(-30px);opacity:0;cursor:pointer;transition:all .8s cubic-bezier(.3,1.1,.4,1.1)}"),
582      (q +=
583        ".gpt_float_switcher .gpt_options a{display:block;text-decoration:none;padding:" +
584        (J > 10 ? 10 : J) +
585        "px " +
586        ($ > 15 ? 15 : $) +
587        "px;color:#444;transition:color .4s linear}"),
588      (q +=
589        ".gpt_float_switcher .gt-selected{position:relative;z-index:888;cursor:pointer;text-transform:uppercase;overflow:hidden;" +
590        ("inline" != T && "text-align:" + T) +
591        "}");
592  (q +=
593    ".gpt_float_switcher .gpt_options.gt-open{opacity:1;transform:translateX(0px)}"),
594    (q +=
595      ".gpt_float_switcher .gpt_options::-webkit-scrollbar-track{background-color:#f5f5f5}"),
596    (q += ".gpt_float_switcher .gpt_options::-webkit-scrollbar{width:5px}"),
597    (q +=
598      ".gpt_float_switcher .gpt_options::-webkit-scrollbar-thumb{background-color:#888}"),
599    (q +=
600      ".gpt_float_switcher .gpt_options a:hover{background:#6070a0;color:#fff}"),
601    (q += ".gpt_float_switcher .gpt_options a.gpt-current{display:none}"),
602    (q +=
603      ".gpt_float_switcher .gt-selected .gpt-current-lang{padding:" +
604      (J > 10 ? 10 : J) +
605      "px " +
606      ($ > 15 ? 15 : $) +
607      "px;color:#333;font-weight:bold}"),
608    (q +=
609      ".gpt_float_switcher .gt-selected .gpt-current-lang span.gt-lang-code{position:relative;top:2px}"),
610    (q +=
611      "div.progress-gptranslate div.toast-header strong.progress-text,div.progress-gptranslate-reading div.toast-header strong.progress-text,div.progress-gptranslate button.btn-close,div.progress-gptranslate-reading button.btn-close{font-size:14px}div.progress-gptranslate div.toast-header small.text-muted,div.progress-gptranslate-reading div.toast-header small.text-muted{font-size:12.25px}"),
612    chatgptEnableReader &&
613      (q +=
614        '.gpt_float_switcher svg[data-icon="play-state"],.gpt_float_switcher svg[data-icon="stop-state"]{margin-left:10px;vertical-align: middle}');
615  var Z = "left" == S || "right" == S ? 90 : 0;
616  (q +=
617    ".gpt_float_switcher .gt-selected .gpt-current-lang span.gpt_float_switcher-arrow{display:inline-block;height:24px;width:15px;vertical-align:middle;background-image:url('data:image/svg+xml;utf8," +
618    svgIconArrow +
619    "');background-position:50%;background-size:11px;background-repeat:no-repeat;transition:all .3s;transform:rotate(" +
620    (Z - 180) +
621    "deg)}"),
622    (q +=
623      ".gpt_float_switcher .gt-selected .gpt-current-lang span.gpt_float_switcher-arrow.gpt_arrow_rotate{transform:rotate(" +
624      Z +
625      "deg)}"),
626    (I +=
627      "inline" == T
628        ? '<div id="gpt_float_wrapper"><div class="gpt_float_switcher notranslate" style="opacity:0">'
629        : '<div id="gpt_float_wrapper" style="position:fixed;' +
630          L +
631          ":20px;" +
632          T +
633          ":20px;" +
634          ("left" == T ? "margin-right" : "margin-left") +
635          ':20px;z-index:999999;"><div class="gpt_float_switcher notranslate" style="opacity:0">');
636  var X = "";
637  if (
638    (chatgptEnableReader &&
639      (X =
640        '<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="play-state" class="svg-inline--fa fa-play-state fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
640<path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"></path></svg>'),
641    F)
642  )
643    var Q =
644      '<div class="gt-selected"><div class="gpt-current-lang"><img src="' +
645      B(W) +
646      '" alt="' +
647      W +
648      '"> <span class="gt-lang-code">' +
649      W +
650      '</span> <span class="gpt_float_switcher-arrow"></span>' +
651      X +
652      "</div></div>";
653  else
654    Q =
655      '<div class="gt-selected"><div class="gpt-current-lang"><img src="' +
656      B(W) +
657      '" alt="' +
658      W +
659      '" title="' +
660      W +
661      '"> <span class="gt-lang-code"></span> <span class="gpt_float_switcher-arrow"></span>' +
662      X +
663      "</div></div>";
664  var ee = '<div class="gpt_options" style="display:none">';
665  M.forEach(function (e) {
666    var t = document.createElement("a");
667    t.classList.add("nturl"),
668      W == e && t.classList.add("gpt-current"),
669      t.setAttribute("data-gpt-lang", e);
670    var a = document.createElement("img");
671    D ? a.setAttribute("data-gt-lazy-src", B(e)) : a.setAttribute("src", B(e)),
672      (a.alt = e),
673      t.appendChild(a),
674      F ? (t.innerHTML += " " + C[e]) : a.setAttribute("title", C[e]),
675      (ee += t.outerHTML);
676  }),
677    (ee += "</div>"),
678    (I +=
679      ("top" == L && "bottom" == S) ||
680      ("bottom" == L && "bottom" == S) ||
681      ("inline" == L && "bottom" == S)
682        ? Q + ee
683        : ee + Q),
684    (I += "</div></div>"),
685    D ||
686      ((q += `div.gpt_float_switcher{box-shadow:none}div.gpt_float_switcher div.gpt_options{display:flex!important;flex-wrap:wrap;opacity:1;transform:none;transition:none}div.gpt_float_switcher{transition:none}div.gpt_float_switcher{width:100%}div.gpt_float_switcher div.gt-selected div.gpt-current-lang img,div.gpt_float_switcher div.gt-selected div.gpt-current-lang span,div.gpt_float_switcher div.gt-selected div.gpt-current-lang span.gpt_float_switcher-arrow{display:none}div.gpt_float_switcher div.gpt_options a.gpt-current{display:block}a.gpt-current img{border: 1px solid ${t.widget_text_color};padding: 1px;}div.gpt_float_switcher img{margin:0}div.gpt_float_switcher div.gpt_options a:hover{background:transparent}div.gpt_float_switcher div.gpt_options a:hover{color:inherit}div.gpt_float_switcher svg[data-icon="play-state"],div.gpt_float_switcher svg[data-icon="stop-state"]{margin-left:0}`),
687      chatgptEnableReader ||
688        (q +=
689          "div.gpt_float_switcher div.gt-selected div.gpt-current-lang{padding:0}"),
690      "bottom" == P &&
691        setTimeout(function () {
692          const e = document.querySelector(".gpt_float_switcher"),
693            t = e.querySelector(".gt-selected"),
694            a = e.querySelector(".gpt_options");
695          t && a && e.insertBefore(t, a.nextSibling);
696        }, 0)),
697    !D &&
698      x &&
699      F &&
700      (q += "div.gpt_float_switcher div.gpt_options a.nturl{flex: 1 1 120px}");
701  var te = document.createElement("style");
702  function ae() {
703    var e = sessionStorage.getItem("googtrans");
704    return e ? e.split("|")[1] : null;
705  }
706  async function ne(t) {
707    var n = [];
708    if ((t.value && (t = t.value), "" == t)) return;
709    var r = t.split("|")[1];
710    if (null == ae() && r == t.split("|")[0]) return;
711    var s = ae();
712    sessionStorage.setItem("googtrans", t);
713    var f = t.split("|")[0],
714      N = t.split("|")[1];
715    if (gptRewriteLanguageUrl) {
716      const e = new URL(E);
717      let t = e.pathname.split("/"),
718        n = 1;
719      ("index.php" == t[n] || gptSubfolderInstallation) && (n = 2);
720      const r = Object.keys(a);
721      N != i || gptRewriteDefaultLanguageUrl
722        ? r.includes(t[n])
723          ? (t[n] = N)
724          : t.splice(n, 0, N)
725        : r.includes(t[n]) && (t.splice(n, 1), (t = t.filter((e) => "" !== e))),
726        (e.pathname = t.join("/"));
727      const s = e.toString();
728      history.replaceState(null, "", s),
729        (async function (e, t) {
730          if (gptTranslateMetadata) {
731            if (u) {
732              const e = document.querySelector("title");
733              e && (e.text = u);
734              const t = document.querySelector('meta[property="og:title"]');
735              t && t.setAttribute("content", u);
736              const a = document.querySelector('meta[name="twitter:title"]');
737              a && a.setAttribute("content", u);
738              const n = document.querySelector('meta[name="title"]');
739              n && n.setAttribute("content", u);
740              const r = document.querySelector('meta[name="metatitle"]');
741              r && r.setAttribute("content", u);
742            }
743            if (h) {
744              const e = document.querySelector("meta[name=description]");
745              e && e.setAttribute("content", h);
746              const t = document.querySelector(
747                'meta[property="og:description"]',
748              );
749              t && t.setAttribute("content", h);
750              const a = document.querySelector(
751                'meta[name="twitter:description"]',
752              );
753              a && a.setAttribute("content", h);
754            }
755            if (gptSetHtmlLang) {
756              const e = document.querySelector("html");
757              e && e.setAttribute("lang", i);
758            }
759            if (gptAddCanonical) {
760              const e = document.querySelector("link[rel=canonical]");
761              e && e.setAttribute("href", window.location.href);
762            }
763            if (t != i) {
764              const a =
765                  "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" +
766                  e +
767                  "&tl=" +
768                  t +
769                  "&dt=t&q=",
770                n = document.querySelector("title");
771              if (n) {
772                u || (u = n.text);
773                const e = n.text;
774                if (e.trim()) {
775                  const t = await fetch(a + encodeURIComponent(e)),
776                    r = (await t.json())[0].map((e) => e[0]).join("");
777                  if (r) {
778                    n.text = r;
779                    const e = document.querySelector(
780                      'meta[property="og:title"]',
781                    );
782                    e && e.setAttribute("content", r);
783                    const t = document.querySelector(
784                      'meta[name="twitter:title"]',
785                    );
786                    t && t.setAttribute("content", r);
787                    const a = document.querySelector('meta[name="title"]');
788                    a && a.setAttribute("content", r);
789                    const s = document.querySelector('meta[name="metatitle"]');
790                    s && s.setAttribute("content", r);
791                  }
792                }
793              }
794              const r = document.querySelector("meta[name=description]");
795              if (r) {
796                h || (h = r.getAttribute("content"));
797                const e = r.getAttribute("content");
798                if (e.trim()) {
799                  const t = await fetch(a + encodeURIComponent(e)),
800                    n = (await t.json())[0].map((e) => e[0]).join("");
801                  if (n) {
802                    r.setAttribute("content", n);
803                    const e = document.querySelector(
804                      'meta[property="og:description"]',
805                    );
806                    e && e.setAttribute("content", n);
807                    const t = document.querySelector(
808                      'meta[name="twitter:description"]',
809                    );
810                    t && t.setAttribute("content", n);
811                  }
812                }
813              }
814            }
815          }
816          if (gptSetHtmlLang) {
817            const e = document.querySelector("html");
818            e && e.setAttribute("lang", t);
819          }
820          if (gptAddCanonical) {
821            const e = document.querySelector("link[rel=canonical]");
822            if (e) e.setAttribute("href", window.location.href);
823            else {
824              const e = document.createElement("link");
825              (e.rel = "canonical"),
826                (e.href = window.location.href),
827                document.querySelector("head").appendChild(e);
828            }
829          }
830          gptAddAlternate &&
831            !m &&
832            (M.forEach(function (e) {
833              var t = document.createElement("link");
834              t.setAttribute("rel", "alternate"), t.setAttribute("hreflang", e);
835              var n = window.location.href,
836                r = new URL(n),
837                s = r.pathname.split("/");
838              let o = 1;
839              ("index.php" == s[o] || gptSubfolderInstallation) && (o = 2),
840                Object.keys(a).includes(s[o]) ? (s[o] = e) : s.splice(o, 0, e),
841                i != e ||
842                  gptRewriteDefaultLanguageUrl ||
843                  (delete s[o], (s = s.filter((e) => "" != e))),
844                (r.pathname = s.join("/"));
845              var l = r.toString();
846              t.setAttribute("href", l);
847              var c = document.querySelector("head");
848              if ((c.appendChild(t), i == e)) {
849                var d = document.createElement("link");
850                d.setAttribute("rel", "alternate"),
851                  d.setAttribute("hreflang", e),
852                  d.setAttribute("href", l),
853                  d.setAttribute("hreflang", "x-default"),
854                  c.appendChild(d);
855              }
856            }),
857            (m = !0));
858        })(f, N);
859    }
860    if (
861      (N == i || (s != f && N != f && o.length)) &&
862      (o.forEach(function (e, t) {
863        let a = e[0],
864          n = e[1];
865        a.gpt_startwhitespace && (n = " " + n),
866          a.gpt_endwhitespace && (n += " "),
867          (a.textContent = n);
868      }),
869      N == i)
870    )
871      return;
872    var v = [],
873      G = chatgptCssSelectorLeafnodesExcluded
874        ? chatgptCssSelectorLeafnodesExcluded.split(",").map(function (e) {
875            return e.trim();
876          })
877        : [".nogptranslate"];
878    !(function e(t, a, n, r) {
879      t.nodeType === Node.TEXT_NODE && "" !== t.textContent.trim()
880        ? a.push(t)
881        : t.childNodes.length > 0 &&
882          t.childNodes.forEach(function (t) {
883            n.includes(t.nodeName.toLowerCase()) ||
884              (function (e, t) {
885                return t.some((t) => e.matches && e.matches(t));
886              })(t, r) ||
887              e(t, a, n, r);
888          });
889    })(document.body, v, ["script", "iframe", "noscript", "style"], G);
890    const T = {
891        task: "gettranslations",
892        pagelink: decodeURI(window.location.href),
893        language_original: f,
894        language_translated: N,
895      },
896      L = new URLSearchParams(T).toString(),
897      S = `${gptServerSideLink}&${L}`;
898    async function b(t, n, r, s) {
899      if (!t) return;
900      let o = a[n],
901        d = a[r],
902        _ = JSON.stringify(t);
903      let u = ((e, t) => e.replace(/{{(.*?)}}/g, (e, a) => t[a] || ""))(
904        chatgptRequestMessage,
905        { source: o, target: d, translations: _ },
906      );
907      var h = new Headers();
908      h.append("Content-Type", "application/json");
909      const m = new AbortController();
910      A.push(m);
911      var E = {
912          method: "POST",
913          headers: h,
914          body: JSON.stringify({
915            messages: [{ role: chatgptRequestConversationMode, content: u }],
916            model: chatgptApiModel,
917            max_tokens: 2048,
918            temperature: 0.5,
919          }),
920          redirect: "follow",
921          signal: m.signal,
922        },
923        M = AI_PROXY_URL;
924      return fetch(M, E)
925        .then((e) => e.json())
926        .then((t) => {
927          if (!t.choices[0] || "length" == t.choices[0].finish_reason)
928            throw new Error("No choices available");
929          var a = {};
930          try {
931            var n = e(t.choices[0].message.content);
932            a = JSON.parse(n);
933          } catch (e) {
934            if (t.choices[0].message.content.match(/": ""|":" "|":""/)) {
935              var r = t.choices[0].message.content.replace(
936                /": ""|":" "|":""/g,
937                '"',
938              );
939              try {
940                a = JSON.parse(r);
941              } catch (e) {
942                let n = t.choices[0].message.content.replace(
943                  /:\s*"[^"]*"\s*}[^}]*$/,
944                  '"}',
945                );
946                try {
947                  a = JSON.parse(n);
948                } catch (e) {
949                  return;
950                }
951              }
952            }
953            if (t.choices[0].message.content.match(/```/g)) {
954              r = t.choices[0].message.content.replace(
955                /```json\s*([\s\S]*?)\s*```/g,
956                "$1",
957              );
958              try {
959                a = JSON.parse(r);
960              } catch (e) {
961                let n = t.choices[0].message.conten.replace(
962                  /:\s*"[^"]*"\s*}[^}]*$/,
963                  '"}',
964                );
965                try {
966                  a = JSON.parse(n);
967                } catch (e) {
968                  return;
969                }
970              }
971            }
972          }
973          if (s) {
974            var i = "",
975              o = "";
976            for (let e in a) (i += e + " "), (o += a[e]);
977            (i = i.trim()), (a[i] = o);
978          }
979          for (let e in a) {
980            !a[e] && e.length > 1 && (p[e] = "");
981          }
982          v.forEach(function (e, t) {
983            var n = e.textContent;
984            if (
985              ((n = (n = (n = (n = n.replace(/&nbsp;/g, " ").trim()).replace(
986                /(<([^>]+)>)/gi,
987                "",
988              )).replace(/"/g, "'")).replace(/\s+/g, " ")),
989              !/^[0-9]+$/.test(n) && 1 != n.length)
990            ) {
991              var r = a[n];
992              r
993                ? (e.gpt_startwhitespace && (r = " " + r),
994                  e.gpt_endwhitespace && (r += " "),
995                  (e.textContent = r),
996                  (g[n] = r))
997                : s &&
998                  e.textContent.indexOf(i) > -1 &&
999                  ((e.textContent = e.textContent.replace(i, o)), (g[i] = o));
1000            }
1001          });
1002          let d = document.querySelector(
1003            "div.progress-gptranslate div.progress-bar",
1004          );
1005          (l += c) >= 100 && (l = 100), (d.style.width = l + "%");
1006        })
1007        .catch((e) => {
1008          "AbortError" === e.name
1009            ? console.log(`Fetch to ${M} was aborted`)
1010            : console.error("Error:", e);
1011        });
1012    }
1013    fetch(S, { method: "POST" })
1014      .then((e) => e.text())
1015      .then((e) => {
1016        var t = JSON.parse(e);
1017        if (1 != t.success || 1 != t.data.result) {
1018          var a = "",
1019            r = {},
1020            s = 0,
1021            i = 0,
1022            u = maxCharactersPerRequest - 1500,
1023            h =
1024              !!chatgptWordsLeafnodesExcluded &&
1025              chatgptWordsLeafnodesExcluded.split(",").map(function (e) {
1026                return e.trim();
1027              });
1028          if ("undefined" != typeof chatgptWordsLeafnodesExcludedByLanguage) {
1029            var m = [];
1030            for (var E in chatgptWordsLeafnodesExcludedByLanguage) {
1031              var M = chatgptWordsLeafnodesExcludedByLanguage[E];
1032              if (
1033                !(
1034                  ("*" !=
1035                    M.words_leafnodes_excluded_bylanguage_language_original &&
1036                    M.words_leafnodes_excluded_bylanguage_language_original !=
1037                      f) ||
1038                  ("*" !=
1039                    M.words_leafnodes_excluded_bylanguage_language_target &&
1040                    M.words_leafnodes_excluded_bylanguage_language_target != N)
1041                )
1042              ) {
1043                var G = M.words_leafnodes_excluded_bylanguage;
1044                G &&
1045                  G.split(",").map(function (e) {
1046                    m.push(e.trim());
1047                  });
1048              }
1049            }
1050            m.length > 0 && (Array.isArray(h) || (h = []), (h = h.concat(m)));
1051          }
1052          function L(e, t) {
1053            for (
1054              var a = [], n = e.split(" "), r = n[0], s = 1;
1055              s < n.length;
1056              s++
1057            ) {
1058              var i = n[s];
1059              r.length + 1 + i.length <= t
1060                ? (r += " " + i)
1061                : (a.push(r), (r = i));
1062            }
1063            return r.length > 0 && a.push(r), a;
1064          }
1065          v.forEach(function (e, t) {
1066            var p = e.textContent;
1067            if (
1068              (e.textContent.match(/^( |\u00A0|&nbsp;)/g) &&
1069                (e.gpt_startwhitespace = 1),
1070              e.textContent.match(/( |\u00A0|&nbsp;)$/) &&
1071                (e.gpt_endwhitespace = 1),
1072              (p = (p = (p = (p = gTranslateEngine
1073                ? p.replace(/&nbsp;/g, " ")
1074                : p.replace(/&nbsp;/g, " ").trim()).replace(
1075                /(<([^>]+)>)/gi,
1076                "",
1077              )).replace(/"/g, "'")).replace(/\s+/g, " ")),
1078              !/^[0-9]+$/.test(p) && 1 != p.length)
1079            ) {
1080              if (h)
1081                for (let e = 0; e < h.length; e++) {
1082                  let t = h[e];
1083                  if (p.indexOf(t) > -1) return;
1084                }
1085              if (
1086                !(
1087                  parseInt(chatgptWordsMinLength) > 0 &&
1088                  p.length <= chatgptWordsMinLength
1089                )
1090              )
1091                if ((d || o.push([e, p]), p.length > u && !gTranslateEngine))
1092                  n.push(b(r, f, N)),
1093                    (a = ""),
1094                    (r = {}),
1095                    (i = s = 0),
1096                    L(p, u).forEach(function (e) {
1097                      (r[e] = ""),
1098                        (a += " " + e),
1099                        (++s % gptMaxTranslationsPerRequest == 0 ||
1100                          a.length >= maxCharactersPerRequest) &&
1101                          (n.push(b(r, f, N, !0)), (i = s), (a = ""), (r = {}));
1102                    }),
1103                    s > i && n.push(b(r, f, N, !0)),
1104                    (a = ""),
1105                    (r = {}),
1106                    (i = s = 0);
1107                else
1108                  (r[p] = ""),
1109                    (a += " " + p),
1110                    s++,
1111                    gTranslateEngine
1112                      ? n.push(
1113                          (async function (e, t, a, n) {
1114                            var r = e.textContent;
1115                            if (
1116                              ((r = r.replace(/&nbsp;/g, " ")),
1117                              (r = r.replace(/(<([^>]+)>)/gi, "")),
1118                              (r = r.replace(/"/g, "'")),
1119                              (r = r.replace(/\s+/g, " ")),
1120                              !r)
1121                            )
1122                              return;
1123                            parseInt(gptChatgptGtranslateRequestDelay) &&
1124                              (await ((s =
1125                                n * gptChatgptGtranslateRequestDelay),
1126                              new Promise((e) => setTimeout(e, s))));
1127                            var s;
1128                            var i =
1129                              "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" +
1130                              t +
1131                              "&tl=" +
1132                              a +
1133                              "&dt=t&q=" +
1134                              encodeURIComponent(r);
1135                            const o = new AbortController();
1136                            A.push(o);
1137                            var d = { signal: o.signal };
1138                            return fetch(i, d)
1139                              .then((e) => e.json())
1140                              .then((t) => {
1141                                var a = "";
1142                                for (let e of t[0]) a += e[0];
1143                                e.textContent.startsWith(" ") && (a = " " + a),
1144                                  e.textContent.endsWith(" ") && (a += " "),
1145                                  (e.textContent = a),
1146                                  (g[r] = a);
1147                                let n = document.querySelector(
1148                                  "div.progress-gptranslate div.progress-bar",
1149                                );
1150                                (l += c) >= 100 && (l = 100),
1151                                  n && (n.style.width = l + "%");
1152                              })
1153                              .catch((e) => {
1154                                "AbortError" === e.name
1155                                  ? console.log(`Fetch to ${i} was aborted`)
1156                                  : console.error("Error:", e);
1157                              });
1158                          })(e, f, N, t),
1159                        )
1160                      : (s % gptMaxTranslationsPerRequest == 0 ||
1161                          a.length >= maxCharactersPerRequest) &&
1162                        (n.push(b(r, f, N)), (i = s), (a = ""), (r = {}));
1163            }
1164          }),
1165            s > i && !gTranslateEngine && n.push(b(r, f, N)),
1166            gTranslateEngine
1167              ? ((c = 100 / n.length), (c = parseFloat(c.toFixed(1)) || 0.1))
1168              : (c = 1 == n.length ? 50 : parseInt(100 / n.length)),
1169            (l = c);
1170          let S = `<div class="progress progress-gptranslate">\n\t\t\t\t\t\t\t\t\t<div class="toast show" role="alert" aria-live="assertive" aria-atomic="true">\n\t\t\t\t\t\t\t\t\t  <div class="toast-header">\n\t\t\t\t\t\t\t\t\t    <strong class="progress-text me-auto">${MOD_GPTRANSLATE_TRANSLATING}</strong>\n\t\t\t\t\t\t\t\t\t    <small class="text-muted">${MOD_GPTRANSLATE_TRANSLATING_WAIT}</small>\n\t\t\t\t\t\t\t\t\t    <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>\n\t\t\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t\t\t  <div class="toast-body">\n\t\t\t\t\t\t\t\t\t    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="${l}" aria-valuemin="0" aria-valuemax="100" style="width: ${l}%"></div>\n\t\t\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>`,
1171            w = document.createElement("div");
1172          (w.innerHTML = S),
1173            document.body.appendChild(w.firstChild),
1174            w.remove();
1175          var T = document.querySelectorAll(
1176            "div.progress-gptranslate div.toast",
1177          );
1178          for (let y of T)
1179            y.addEventListener("hidden.bs.toast", function () {
1180              A.forEach((e) => e.abort()), (_ = !0);
1181              const e = y.closest(
1182                "div.progress-gptranslate,div.progress-gptranslate-reading",
1183              );
1184              e && e.remove();
1185            });
1186          return Promise.all(n)
1187            .then(async function () {
1188              if (_) return void (_ = !1);
1189              // Google Translate fallback removed. Only AI translations are applied.
1190              JSON.stringify(g);
1191              const t = new FormData();
1192              t.append("task", "storetranslations"),
1193                t.append("translations", JSON.stringify(g)),
1194                t.append("pagelink", decodeURI(window.location.href)),
1195                t.append("language_original", f),
1196                t.append("language_translated", N),
1197                t.append(
1198                  "translation_engine",
1199                  gTranslateEngine ? "gtranslate" : "chatgpt",
1200                );
1201              fetch(gptServerSideLink, { method: "POST", body: t })
1202                .then((e) => {
1203                  if (!e.ok) throw new Error("Network response was not ok");
1204                  return e.json();
1205                })
1206                .then((e) => {
1207                  document
1208                    .querySelector("div.progress-gptranslate small.text-muted")
1209                    .remove(),
1210                    (document.querySelector(
1211                      "div.progress-gptranslate strong.progress-text",
1212                    ).innerText = MOD_GPTRANSLATE_TRANSLATING_COMPLETE);
1213                  let t = document.querySelector(
1214                    "div.progress-gptranslate div.progress-bar",
1215                  );
1216                  (t.style.width = "100%"),
1217                    t.classList.remove(
1218                      "progress-bar-animated",
1219                      "progress-bar-striped",
1220                    ),
1221                    t.classList.add("bg-success"),
1222                    setTimeout(function () {
1223                      document.querySelector("div.progress-gptranslate") &&
1224                        document
1225                          .querySelector("div.progress-gptranslate")
1226                          .remove();
1227                    }, 1e3);
1228                })
1229                .catch((e) => {
1230                  console.error("Error:", e);
1231                }),
1232                (d = !0),
1233                (p = {});
1234            })
1235            .catch((e) => console.error("Error:", e));
1236        }
1237        v.forEach(function (e, a) {
1238          var n = e.textContent;
1239          e.textContent.match(/^( |\u00A0|&nbsp;)/g) &&
1240            (e.gpt_startwhitespace = 1),
1241            e.textContent.match(/( |\u00A0|&nbsp;)$/) &&
1242              (e.gpt_endwhitespace = 1),
1243            (n = (n = (n = (n = gTranslateEngine
1244              ? n.replace(/&nbsp;/g, " ")
1245              : n.replace(/&nbsp;/g, " ").trim()).replace(
1246              /(<([^>]+)>)/gi,
1247              "",
1248            )).replace(/"/g, "'")).replace(/\s+/g, " ")),
1249            d || o.push([e, n]);
1250          var r = t.data.translations[n];
1251          if (r) (e.textContent = r), (g[n] = r);
1252          else {
1253            e.textContent = n;
1254            let a = Object.keys(t.data.translations).sort(
1255                (e, t) => t.length - e.length,
1256              ),
1257              r = {};
1258            a.forEach((e) => {
1259              r[e] = t.data.translations[e];
1260            });
1261            for (let a in r) {
1262              let r = t.data.translations[a];
1263              n.indexOf(a) > -1 &&
1264                ((e.textContent = e.textContent.replace(a, r)), (g[n] = r));
1265            }
1266          }
1267        }),
1268          (d = !0);
1269      })
1270      .catch((e) => console.error("Error:", e));
1271  }
1272  if (
1273    (te.classList.add("gptranslate_css"),
1274    (te.textContent = q),
1275    document.head.appendChild(te),
1276    document.querySelectorAll(U).forEach(function (e) {
1277      e.classList.add(k.substring(1)), (e.innerHTML += I);
1278    }),
1279    W != i || W != V)
1280  ) {
1281    let e = function () {
1282      ne(V + "|" + W);
1283      var e = document.querySelector(k + ' a[data-gpt-lang="' + W + '"]');
1284      e &&
1285        (e.querySelectorAll("img:not([src])").forEach(function (e) {
1286          e.setAttribute("src", e.getAttribute("data-gt-lazy-src"));
1287        }),
1288        de(e));
1289    };
1290    void 0 !== window.gpt_translate_script
1291      ? (window.gpt_translate_script.onload = function () {
1292          setTimeout(function () {
1293            e();
1294          }, 1);
1295        })
1296      : setTimeout(function () {
1297          e();
1298        }, 1);
1299  }
1300  var re = !1;
1301  function se(e) {
1302    var t = e.target;
1303    if (
1304      ("A" == t.tagName
1305        ? (t = t.parentNode)
1306        : "IMG" == t.tagName && (t = t.parentNode.parentNode),
1307      "mousewheel" == e.type)
1308    )
1309      e.preventDefault(), (t.scrollLeft -= 88 * Math.sign(e.wheelDelta));
1310    else if ("touchstart" == e.type)
1311      (gt_touchstart_posx = gt_touchstart_posx_static = e.touches[0].pageX),
1312        (gt_touchstart_timestamp = e.timeStamp);
1313    else if ("touchmove" == e.type)
1314      e.preventDefault(),
1315        (t.scrollLeft +=
1316          10 * Math.sign(gt_touchstart_posx - e.touches[0].pageX)),
1317        (gt_touchstart_posx = e.touches[0].pageX);
1318    else if ("touchend" == e.type) {
1319      var a =
1320        (gt_touchstart_posx_static - e.changedTouches[0].pageX) /
1321        (e.timeStamp - gt_touchstart_timestamp);
1322      t.scrollTo({ left: t.scrollLeft + 500 * a, behavior: "smooth" });
1323    }
1324  }
1325  function ie() {
1326    if (document.querySelector("div.progress-gptranslate-reading")) {
1327      let e = document.querySelector(
1328        "div.progress-gptranslate-reading div.toast",
1329      );
1330      new bootstrap.Toast(e).dispose(),
1331        e.remove(),
1332        document.querySelector("div.progress-gptranslate-reading").remove();
1333    }
1334  }
1335  function oe(e) {
1336    let t = `<div class="progress progress-gptranslate-reading">\n\t\t\t\t\t\t\t<div class="toast show" role="alert" aria-live="assertive" aria-atomic="true">\n\t\t\t\t\t\t\t  <div class="toast-header">\n\t\t\t\t\t\t\t    <strong class="progress-text me-auto">${MOD_GPTRANSLATE_READING_EMPTY}</strong>\n\t\t\t\t\t\t\t    <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class="toast-body">\n\t\t\t\t\t\t\t    <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>`,
1337      a = document.createElement("div");
1338    (a.innerHTML = t),
1339      document.body.appendChild(a.firstChild),
1340      a.remove(),
1341      setTimeout(function () {
1342        ie();
1343      }, 2e3),
1344      (e.innerHTML =
1345        '<path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"></path>'),
1346      (e.dataset.icon = "play-state");
1347  }
1348  function le(e) {
1349    let t = "path" == e.nodeName ? e.parentNode : e,
1350      a = t.dataset.icon;
1351    var o = i;
1352    if (sessionStorage.getItem("googtrans")) {
1353      var l = sessionStorage.getItem("googtrans").split("|");
1354      l[1] && (o = l[1]);
1355    }
1356    if (
1357      ("male" == chatgptResponsivevoiceLanguageGender
1358        ? (n = r)
1359        : "female" == chatgptResponsivevoiceLanguageGender && (n = s),
1360      o in n && ((o = n[o]), responsiveVoice.setDefaultVoice(o)),
1361      "play-state" == a)
1362    ) {
1363      (t.innerHTML =
1364        '<path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"></path>'),
1365        (t.dataset.icon = "stop-state");
1366      var c = "",
1367        d = document.querySelectorAll(chatgptMainpageSelector);
1368      if (0 === d.length) return oe(t), !1;
1369      function p(e) {
1370        return e.replace(/\b[A-Z]+\b/g, function (e) {
1371          return e.charAt(0) + e.slice(1).toLowerCase();
1372        });
1373      }
1374      var g =
1375        "script, noscript, style, .screenreader_embed_play_button, .screenreader_embed_stop_button, *[aria-hidden=true]";
1376      if (
1377        (chatgptElementsToExcludeCustom &&
1378          (g += ", " + chatgptElementsToExcludeCustom),
1379        d.forEach(function (e) {
1380          var t,
1381            a = e.cloneNode(!0);
1382          (t = a),
1383            g
1384              .split(",")
1385              .map(function (e) {
1386                return e.trim();
1387              })
1388              .forEach(function (e) {
1389                t.querySelectorAll(e).forEach(function (e) {
1390                  e.remove();
1391                });
1392              });
1393          var n = Array.from(a.childNodes).filter(function (e) {
1394              return (
1395                e.nodeType !== Node.ELEMENT_NODE ||
1396                ("script" !== e.nodeName.toLowerCase() &&
1397                  "noscript" !== e.nodeName.toLowerCase() &&
1398                  "style" !== e.nodeName.toLowerCase() &&
1399                  "true" !== e.getAttribute("aria-hidden"))
1400              );
1401            }),
1402            r = document.createElement("div");
1403          n.forEach(function (e) {
1404            r.appendChild(e);
1405          }),
1406            (c += r.textContent.trim() + ". ");
1407        }),
1408        !(c = (c = p(
1409          (c = (c = (c = (c = c.replace(/[\n\r\t»]/g, " ")).replace(
1410            /\s+/g,
1411            " ",
1412          )).replace(/\s\./g, ".")).replace(/\.\.+/g, ".")),
1413        )).trim()))
1414      )
1415        return oe(t), !1;
1416      responsiveVoice.speak(c, o, {
1417        volume: gptAudioVolume / 100,
1418        rate: {
1419          veryslow: 0.7,
1420          slow: 0.8,
1421          normal: 0.9,
1422          fast: 1,
1423          veryfast: 1.1,
1424          extremelyfast: 1.2,
1425        }[gptVoiceSpeed],
1426        onend: function () {
1427          !(function (e) {
1428            if (document.querySelector("div.progress-gptranslate-reading")) {
1429              let e = document.querySelector(
1430                "div.progress-gptranslate-reading div.toast",
1431              );
1432              new bootstrap.Toast(e).dispose(),
1433                e.remove(),
1434                document
1435                  .querySelector("div.progress-gptranslate-reading")
1436                  .remove();
1437            }
1438            (e.innerHTML =
1439              '<path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"></path>'),
1440              (e.dataset.icon = "play-state");
1441            let t = `<div class="progress progress-gptranslate-reading">\n\t\t\t\t\t\t\t<div class="toast show" role="alert" aria-live="assertive" aria-atomic="true">\n\t\t\t\t\t\t\t  <div class="toast-header">\n\t\t\t\t\t\t\t    <strong class="progress-text me-auto">${MOD_GPTRANSLATE_READING_END}</strong>\n\t\t\t\t\t\t\t    <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class="toast-body">\n\t\t\t\t\t\t\t    <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>`,
1442              a = document.createElement("div");
1443            (a.innerHTML = t),
1444              document.body.appendChild(a.firstChild),
1445              a.remove(),
1446              setTimeout(function () {
1447                ie();
1448              }, 2e3);
1449          })(t);
1450        },
1451      }),
1452        (function (e) {
1453          let t = `<div class="progress progress-gptranslate-reading">\n\t\t\t\t\t\t\t<div class="toast show" role="alert" aria-live="assertive" aria-atomic="true">\n\t\t\t\t\t\t\t  <div class="toast-header">\n\t\t\t\t\t\t\t    <strong class="progress-text me-auto">${MOD_GPTRANSLATE_READING_INPROGRESS}</strong>\n\t\t\t\t\t\t\t    <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class="toast-body">\n\t\t\t\t\t\t\t    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>`,
1454            a = document.createElement("div");
1455          (a.innerHTML = t),
1456            document.body.appendChild(a.firstChild),
1457            a.remove();
1458        })();
1459    } else
1460      responsiveVoice.cancel(),
1461        ie(),
1462        (t.innerHTML =
1463          '<path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"></path>'),
1464        (t.dataset.icon = "play-state");
1465  }
1466  function ce() {
1467    (re = !1),
1468      document
1469        .querySelectorAll(
1470          k +
1471            " .gpt_float_switcher .gt-selected span.gpt_float_switcher-arrow.gpt_arrow_rotate",
1472        )
1473        .forEach(function (e) {
1474          e.classList.remove("gpt_arrow_rotate");
1475        }),
1476      document
1477        .querySelectorAll(k + " .gpt_float_switcher .gpt_options.gt-open")
1478        .forEach(function (e) {
1479          ("left" != S && "right" != S) ||
1480            (e.removeEventListener("mousewheel", se),
1481            e.removeEventListener("touchstart", se),
1482            e.removeEventListener("touchmove", se),
1483            e.removeEventListener("touchend", se)),
1484            e.classList.remove("gt-open"),
1485            setTimeout(function () {
1486              e.style.display = "none";
1487            }, 200);
1488        });
1489  }
1490  function de(e) {
1491    var t = e.getAttribute("data-gpt-lang"),
1492      a = e.parentNode
1493        .querySelector('a[data-gpt-lang="' + t + '"] img')
1494        .getAttribute("src");
1495    setTimeout(function () {
1496      const t = e.parentNode.querySelector("a.gpt-current");
1497      t && t.classList.remove("gpt-current"), e.classList.add("gpt-current");
1498    }, 400),
1499      e.parentNode.parentNode
1500        .querySelector(".gt-selected img")
1501        .setAttribute("src", a),
1502      (e.parentNode.parentNode.querySelector(
1503        ".gt-selected span.gt-lang-code",
1504      ).innerText = t),
1505      ce();
1506  }
1507  if (
1508    (setTimeout(function () {
1509      document
1510        .querySelectorAll(k + " .gpt_float_switcher")
1511        .forEach(function (e) {
1512          e.style.opacity = 1;
1513        });
1514    }, 20),
1515    document.querySelectorAll(k + " a[data-gpt-lang]").forEach(function (e) {
1516      e.addEventListener("click", function (t) {
1517        if (
1518          (t.preventDefault(),
1519          document.querySelectorAll("div.progress-gptranslate div.toast")
1520            .length > 0)
1521        )
1522          return !1;
1523        ne(i + "|" + e.getAttribute("data-gpt-lang")), de(e);
1524      });
1525    }),
1526    document.querySelectorAll(k + " div.gt-selected").forEach(function (e) {
1527      e.addEventListener("click", function (t) {
1528        var a;
1529        (t.stopPropagation(),
1530        "svg" != t.target.nodeName && "path" != t.target.nodeName)
1531          ? re
1532            ? ce()
1533            : ((a = e.parentNode),
1534              (re = !0),
1535              a
1536                .querySelectorAll(k + " .gpt_options a img:not([src])")
1537                .forEach(function (e) {
1538                  e.setAttribute("src", e.getAttribute("data-gt-lazy-src"));
1539                }),
1540              a
1541                .querySelector(
1542                  k + " .gt-selected span.gpt_float_switcher-arrow",
1543                )
1544                .classList.add("gpt_arrow_rotate"),
1545              a.querySelectorAll(k + " .gpt_options").forEach(function (e) {
1546                (e.style.display = "block"),
1547                  setTimeout(function () {
1548                    e.classList.add("gt-open"),
1549                      ("left" != S && "right" != S) ||
1550                        (e.addEventListener("mousewheel", se),
1551                        e.addEventListener("touchstart", se),
1552                        e.addEventListener("touchmove", se),
1553                        e.addEventListener("touchend", se));
1554                  }, 200);
1555              }))
1556          : 0 ==
1557              document.querySelectorAll("div.progress-gptranslate div.toast")
1558                .length && le(t.target);
1559      }),
1560        e.addEventListener("pointerenter", function (e) {
1561          e.target.parentNode
1562            .querySelectorAll(".gpt_options img:not([src])")
1563            .forEach(function (e) {
1564              e.setAttribute("src", e.getAttribute("data-gt-lazy-src"));
1565            });
1566        });
1567    }),
1568    document.addEventListener("click", function (e) {
1569      re && ce();
1570    }),
1571    gptRewriteLanguageUrl &&
1572      (window.addEventListener("beforeunload", (e) => {
1573        history.replaceState(null, "", E);
1574      }),
1575      window.addEventListener(
1576        "keydown",
1577        (e) => (
1578          (116 === e.keyCode || (82 === e.keyCode && e.ctrlKey)) &&
1579            history.replaceState(null, "", E),
1580          !0
1581        ),
1582      ),
1583      gptRewriteDefaultLanguageUrl))
1584  ) {
1585    const e = new URL(E),
1586      t = e.pathname.split("/");
1587    let n = 1;
1588    ("index.php" == t[n] || gptSubfolderInstallation) && (n = 2);
1589    Object.keys(a).includes(t[n]) ? (t[n] = W) : t.splice(n, 0, W),
1590      (e.pathname = t.join("/"));
1591    const r = e.toString();
1592    history.replaceState(null, "", r);
1593  }
1594  if (
1595    b &&
1596    window.sessionStorage &&
1597    window.navigator &&
1598    null == sessionStorage.getItem("gpt_autoswitch") &&
1599    !/bot|spider|slurp|facebook/i.test(navigator.userAgent)
1600  ) {
1601    var ge = (navigator.language || navigator.userLanguage).toLowerCase();
1602    switch (ge) {
1603      case "zh":
1604      case "zh-cn":
1605        var pe = "zh-CN";
1606        break;
1607      case "zh-tw":
1608      case "zh-hk":
1609        pe = "zh-TW";
1610        break;
1611      case "he":
1612        pe = "iw";
1613        break;
1614      default:
1615        pe = ge.substr(0, 2);
1616    }
1617    if (W == i && pe != i && M.includes(pe)) {
1618      let e = function () {
1619        ne(V + "|" + pe);
1620        var e = document.querySelector(k + ' a[data-gpt-lang="' + pe + '"]');
1621        e &&
1622          (e.querySelectorAll("img:not([src])").forEach(function (e) {
1623            e.setAttribute("src", e.getAttribute("data-gt-lazy-src"));
1624          }),
1625          de(e));
1626      };
1627      void 0 !== window.gpt_translate_script
1628        ? (window.gpt_translate_script.onload = function () {
1629            setTimeout(function () {
1630              e();
1631            }, 1);
1632          })
1633        : setTimeout(function () {
1634            e();
1635          }, 1);
1636    }
1637    sessionStorage.setItem("gpt_autoswitch", 1);
1638  }
1639  if (
1640    R &&
1641    window.sessionStorage &&
1642    null == sessionStorage.getItem("gpt_detect_autoswitch") &&
1643    window.navigator &&
1644    !/bot|spider|slurp|facebook/i.test(navigator.userAgent) &&
1645    W != i &&
1646    M.includes(W)
1647  ) {
1648    let e = function () {
1649      ne(i + "|" + W);
1650      var e = document.querySelector(k + ' a[data-gpt-lang="' + W + '"]');
1651      e &&
1652        (e.querySelectorAll("img:not([src])").forEach(function (e) {
1653          e.setAttribute("src", e.getAttribute("data-gt-lazy-src"));
1654        }),
1655        de(e));
1656    };
1657    void 0 !== window.gpt_translate_script
1658      ? (window.gpt_translate_script.onload = function () {
1659          setTimeout(function () {
1660            e();
1661          }, 1);
1662        })
1663      : setTimeout(function () {
1664          e();
1665        }, 1),
1666      sessionStorage.setItem("gpt_detect_autoswitch", 1);
1667  }
1668  if (chatgptDraggableWidget) {
1669    const e = document.getElementById("gpt_float_wrapper"),
1670      t = JSON.parse(sessionStorage.getItem("gptranslateDragPosition")) || {};
1671    if (!e) return;
1672    Object.keys(t).length && ((e.style.left = t.x), (e.style.top = t.y)),
1673      e.addEventListener("mousedown", (a) => {
1674        a.preventDefault(), (e.style.cursor = "grabbing");
1675        const n = a.clientX - e.getBoundingClientRect().left,
1676          r = a.clientY - e.getBoundingClientRect().top;
1677        function s(a) {
1678          (e.style.left = a.clientX - n + "px"),
1679            (e.style.top = a.clientY - r + "px"),
1680            (t.x = e.style.left),
1681            (t.y = e.style.top),
1682            sessionStorage.setItem(
1683              "gptranslateDragPosition",
1684              JSON.stringify(t),
1685            );
1686        }
1687        document.addEventListener("mousemove", s),
1688          document.addEventListener("mouseup", function t() {
1689            document.removeEventListener("mousemove", s),
1690              document.removeEventListener("mouseup", t),
1691              (e.style.cursor = "grab");
1692          });
1693      });
1694  }
1695})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.