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(/ /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| )/g) && 1069 (e.gpt_startwhitespace = 1), 1070 e.textContent.match(/( |\u00A0| )$/) && 1071 (e.gpt_endwhitespace = 1), 1072 (p = (p = (p = (p = gTranslateEngine 1073 ? p.replace(/ /g, " ") 1074 : p.replace(/ /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(/ /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| )/g) && 1240 (e.gpt_startwhitespace = 1), 1241 e.textContent.match(/( |\u00A0| )$/) && 1242 (e.gpt_endwhitespace = 1), 1243 (n = (n = (n = (n = gTranslateEngine 1244 ? n.replace(/ /g, " ") 1245 : n.replace(/ /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.