CINXE.COM
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title></title> <meta name="description" content="" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> <link id= "icon32" rel="icon" type="image/png" href="/spicychat32x32.png" sizes="32x32" /> <link id= "icon16" rel="icon" type="image/png" href="/spicychat16x16.png" sizes="16x16" /> <link rel="manifest" href="/manifest.json" /> <!-- preconnect --> <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"> <link rel="preconnect" href="https://ndsc.b-cdn.net" crossorigin="anonymous" /> <!-- Preload to speed up font fetching --> <link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700,900&display=swap"> <!-- Ensures fonts are applioed without blocking rendering --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700,900&display=swap" onload="this.onload=null;this.rel='stylesheet'"> <!-- Fallback for no JavaScript --> <noscript> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700,900&display=swap"> </noscript> <link rel="apple-app-site-association file" href="/.well-known/apple-app-site-association" /> <link rel="assetlinks.json file" href="/.well-known/assetlinks.json" /> <script> var beamer_config = { product_id: "PbDfoaJX55763", lazy: true, button: false, }; </script> <script src="https://script.tapfiliate.com/tapfiliate.js" type="text/javascript" async ></script> <script type="text/javascript"> (function (t, a, p) { t.TapfiliateObject = a; t[a] = t[a] || function () { (t[a].q = t[a].q || []).push(arguments); }; })(window, "tap"); tap("create", "47999-02aa4a", { integration: "javascript" }); tap("detect"); </script> <link rel="preload" as="script" href="data:application/octet-stream;base64,aW1wb3J0IFJlYWN0RE9NIGZyb20gInJlYWN0LWRvbS9jbGllbnQiOwppbXBvcnQgc2V0dXBMb2dSb2NrZXRSZWFjdCBmcm9tICdsb2dyb2NrZXQtcmVhY3QnOwppbXBvcnQgeyBUcmFja0pTIH0gZnJvbSAidHJhY2tqcyI7CmltcG9ydCB7IFJlYWN0VGFnTWFuYWdlciB9IGZyb20gJ3JlYWN0LWd0bS10cyc7CmltcG9ydCB7IEtpbmRlUHJvdmlkZXIgfSBmcm9tICJAa2luZGUtb3NzL2tpbmRlLWF1dGgtcmVhY3QiOwppbXBvcnQgeyBQcm92aWRlciB9IGZyb20gInJlYWN0LXJlZHV4IjsKaW1wb3J0ICJjb3JlLWpzL2FjdHVhbC9vYmplY3QvaGFzLW93biI7IC8vZm9yIGlvcyAxNAppbXBvcnQgImNvcmUtanMvcHJvcG9zYWxzL3N0cmluZy1yZXBsYWNlLWFsbC1zdGFnZS00IjsgLy9mb3IgaW9zMTIKaW1wb3J0ICJnbG9iYWx0aGlzIjsKaW1wb3J0IHN0b3JlIGZyb20gIi4vc3RvcmUiOwppbXBvcnQgIi4vaW5kZXguY3NzIjsKaW1wb3J0IFJvdXRlcyBmcm9tICIuL3JvdXRlcy9Sb3V0ZXMiOwppbXBvcnQgeyBTSE9VTERfUkVESVJFQ1RfVVNFUl9MT0NBTF9TVE9SQUdFX0tFWSB9IGZyb20gIi4vY29uc3RhbnRzIjsKCmlmIChsb2NhdGlvbi5ob3N0LmluZGV4T2YoImxvY2FsaG9zdCIpICE9PSAwKSB7CiAgVHJhY2tKUy5pbnN0YWxsKHsKICAgIHRva2VuOiBwcm9jZXNzLmVudi5WSVRFX1RSQUNLSlNfVE9LRU4sCiAgICBhcHBsaWNhdGlvbjogcHJvY2Vzcy5lbnYuVklURV9UUkFDS0pTX0FQUExJQ0FUSU9OLAogICAgbmV0d29yazogeyBlbmFibGVkOiBmYWxzZSB9LAogIH0pOwp9CgppZiAobG9jYXRpb24uaG9zdC5pbmRleE9mKCJzdGFnaW5nIikgIT09IC0xKSB7CiAgLy8gRHluYW1pY2FsbHkgaW1wb3J0IExvZ1JvY2tldAogIGltcG9ydCgnbG9ncm9ja2V0JykudGhlbihMb2dSb2NrZXQgPT4gewogICAgTG9nUm9ja2V0LmRlZmF1bHQuaW5pdChwcm9jZXNzLmVudi5WSVRFX0xPR1JPQ0tFVF9TVEFHSU5HKTsKICAgIHNldHVwTG9nUm9ja2V0UmVhY3QoTG9nUm9ja2V0LmRlZmF1bHQpOwogICAgd2luZG93LkxvZ1JvY2tldCA9IExvZ1JvY2tldC5kZWZhdWx0OwogIH0pLmNhdGNoKGVycm9yID0+IHsKICAgIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIExvZ1JvY2tldDoiLCBlcnJvcik7CiAgfSk7Cn0KClJlYWN0VGFnTWFuYWdlci5pbml0KHsKICBjb2RlOiAnR1RNLU5DQkozV0o5JywgLy8gR1RNIENvZGUKICBkZWJ1ZzogZmFsc2UsIC8vIGRlYnVnIG1vZGUgKGRlZmF1bHQgZmFsc2UpCiAgcGVyZm9ybWFuY2U6IHRydWUsIC8vIHN0YXJ0cyBHVE0gb25seSBhZnRlciB1c2VyIGludGVyYWN0aW9uIChpbXByb3ZlIGluaXRpYWwgcGFnZSBsb2FkKQp9KTsKClJlYWN0RE9NLmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKSkucmVuZGVyKAogIDxLaW5kZVByb3ZpZGVyCiAgICBjbGllbnRJZD17cHJvY2Vzcy5lbnYuVklURV9LSU5ERV9DTElFTlRfSUR9CiAgICBkb21haW49e3Byb2Nlc3MuZW52LlZJVEVfS0lOREVfRE9NQUlOfQogICAgbG9nb3V0VXJpPXt3aW5kb3cubG9jYXRpb24ub3JpZ2lufQogICAgcmVkaXJlY3RVcmk9e3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59CiAgICBpc0Rhbmdlcm91c2x5VXNlTG9jYWxTdG9yYWdlPXtwcm9jZXNzLmVudi5WSVRFX0tJTkRFX1VTRV9MT0NBTF9TVE9SQUdFID09PSAidHJ1ZSJ9CiAgICBvblJlZGlyZWN0Q2FsbGJhY2s9eyh1c2VyLCBhcHBTdGF0ZSkgPT4gewogICAgICBjb25zdCBzaG91bGRSZWRpcmVjdFVzZXIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTSE9VTERfUkVESVJFQ1RfVVNFUl9MT0NBTF9TVE9SQUdFX0tFWSkgPT09ICJ0cnVlIgogICAgICAvLyB1c2VkIHRvIHJlZGlyZWN0IHVzZXIKICAgICAgaWYoc2hvdWxkUmVkaXJlY3RVc2VyKXsKICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTSE9VTERfUkVESVJFQ1RfVVNFUl9MT0NBTF9TVE9SQUdFX0tFWSwgImZhbHNlIik7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gYXBwU3RhdGU/LmtpbmRlT3JpZ2luVXJsIHx8ICIvIjsKCiAgICAgIH1lbHNlIGlmIChhcHBTdGF0ZT8ucmVkaXJlY3RUbykgewogICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IGFwcFN0YXRlPy5yZWRpcmVjdFRvOwogICAgICB9CiAgICB9fQogID4KICAgIDxQcm92aWRlciBzdG9yZT17c3RvcmV9PgogICAgICA8Um91dGVzIGNsYXNzTmFtZT17ImRhcmsgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQifSAvPgogICAgPC9Qcm92aWRlcj4KICA8L0tpbmRlUHJvdmlkZXI+Cik7Cg==" /> <script type="module" crossorigin src="/assets/index-WeAhjAeA.js"></script> <link rel="modulepreload" crossorigin href="/assets/lodash-CbCywYXj.js"> <link rel="modulepreload" crossorigin href="/assets/vendor-BWyhtev6.js"> <link rel="modulepreload" crossorigin href="/assets/gpt-token-Ba_r2oKT.js"> <link rel="modulepreload" crossorigin href="/assets/common-B8UeAF__.js"> <link rel="stylesheet" crossorigin href="/assets/index-BFmaiiVb.css"> <link rel="stylesheet" crossorigin href="/assets/rc-slider-D2K7YoIP.css"> <script type="module">import.meta.url;import("_").catch(()=>1);(async function*(){})().next();if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script> <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script> <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head> <body> <div id="root" role="main"></div> <script type="nomodule"> window.mainJSLoaded = true; </script> <script> // Function to force reload the page bypassing the cache function forceReload() { if (window.location.href.indexOf("?") > -1) { // If URL already has parameters, add a cache-busting parameter window.location.href = window.location.href + "&nocache=" + new Date().getTime(); } else { // If no parameters in URL, add a cache-busting parameter window.location.href = window.location.href + "?nocache=" + new Date().getTime(); } } // Check if main JS failed to load after a reasonable timeout setTimeout(function () { if (!window.mainJSLoaded) { // Display custom error message var messageContainer = document.createElement("div"); messageContainer.innerHTML = "<p>Seems like your browser cached an old broken version of the site. Try <u><a href='#' onclick='forceReload();return false;'>Reloading</a></u>, clearing your cache or using a different browser.</p><br><button onclick='forceReload();return false;'>Reload Page</button>"; document.body.insertBefore( messageContainer, document.body.firstChild ); } }, 15000); // Adjust timeout as necessary </script> <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script> <script nomodule crossorigin id="vite-legacy-polyfill" src="/assets/polyfills-legacy-Dlz8PvNK.js"></script> <script nomodule crossorigin id="vite-legacy-entry" data-src="/assets/index-legacy-TdLrQ6E2.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script> </body> </html>