1<!DOCTYPE html><html lang="en"><head> 2 <meta charset="utf-8"> 3 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 4 <meta name="theme-color" content="#292a2a"> 5 <!-- The site is dark-only. Declaring color-scheme here (in the head, parsed 6 early) â not just via the :root CSS below â stops Android WebView / in-app 7 browsers (Telegram, Gmail, esp. Samsung's WebView) from applying their own 8 "force dark" / algorithmic darkening ON TOP of the already-dark UI, which 9 double-darkened everything. Chrome proper never force-darkened, so it was fine. --> 10 <meta name="color-scheme" content="dark"> 11 <meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content, viewport-fit=cover"> 12 <link rel="preconnect" href="https://fonts.googleapis.com"> 13 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""> 14 <link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@700&display=swap" rel="stylesheet"> 15 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"> 16
16<script> 17 document.documentElement.style.backgroundColor = "#121212"; 18 </script>
18 19 20 <style> 21 :root { 22 color-scheme: dark; 23 } 24 25 /* Target both html and body to ensure zero white space */ 26 html, 27 body { 28 margin: 0; 29 padding: 0; 30 height: 100%; 31 width: 100%; 32 color: #ffffff; 33 } 34 35 html.loading-state { 36 background-color: #292a2a !important; 37 } 38 39 /* Background Logic */ 40 body.loading-bg { 41 background-color: #292a2a !important; 42 background-image: url("/bg/hearts.svg"); 43 background-repeat: repeat; 44 } 45 46 /* ---------------- Splash screen ---------------- */ 47 /* Standalone overlay on <body> (a sibling of #app), so its lifetime is 48 independent of when the Vue app mounts â that lets us guarantee a 49 minimum on-screen time so the animated logo is always actually seen, 50 even when the app boots almost instantly. `hidden` by default (no-JS / 51 prerendered pages stay clean); the inline controller reveals it. Opaque 52 hearts backdrop so it fully covers the app booting underneath. */ 53 .splash-root { 54 position: fixed; 55 inset: 0; 56 z-index: 9999; 57 display: flex; 58 align-items: center; 59 justify-content: center; 60 overflow: hidden; 61 background-color: #292a2a; 62 background-image: url("/bg/hearts.svg"); 63 background-repeat: repeat; 64 /* The geometric centre reads a touch "low" to the eye (optical-centre 65 illusion), so lift the wordmark slightly above true centre via 66 bottom padding â leaves the animation's transform untouched. */ 67 padding-bottom: 12vh; 68 } 69 .splash-root[hidden] { 70 display: none; 71 } 72 73 /* Graceful exit: the controller adds .splash-leaving and the whole 74 overlay cross-fades away over the freshly rendered app. */ 75 .splash-root.splash-leaving { 76 opacity: 0; 77 transform: scale(1.015); 78 transition: opacity 0.55s ease, transform 0.7s ease; 79 pointer-events: none; 80 } 81 82 /* The logo + wordmark: a soft fade / zoom-in on entry, then it simply 83 settles and stays put (no floating). Perfectly centred by the root + 84 stage flex centering on both axes. */ 85 .splash-stage { 86 display: flex; 87 align-items: center; 88 justify-content: center; 89 animation: splashIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; 90 will-change: transform, opacity; 91 } 92 @keyframes splashIn { 93 from { opacity: 0; transform: translateY(7px) scale(0.92); filter: blur(3px); } 94 to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } 95 } 96 97 /* logo + wordmark row */ 98 .app-loader { 99 display: flex; 100 justify-content: center; 101 align-items: center; 102 font-weight: bold; 103 font-size: 2rem; 104 filter: drop-shadow(-1px 3px 5px rgba(255, 217, 0, 0.322)); 105 } 106 .app-loader img { 107 width: 3rem; 108 height: 3rem; 109 margin-right: 15px; 110 /* reserve the box so the late-loading face never shifts the text */ 111 flex: none; 112 } 113 114 .font-exo { 115 font-family: "Exo 2", Arial, sans-serif; 116 } 117 118 .text-blue { 119 background-image: linear-gradient(180deg, #8ad9f1 0%, #2fb0d8 100%); 120 -webkit-background-clip: text; 121 background-clip: text; 122 -webkit-text-fill-color: transparent; 123 color: transparent; 124 text-shadow: 0 0 7px rgba(47, 176, 216, 0.25); 125 } 126 127 .text-orange { 128 background-image: linear-gradient(180deg, #f6d488 0%, #f2ad46 100%); 129 -webkit-background-clip: text; 130 background-clip: text; 131 -webkit-text-fill-color: transparent; 132 color: transparent; 133 text-shadow: 0 0 6px rgba(242, 173, 70, 0.22); 134 margin-left: 6px; 135 } 136 137 /* omegleai.com: the logo IS the O of "Omegle", so it has to sit against 138 the wordmark instead of a logo's width away from it. Same 2px the app's 139 MainLogo leaves between the two. */ 140 .app-loader img.as-o { 141 margin-right: 0; 142 } 143 144 /* omegleai.com wordmark: flat cyan + glow, like MainLogo's .text-megle. 145 Not a gradient, on purpose: that is what the in-app logo looks like. */ 146 .text-megle-splash { 147 color: #00bfff; 148 text-shadow: #267bff 0px 0px 8px; 149 margin-left: 2px; 150 } 151 152 /* The gold half of the OmegleAI wordmark. Same gradient as .text-orange 153 but without its 6px lead-in, which is there to separate "AI" from the 154 logo in "AI peeps" and here would split the word into "megle AI". */
155 .text-ai-splash { 156 background-image: linear-gradient(180deg, #f6d488 0%, #f2ad46 100%); 157 -webkit-background-clip: text; 158 background-clip: text; 159 -webkit-text-fill-color: transparent; 160 color: transparent; 161 text-shadow: 0 0 6px rgba(242, 173, 70, 0.22); 162 } 163 164 .text-blue-margin { 165 background-image: linear-gradient(180deg, #8ad9f1 0%, #2fb0d8 100%); 166 -webkit-background-clip: text; 167 background-clip: text; 168 -webkit-text-fill-color: transparent; 169 color: transparent; 170 text-shadow: 0 0 7px rgba(47, 176, 216, 0.25); 171 margin-left: 6px; 172 } 173 </style> 174 175 <title>Best AI Characters â AI Girlfriend, Anime & Roleplay | AI Peeps</title> 176 <meta name="description" content="Explore the best AI characters on AI Peeps. Browse featured AI girlfriends, anime characters, and roleplay companions with unique personalities, memory, and image generation."> 177 178 <meta name="robots" content="index, follow"> 179 <meta name="author" content="VB"> 180 <link rel="canonical" href="https://aipeeps.com/gallery/featured/"> 181 182 <meta property="og:type" content="website"> 183 <meta property="og:title" content="Best AI Characters â AI Girlfriend, Anime & Roleplay | AI Peeps"> 184 <meta property="og:description" content="Browse featured AI characters on AI Peeps, including anime, realistic, and roleplay companions with rich personalities and visual styles."> 185 <meta property="og:image" content="https://cdn.aipeeps.com/masthead/feed/nefertari-c507.webp"> 186 <meta property="og:url" content="https://aipeeps.com/gallery/featured/"> 187 188 <meta name="twitter:card" content="summary_large_image"> 189 <meta name="twitter:title" content="Best AI Characters â AI Girlfriend, Anime & Roleplay | AI Peeps"> 190 <meta name="twitter:description" content="Explore featured AI characters on AI Peeps, from anime companions to realistic roleplay characters."> 191 <meta name="twitter:image" content="https://cdn.aipeeps.com/masthead/feed/nefertari-c507.webp"> 192 193 <link rel="icon" href="/favicon.ico"> 194 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 195 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 196 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 197 198
198<script> 199 (function (w) { 200 w.fpr = 201 w.fpr || 202 function () { 203 w.fpr.q = w.fpr.q || []; 204 w.fpr.q[arguments[0] == "set" ? "unshift" : "push"](arguments); 205 }; 206 })(window); 207 fpr("init", { cid: "eb68kvfe" }); 208 fpr("click"); 209 </script>
209 210
210<script src="https://cdn.firstpromoter.com/fpr.js" async=""></script>
210 211
211<script> 212 (function () { 213 // The site is dark-only: the light theme was retired along with its 214 // toggle in Settings. Anyone still carrying scheme="light" from before is 215 // moved back to dark here, and the stale key is dropped so it cannot 216 // resurrect the half-maintained light palette. 217 document.documentElement.setAttribute("data-scheme", "dark"); 218 try { 219 localStorage.removeItem("scheme"); 220 } catch (e) {} 221 })(); 222 </script>
222 223 224
224<script type="module" crossorigin="" src="/assets/app-Brzv3Rd5.js"></script>
224 225 <link rel="stylesheet" crossorigin="" href="/css/app.BaWAZpJu.css"> 226 <link rel="manifest" href="/manifest.webmanifest">
226<script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script>
226<link rel="modulepreload" crossorigin="" href="/assets/ChatHead-D8LweFyZ.js"><link rel="stylesheet" href="/css/ChatHead.XgiJz5XQ.css"></head> 227 228 <body class="loading-bg"> 229 <noscript><img height="1" width="1" style="display: none" src="https://www.facebook.com/tr?id=1443710170149796&ev=PageView&noscript=1"></noscript> 230 <div id="app" data-server-rendered="true"><div id="app" class="hearts"><div style="position:relative;"><div class="hero-bg-orb orb-1"></div><div class="hero-bg-orb orb-2"></div></div><!----><!----><span id="appcont" class=""><div id="speech-bubble-container" data-v-e65b46fe=""><p id="speech-bubble" class="" data-v-e65b46fe=""></p></div><header class="app-header boxShadow app-header" data-v-9bbed9d0=""><div class="header-left" data-v-9bbed9d0=""><a href="/" class="router-link" data-v-9bbed9d0=""><div class="main-logo" style="cursor:pointer;position:relative;" data-v-9bbed9d0="" data-v-457b426b=""><div class="name" data-v-457b426b=""><span data-v-457b426b=""><span style="position:relative;" data-v-457b426b=""><img src="/assets/small_fill.B3_fbkl5.png" alt="Logo" class="logo" id="logo" style="position:relative;" data-v-457b426b=""><!----></span> </span><span class="text-name" data-v-457b426b=""><span class="text-disappear-second text-logo text-ai text-huge" data-v-457b426b="">AI</span><span class="text-disappear-second text-logo text-peeps text-huge" data-v-457b426b="">peeps</span></span></div></div></a><div class="social-btns" data-v-9bbed9d0="" data-v-3536c240=""><!--[--><a class="discord-btn router-link social-btn" href="https://discord.gg/6kg5XMYtjS" target="_blank" rel="noopener noreferrer" data-v-3536c240=""><span data-v-3536c240="" data-v-9d80f832=""><button class="base-button main-button" type="button" data-v-9d80f832=""><!----><i class="fa fa-brands fa-discord" data-v-9d80f832=""></i><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></a><!--]--></div></div><div class="header-nav" data-v-9bbed9d0=""><!----><a href="/create-peep/" class="nav-item nav-primary" data-v-9bbed9d0=""><i class="fas fa-wand-magic-sparkles" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Create</span></a><a href="/gallery/" class="nav-item active" data-v-9bbed9d0=""><i class="fas fa-compass" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Browse</span></a><a href="/gallery/creators/" class="nav-item hide-medium" data-v-9bbed9d0=""><i class="fas fa-users" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Creators</span></a><a href="/collections/" class="nav-item hide-narrow" data-v-9bbed9d0=""><i class="fas fa-layer-group" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Collections</span></a><a href="/feed/" class="nav-item" data-v-9bbed9d0=""><i class="fas fa-stream" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Feed</span></a><button class="nav-item" data-v-9bbed9d0=""><i class="fas fa-comment-dots" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Chat</span></button><!----><!----><!----><!----><!----></div><div class="header-actions" data-v-9bbed9d0=""><button class="settings-burger-button" aria-label="Settings" data-v-9bbed9d0=""><i class="fa-solid fa-bars" data-v-9bbed9d0=""></i><!----></button></div></header><!----><!----><!----><div class="page" data-v-083acb9c=""><header class="hub-masthead has-girl" data-v-083acb9c="" data-v-95f85f81=""><!--[--><img class="hub-girl-bg" src="https://cdn.aipeeps.com/masthead/welcome/nikki-grant-960d.webp" alt="" data-v-95f85f81=""><!----><div class="hub-girl-scrim" data-v-95f85f81=""></div><!--]--><!----><!----><div class="hub-title-row" data-v-95f85f81=""><h1 class="cool peeps-brand hub-title" data-v-95f85f81="">Peeps <span class="hub-title-accent" data-v-95f85f81="">Hub</span></h1></div><p class="hub-tagline" data-v-95f85f81="">Discover thousands of AI characters</p><span class="hub-girl-cta" data-v-95f85f81=""><!--[-->⨠Meet Nikki Grant â<!--]--></span></header><!----><div class="container top-and-filters" data-v-083acb9c=""><!----><div class="container" style="gap:0.5rem;align-items:end;width:100%;" data-v-083acb9c=""><div class="container gallery-options-wrapper" data-v-083acb9c=""><nav class="gallery-tabs" data-v-083acb9c=""><!--[--><button type="button" class="active gl-tab" style="--gt:rgb(235, 48, 230);" aria-current="page" data-v-083acb9c=""><i class="fas fa-check-circle" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">Featured</span></button><button type="button" class="gl-tab" style="--gt:rgb(104, 236, 97);" data-v-083acb9c=""><i class="fas fa-globe" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">All</span></button><button type="button" class="gl-tab" style="--gt:rgb(242, 173, 70);" data-v-083acb9c=""><i class="fas fa-users" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">Creators</span></button><!--]--></nav><!----><!----><!----><!----></div></div><!----></div><!----><!----><!----><div class="gallery-page" style="padding-top:0.3rem;" data-v-083acb9c=""><div class="row-container peeps-toolbar" data-v-083acb9c=""><!--[-->
230<div class="row-container sort-controls" data-v-083acb9c=""><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button toggled" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-arrow-down-wide-short xblue" data-v-083acb9c=""></i> Newest</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-heart xyellow" data-v-083acb9c=""></i> Top</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-shuffle xmagenta" data-v-083acb9c=""></i> Daily</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></div><div class="row-container filter-controls" data-v-083acb9c=""><!----><!----><div class="tag-selector" data-v-083acb9c="" data-v-1aa5bd95=""><div class="row-container space closed-container" data-v-1aa5bd95=""><div class="main-button" style="display:flex;gap:0.5rem;align-items:center;" data-v-1aa5bd95=""><span class="green-btn" data-v-1aa5bd95="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[-->ð²<!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span class="green-btn" data-v-1aa5bd95="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span style="color:white;" data-v-1aa5bd95=""><span class="xyellow">ð·ï¸ Tags</span></span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></div><div class="row-container" style="gap:0.5rem;justify-content:end;" data-v-1aa5bd95=""><div name="pop" class="row-container" style="gap:5px;flex-wrap:wrap;justify-content:end;" data-v-1aa5bd95=""></div><!----><!----></div><!----></div><!--teleport start--><!--teleport end--></div></div><!--]--><div class="row-container count-and-view" data-v-083acb9c=""><!----><button type="button" class="nsfw-toggle compact" role="switch" aria-checked="false" aria-label="Showing SFW media, click to switch to NSFW" data-v-083acb9c="" data-v-d14fa24c=""><span class="nsfw-toggle-thumb" data-v-d14fa24c=""></span><span class="active nsfw-toggle-btn" data-v-d14fa24c=""><span class="emoji" data-v-d14fa24c="">ð</span><span class="label" data-v-d14fa24c="">SFW</span></span><span class="nsfw-toggle-btn" data-v-d14fa24c=""><span class="emoji" data-v-d14fa24c="">ð¶ï¸</span><span class="label" data-v-d14fa24c="">NSFW</span></span></button><!----></div></div><!----><!----><!----></div><div class="bottom" data-v-083acb9c=""><!----><!----><!----></div></div><!----><div data-v-2ef2b70a=""><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><div data-v-2ef2b70a="" data-v-53635f6c=""><!----><!----></div><!----><!----><!----><!----><!----><!----><!----></div><!----></span></div></div> 231 232 <!-- Splash overlay: a standalone sibling of #app (NOT inside it), hidden by 233 default so no-JS / prerendered pages stay clean. The inline controller 234 below reveals it and keeps it on screen for a short guaranteed minimum 235 before cross-fading away. Just the animated brand logo + wordmark. --> 236 <div id="splash-root" class="splash-root" hidden=""> 237 <div class="splash-stage"> 238 <div class="app-loader"> 239 <img src="data:image/webp;base64,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" width="48" height="48" alt="AI Peeps" id="splash-logo"> 240 <span id="splash-word-1" class="font-exo text-orange">AI</span> 241 <span id="splash-word-2" class="font-exo text-blue-margin">peeps</span> 242 </div> 243 </div> 244 </div> 245 246 <!-- Splash controller: reveals the overlay and keeps it on screen for a 247 guaranteed minimum time before cross-fading out â independent of how 248 fast the app boots, so the animated logo is always actually seen. Skips 249 prerendered pages (which already have content in #app). Pure progressive 250 enhancement; without JS the overlay stays hidden and the page is 251 untouched. --> 252
252<script> 253 (function () { 254 try { 255 var root = document.getElementById("splash-root"); 256 var app = document.getElementById("app"); 257 if (!root || !app) return; 258 259 // omegleai.com is the same build under a different name, and this 260 // splash is the FIRST thing anyone sees â before Vue exists, so 261 // MainLogo cannot help here. Someone who came looking for an 262 // Omegle alternative and is greeted by another brand reads it as 263 // a wrong turn and leaves, so the wordmark is swapped here, ahead 264 // of the first paint, with no flash of the wrong name. 265 // Mirrors src/siteMode.js (hostname, ?omegle=1, or the sticky 266 // session flag it writes) â that runs later, hence the repetition. 267 var onOmegleHost = location.hostname.indexOf("omegleai") !== -1; 268 var omegle = onOmegleHost; 269 try { 270 var q = new URLSearchParams(location.search).get("omegle"); 271 if (q !== null) { 272 // ?omegle=0 only switches OFF the dev override; on the real 273 // domain the site is what it is. Same order as siteMode.js. 274 omegle = 275 ["0", "false", "off", "no"].indexOf(q.toLowerCase()) === -1 || 276 onOmegleHost; 277 } else { 278 omegle = 279 localStorage.getItem("omegle_mode") === "1" || onOmegleHost; 280 } 281 } catch (e) {} 282 if (omegle) { 283 var w1 = document.getElementById("splash-word-1"); 284 var w2 = document.getElementById("splash-word-2"); 285 var lg = document.getElementById("splash-logo"); 286 if (w1 && w2) { 287 w1.textContent = "megle"; 288 w1.className = "font-exo text-megle-splash"; 289 w2.textContent = "AI"; 290 w2.className = "font-exo text-ai-splash"; 291 } 292 if (lg) { 293 lg.alt = "OmegleAI"; 294 lg.className = "as-o"; 295 } 296 } 297 // Prerendered (SEO) page already has its content in #app â no 298 // splash intro there; only show it on app/SPA loads. 299 if (app.children.length > 0) return; 300 301 // Reveal the overlay (it covers the app booting underneath). 302 root.hidden = false; 303 304 var MIN_MS = 1100; // guaranteed minimum so the intro is seen 305 var MOUNT_WAIT = 6000; // safety cap for a very slow app mount 306 var now = function () { 307 return (window.performance && performance.now) 308 ? performance.now() : Date.now(); 309 }; 310 var t0 = now(); 311 var mounted = false, leaving = false; 312 var obs = null, timer = null; 313 314 function leave() { 315 if (leaving) return; 316 leaving = true; 317 if (obs) obs.disconnect(); 318 if (timer) clearTimeout(timer); 319 root.classList.add("splash-leaving"); 320 setTimeout(function () { 321 if (root.parentNode) root.parentNode.removeChild(root); 322 }, 650); 323 } 324 // Leave once it's been shown long enough AND the app is ready. 325 function tick() { 326 if (leaving) return; 327 if (now() - t0 >= MIN_MS && mounted) { 328 leave(); 329 return; 330 } 331 timer = setTimeout(tick, 80); 332 } 333 334 // App mounted = Vue rendered into #app. 335 if ("MutationObserver" in window) { 336 obs = new MutationObserver(function () { 337 if (app.children.length > 0) mounted = true; 338 }); 339 obs.observe(app, { childList: true }); 340 } else { 341 mounted = true; 342 } 343 setTimeout(function () { mounted = true; }, MOUNT_WAIT); // safety 344 tick(); 345 } catch (e) {} 346 })(); 347 </script>
347 348 349 <noscript> 350 <div style="padding:1rem;text-align:center"> 351 JavaScript is recommended for the full AI Peeps experience. Some content may be available without it, 352 but interactive features and some pages may be limited. 353 </div> 354 </noscript> 355 356
356<script src="https://js.stripe.com/v3/" defer=""></script>
356 357 358 359</body></html>
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.