1<!DOCTYPE html> 2<html lang="en" class=" dark"> 3<head> 4<title>Contact</title> 5<meta charset="UTF-8"><meta name="viewport" content="width=1024"><meta name="description" content="Stock screener for investors and traders, financial visualizations."> 6 7 <link rel="preload" href="/fonts/ibm-plex-sans-latin-normal.woff2" as="font" type="font/woff2" crossorigin> 8 <link rel="preload" href="/fonts/ibm-plex-sans-latin-italic.woff2" as="font" type="font/woff2" crossorigin> 9
9<script> 10 window.notificationsArray = []; 11 window.renderScriptNotLoaded = function () {}; 12 window.handleScriptNotLoaded = function (element) { 13 window.notificationsArray.push(element); 14 window.sentryDisabled = true; 15 window.handleScriptNotLoaded = function () {}; 16 }; 17 // window.openEliteFeaturesDialog ... MUST NOT HAVE FALLBACK! 18 window.openGenericAlertDialog ??= (message) => new Promise(resolve => resolve(alert(message))); 19 window.openGenericConfirmDialog ??= (message) => new Promise(resolve => resolve(confirm(message) || undefined)); 20 window.openGenericDeleteDialog ??= (message) => new Promise(resolve => resolve(confirm(message) || undefined)); 21 window.openGenericPromptDialog ??= (message, value = "") => new Promise(resolve => resolve(prompt(message, value) ?? undefined)); 22 window.showFailureNotification ??= (message) => alert(message); 23 window.showSuccessNotification ??= (message) => alert(message); 24 window.showDefaultNotification ??= (message) => alert(message); 25 </script>
25<link rel="stylesheet" href="/assets/dist/redesign.54dc0dfd.css" type="text/css" onerror="window.handleScriptNotLoaded(this)"> 26<link rel="stylesheet" href="/assets/dist/main.4764e341.css" type="text/css" onerror="window.handleScriptNotLoaded(this)">
27<script src="/assets/dist/5026.v1.7f08a907.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
27<script src="/assets/dist/8596.v1.9e3b6ee8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
27<script src="/assets/dist/finviz_t.v1.f114a828.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
27<script>
vendor: 331 bytes, lines 27-31
27(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 28new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 29j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 30'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 31})(window,document,'script','dataLayer','
31GTM-537M973G
vendor: 3 bytes, line 31
31');
31</script>
31 32
33<script> 34 window.dataLayer = window.dataLayer || []; 35 36 function getFvt() { 37 var cookie = document.cookie.split('; ').find(function(row) { return row.startsWith('finviz_t='); }); 38 if (cookie) return decodeURIComponent(cookie.split('=')[1]); 39 try { return localStorage.getItem('finviz_t'); } catch (e) { return null; } 40 } 41 42 function gtag(command, key, value) { 43 var fvt = getFvt(); 44 if (command === 'set' && key === 'page_path') { 45 var pageviewData = { 46 event: 'virtual_pageview', 47 page_path: value, 48 ...(fvt && { anon_id: fvt }) 49 }; 50 dataLayer.push(pageviewData); 51 return; 52 } 53 54 if (command === 'event') { 55 var eventData = { 56 event: key, 57 ...(value || {}), 58 ...(fvt && { anon_id: fvt }) 59 }; 60 dataLayer.push(eventData); 61 return; 62 } 63 64 dataLayer.push(arguments); 65 } 66</script>
66<link rel="icon" type="image/png" href="/favicon_2x.png" sizes="32x32"> 67<link rel="icon" type="image/png" href="/favicon.png" sizes="16x16">
68<script async=true> 69 !(function(q,_name){q[_name]=q[_name]||function k(){(k.q=k.q||[]).push(arguments)},q[_name].v=q[_name].v||2,q[_name].s="1";!(function(q,k,F,H){function m(F,H){try{m=q.localStorage,(F=JSON.parse(m[decodeURI(decodeURI('%67%25%365%25%37%34I%257%34e%6d'))]("_aQS01OUU2MkU1RURCQzRDMzUyMTIwQkM4ODYtMTE0")).lgk||[])&&(H=q[k].pubads())&&F.forEach((function(q){q&&q[0]&&H.setTargeting(q[0],q[1]||"")}))}catch(N){}var m}try{(H=q[k]=q[k]||{}).cmd=H.cmd||[],typeof H.pubads===F?m():typeof H.cmd.unshift===F?H.cmd.unshift(m):H.cmd.push(m)}catch(N){}})(window,decodeURI(decodeURI('%25%367o%25%36fg%256c%25%36%35%2574%256%31%25%36%37')),"function");;!(function(q){q.__admiral_getConsentForGTM=function(k){function F(q,F){k((function(q,k){const F=q&&q.purpose&&q.purpose.consents||{};return{adConsentGranted:k||!!F[1],adUserData:k||!!F[7],adPersonalization:k||!!F[3],analyticsConsentGranted:k||!!F[1],personalizationConsentGranted:k||!!F[5],functionalityConsentGranted:k||!1,securityConsentGranted:k||!0}})(q,!F))}q[_name]("after","cmp.loaded",(function(k){k&&k.tcData&&k.tcData.gdprApplies?(k.consentKnown&&F(k.tcData,!0),q[_name]("after","cmp.updated",(function(q){F(q.tcData,!0)}))):F({},!1)}))}})(window);})(window,decodeURI(decodeURI('a%256%34m%25%369%25%37%32%256%31l')));!(function(q,k,F,H){F=q.createElement(k),q=q.getElementsByTagName(k)[0],F.async=1,F.src="https://urbanlaurel.com/assets/js/q2o3um29vhadcznq.vendor.js",(H=0)&&H(F),q.parentNode.insertBefore(F,q)})(document,"script");;;!(function(q,k,F,H,m){function N(){for(var q=[],F=0;F<arguments.length;F++)q.push(arguments[F]);if(!q.length)return m;"ping"===q[0]?q[2]({gdprAppliesGlobally:!!k[decodeURI(decodeURI('_%25%35%66c%6d%25%37%30%254%37%25%364%25%370%257%32A%2570%25%370%256%63%2569%65%73%2547%256%63o%25%36%32%25%361%25%36%63%6c%79'))],cmpLoaded:!1,cmpStatus:"stub"}):q.length>0&&m.push(q)}function L(q){if(q&&q.data&&q.source){var H,m=q.source,N="__tcfapiCall",L="string"==typeof q.data&&q.data.indexOf(N)>=0;(H=L?((function(q){try{return JSON.parse(q)}catch(k){}})(q.data)||{})[N]:(q.data||{})[N])&&k[F](H.command,H.version,(function(q,k){var F={__tcfapiReturn:{returnValue:q,success:k,callId:H.callId}};m&&m.postMessage(L?JSON.stringify(F):F,"*")}),H.parameter)}}!(function t(){if(!k.frames[H]){var F=q.body;if(F){var m=q.createElement("iframe");m.style.display="none",m.name=H,F.appendChild(m)}else setTimeout(t,5)}})(),N.v=1,"function"!=typeof k[F]&&(k[F]=k[F]||N,k.addEventListener?k.addEventListener("message",L,!1):k.attachEvent&&k.attachEvent("onmessage",L))})(document,window,"__tcfapi","__tcfapiLocator",[]);;;!(function(q,k,F,H,m,N,L,t,A,K,R){function Y(){for(var q=[],k=arguments.length,F=0;F<k;F++)q.push(arguments[F]);var H,m=q[1],N=typeof m===L,t=q[2],Y={gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["7:usnat"].reduce((function(q,k){return k&&q.push(k),q}),[]),cmpId:9,sectionList:[],applicableSections:[0],gppString:"",parsedSections:{}};function v(q){N&&m(q,!0)}switch(q[0]){case"ping":return v(Y);case"queue":return A;case"events":return K;case"addEventListener":return N&&(H=++R,K.push({id:H,callback:m,parameter:t})),v({eventName:"listenerRegistered",listenerId:H,data:!0,pingData:Y});case"removeEventListener":for(H=!1,F=0;F<K.length;F++)if(K[F].id===t){K.splice(F,1),H=!0;break}return v(H);case"hasSection":case"getSection":case"getField":return v(null);default:return void A.push(q)}}Y.v=2,typeof k[F]!==L&&(k[F]=k[F]||Y,k[t]&&k[t]("message",(function(q,H){var L="string"==typeof q.data;(H=L?((function(q){try{return JSON.parse(q)}catch(k){}})(q.data)||{})[m]:(q.data||{})[m])&&k[F](H.command,(function(k,F){var m={__gppReturn:{returnValue:k,success:F,callId:H.callId}};q.source&&q.source.postMessage(L?JSON.stringify(m):m,"*")}),N in H?H[N]:null,H.version||1)}),!1),(function v(){if(!k.frames[H]){var F=q.body;if(F){var m=q.createElement("iframe");m.style.display="none",m.name=H,F.appendChild(m)}else setTimeout(v,5)}})())})(document,window,"__gpp","__gppLocator","__gppCall","parameter","function","addEventListener",[],[],0); 70 ;(function () { 71 window.ic_privacySelectorLoaded = false; 72 73 function checkBanners() { 74 if (window.checkBannersLoaded) checkBannersLoaded(); 75 } 76 77 window.admiral("after", "candidate.dismissed", checkBanners); 78 79 // A blocked consent script means neither the dialog nor the ads will ever 80 // show up, so empty slots can be filled right away. 81 var consentScript = document.querySelector('script[src*="urbanlaurel.com"]'); 82 if (consentScript) consentScript.addEventListener('error', checkBanners); 83 84 window.admiral("after", "cmp.loaded", function (eventArg) { 85 console.log("Admiral CMP Loaded ", eventArg); 86 if (eventArg.euVisitor) return; 87 // Users outside EU don't get a consent dialog. Don't wait for it. 88 checkBanners(); 89 try { 90 __gpp("addEventListener", function (tcData) { 91 window.ic_privacySelectorLoaded = true; 92 }); 93 } catch (e) { 94 console.error(e) 95 } 96 }); 97 })(); 98 99 function openCCPADialog() { 100 document.querySelector('#ic_us_privacy a')?.click() 101 } 102</script>
102<script type="text/javascript"> 103 (function(c,l,a,r,i,t,y){ 104 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 105 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 106 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 107 })(window, document, "clarity", "script", "unkwe89mcc"); 108</script>
108<script> 109 FinvizSettings = { 110 versionImages: 1026682280, 111 iconSprites: {"icons":"icons.a1769bb9.svg","icons_blogs":"icons_blogs.37b5403f.svg","icons_calendar":"icons_calendar.5a6f733b.svg","icons_careers":"icons_careers.8c558ad5.svg","icons_chart-layouts":"icons_chart-layouts.6d5730f1.svg","icons_chart-tools":"icons_chart-tools.7c4a77ba.svg","icons_chart-types":"icons_chart-types.68df96b3.svg","icons_companies":"icons_companies.d6ef954b.svg","icons_crypto":"icons_crypto.3f55894f.svg","icons_news-content":"icons_news-content.5b347035.svg","icons_news":"icons_news.fb0c0a33.svg","icons_screener":"icons_screener.e3e3b175.svg","icons_signals":"icons_signals.0e727212.svg","icons_social":"icons_social.629cf97e.svg"}, 112 versionLogo: "53b44e68", 113 hasUserPremium: false, 114 trialLength: null, 115 isTrialWithCC: true, 116 isUserInternal: false, 117 userId: null, 118 name: "", 119 email: "", 120 nodeChartsDomain: "https://charts2-node.finviz.com", 121 hasUserStickyHeader: false, 122 adsProvider: 1, 123 hasRedesignEnabled: true, 124 hasRedesignPortfolio: false, 125 hasDarkTheme: true, 126 quoteSearchExt: '', 127 isJoinBannerVisible: false, 128 hasKnowledgeBase: true, 129 showTickerLogos: true, 130 hasDiscountCampaign: false, 131 discountCampaign: null, 132 featureFlags: {"knowledgebase":true,"googleonetap":true,"subscriptionredesign":true,"stockswhymoving":true,"redesign":true,"ffcredesign":true}, 133 featureDiscovery: [{"id":"futures-performance","label":"New","tier":"standard","variant":"badge","hideStrategy":"timeInteraction","releasedAt":"2026-09-15","durationDays":28,"maxSessions":null,"targets":["futures.performance"],"tooltipTitle":"New: Futures Performance","tooltipDescription":"Performance table and chart for futures.","analyticsName":"futures_performance"},{"id":"forex-performance","label":"New","tier":"standard","variant":"badge","hideStrategy":"timeInteraction","releasedAt":"2026-09-15","durationDays":28,"maxSessions":null,"targets":["forex.performance"],"tooltipTitle":"New: Forex Performance","tooltipDescription":"Performance table and chart for forex.","analyticsName":"forex_performance"},{"id":"crypto-performance","label":"New","tier":"standard","variant":"badge","hideStrategy":"timeInteraction","releasedAt":"2026-09-15","durationDays":28,"maxSessions":null,"targets":["crypto.performance"],"tooltipTitle":"New: Crypto Performance","tooltipDescription":"Performance table and chart for crypto.","analyticsName":"crypto_performance"}] 134 }; 135 136FinvizSettings.hoverCharts = { stock: { timeframe: 'd', dateRange: null, width: 466, height: 219, barWidth: 1, barMargin: 1, borderWidth: 1 }, forex: { timeframe: 'd', dateRange: null, width: 466, height: 219, barWidth: 2, barMargin: 1, borderWidth: 1 }, futures: { timeframe: 'd', dateRange: null, width: 466, height: 219, barWidth: 2, barMargin: 1, borderWidth: 1 } }</script>
136<script src="/assets/dist/script/browser_check.v1.1605ca48.js?v=4"></script>
136<script src="/assets/dist/script/notice.v1.f13b0329.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/runtime.v1.57c3b391.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/libs_init.v1.d76a7540.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/5026.v1.7f08a907.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/8596.v1.9e3b6ee8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/2019.v1.2009e980.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/1571.v1.e9b74a08.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/3207.v1.353c234e.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/7197.v1.b8481f52.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/2347.v1.e086939a.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/header.v1.c36c5810.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
136<script src="/assets/dist/script/shared_email_validation.v1.b00df19b.js" type="text/javascript"></script>
vendor: 1 bytes, line 136
136
137<script src="/assets/dist/script/contact.v1.027e8628.js" type="text/javascript"></script>
137 138</head> 139<body class="m-0 is-contact"><div id="js-elite-features-root"></div><span class="absolute invisible size-0 overflow-hidden"><span id="ic_us_privacy"></span></span> 140
140<script> 141 (function () { 142 var detectionEl = document.createElement('div'); 143 detectionEl.style.position='absolute'; 144 detectionEl.style.top='-9999px'; 145 detectionEl.style.width='100px'; 146 detectionEl.style.height='100px'; 147 detectionEl.style.overflow='scroll'; 148 document.body.appendChild(detectionEl); 149 document.documentElement.style.setProperty('--fv-scrollbar-width', (detectionEl.offsetWidth - detectionEl.clientWidth) + 'px'); 150 document.body.removeChild(detectionEl); 151 })() 152 </script>
152 153 <div id="notifications-container"></div><div id="notifications-react-root"></div><div id="dialogs-react-root"></div><div id="dialog-portal-root" style="display:contents"></div> 154<div class="header flex items-center"> 155 <div class="header-container flex items-center"> 156 <div class="pr-6.75"> 157 <a href="/" class="flex items-center gap-2.5"> 158<svg width="213" height="32" class="block"> 159 160<use href="/img/logo.svg?rev=53b44e68#free-v2" class="dark:hidden" /> 161<use href="/img/logo.svg?rev=53b44e68#free-v2-dark" class="hidden dark:block" /> 162</svg> </a> 163 </div> 164 <div class="flex items-center"> 165 <div id="search" class="w-95"> 166 <form action="/search"> 167 <div class="navbar-search-placeholder max-w-95"> 168 <span class="icon-wrapper"> 169 <svg xmlns="http://www.w3.org/2000/svg" class="icon" fill="none" viewBox="0 0 24 24" width="16" height="16"> 170 <path d="M16.9 15.5l4 4c.2.2.1.5 0 .7l-.7.7a.5.5 0 01-.8 0l-4-4c0-.2-.2-.3-.3-.4l-.7-1a7 7 0 01-11.2-4 7 7 0 1112.2 3l1 .6.5.4zM5 10a5 5 0 1010 0 5 5 0 00-10 0z" /> 171 </svg> 172 </span> 173 <input name="p" placeholder="Search ticker, company or profile" class="search-input is-free"/> 174 </div> 175</form> 176 </div> 177 <div id="microbar_position" class="flex items-center pl-2"><div><div id="IC_D_88x31_1"class="relative overflow-hidden flex items-center justify-center w-full mx-auto" style="width:88px;height:31px;max-height:31px"></div></div></div> 178 </div> 179 <div class="flex-1"></div> 180 <div class="flex items-center gap-2.5"> 181 <div class="relative"> 182 <a data-testid="chart-layout-theme" href="#" class="!flex !bg-transparent !border-b-0 !p-0" title="Toggle Light/Dark mode" onclick="setChartThemeCookie('light', true)"> 183 <div class="relative box-content flex rounded-full w-10 h-5 border border-white text-default bg-primary dark:border-gray-750 justify-end"> 184 <div class="box-border w-1/2 rounded-full p-px border border-white bg-gray-100 dark:border-gray-800 dark:bg-gray-600 flex justify-center items-center"> 185 <svg width="16" height="16" class="fill-current inline-block -ml-px"> 186 <use href="/assets/dist-icons/icons.a1769bb9.svg#moonOutlined"/> 187</svg> 188 </div> 189 </div> 190 </a> 191 </div> 192 193 <div class="flex items-center gap-4"> 194 <a href="/login" class="flex items-center gap-1 rounded px-2 py-1.5 text-2xs leading-4 font-medium whitespace-nowrap hover:bg-gray-100 dark:hover:bg-gray-600 text-gray-700 hover:text-gray-900 dark:text-gray-50 dark:hover:text-white"> 195 <svg width="16" height="16" class="shrink-0 fill-current text-muted-2"> 196 <use href="/assets/dist-icons/icons.a1769bb9.svg#userBig"/> 197</svg> 198 Login 199 </a> 200 <a href="/register" class="inline-flex h-7 items-center justify-center rounded-md bg-blue-400 px-3 text-2xs leading-4 font-medium whitespace-nowrap text-white hover:bg-blue-500 active:bg-blue-600">Sign up free</a> 201 </div> 202 </div> 203 </div> 204</div> 205 206<div class="navbar flex items-center min-h-8.5"> 207 <div class="header-container flex items-center"> 208 <a class="nav-link is-first" href="/">Home</a> 209 <a class="nav-link" href="/screener">Screener</a> 210 <a class="nav-link" href="/map">Maps</a> 211 <a class="nav-link" href="javascript:window.openEliteFeaturesDialog?.('multi-charts', event)">
211Charts</a> 212 <a class="nav-link" href="/news">News</a> 213 <a class="nav-link" href="/groups">Groups</a> 214 <a class="nav-link" href="/insidertrading">Insider</a> 215 <a class="nav-link" href="/futures">Futures</a> 216 <a class="nav-link" href="/forex">Forex</a> 217 <a class="nav-link" href="/crypto">Crypto</a> 218 <a class="nav-link" href="/portfolio">Portfolio</a> 219 <a class="nav-link" href="/calendar/earnings/season-preview">Calendar</a> 220 <div class="relative flex-1"> 221 <div class="absolute inset-0 flex items-center justify-end"> 222 <div id="time" class="w-full"></div> 223 </div> 224 </div> 225 <div class="mx-2 h-3.5 w-px bg-gray-200/30 dark:bg-gray-500/30"></div> 226 <a class="nav-link is-elite" href="/elite">Pricing</a> 227 <div id="js-knowledge-base-static"> 228 <a href="/knowledge-base" class="nav-link is-help px-4">Help</a> 229 </div> 230 <div id="js-knowledge-base-root" class="hidden"></div> 231 232 233 </div> 234</div> 235 236
236<script> 237 // Dropping the published-page theme pin lets an explicit toggle win over it. 238 function reloadPage () { 239 var url = new URL(location.href) 240 if (!url.searchParams.has('th')) { location.reload(); return } 241 url.searchParams.delete('th') 242 location.replace(url.toString()) 243 } 244 function setChartThemeCookie(chartsTheme) { 245 fetch('/api/set_cookie?cookie=chartsTheme&value=' + chartsTheme ).catch(function(){}).then(function(){ 246 window.gtag && window.gtag('event', 'click', { event_category: 'theme', event_label: 'toggle', value: chartsTheme, eventCallback: reloadPage }); 247 setTimeout(reloadPage,1000); 248 }) 249 } 250 </script>
250<div id="js-feature-discovery-root"></div><div class="content "><div class="fv-container "><div class="fixed-width-medium"> 251 <div class="content-header"> 252 <h1 class="content-header_title">Contact us</h1> 253 <p class="content-header_subtitle"> 254 Feel free to contact us using the form below. We'll be happy to help or hear your feedback!<br> 255 If you need more information, you can also try our <a class="tab-link" href="/help/faq">FAQ page</a>. 256 </p> 257 </div> 258 259 <form class="card-form contact-form" name="contact" id="contact_form" action="contact_submit" method="post"> 260 <div class="card-form_input-group"> 261 <label class="card-form_input input" style="width: 300px; float: left; margin-right: 10px; margin-bottom: 10px"> 262 <span class="card-form_input-label">Your name</span> 263 <input class="fv-input is-large" type="text" name="name" value=""> 264 </label> 265 266 <label class="card-form_input input" style="width: 300px; margin-right: 0"> 267 <span class="card-form_input-label">Your email</span> 268 <input class="fv-input is-large" type="text" name="email" value=""> 269 </label> 270 </div> 271 272 <label class="card-form_input input has-textarea"> 273 <span class="card-form_input-label">Message</span> 274 <textarea class="fv-input text-sm h-37.5 py-1" name="message"></textarea> 275 </label> 276 277 <div class="center-text" style="margin-top: 20px"> 278 <input type="submit" class="button fv-button is-primary w-full is-large" style="margin-bottom: 0" value="Send message"> 279 </div> 280 281 <div 282 id='recaptcha' 283 class="g-recaptcha" 284 data-sitekey="6Le8wW0UAAAAAK02GHoQU3q-QOLqYuTg1h9Ncri_" 285 data-callback="onSubmit" 286 data-size="invisible" 287 ></div> 288 <input type="hidden" name="issue" value="Feature Request Feedback"> 289 <input type="hidden" name="resolution" id="contact-resolution"> 290 291 </form> 292</div>
vendor: 95 bytes, lines 292-294
292 293 <script src="https://www.google.com/recaptcha/api.js" async defer></script> 294
294<script> 295 function onSubmit(token) { 296 document.getElementById("contact_form").submit(); 297 } 298 </script>
298 299
299<script type="text/javascript"> 300 (function() { 301 ContactInit(); 302 var height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); 303 var width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 304 var el = document.getElementById('contact-resolution'); 305 el.value = width + '*' + height + 'px'; 306 })(); 307 </script>
307</div></div> 308 <div class="footer" style="margin-top: 50px;padding-bottom: 115px"> 309 <div class="footer_links"> 310 <a class="tab-link" href="/affiliate">Affiliate</a> 311 <span class="footer_dot"> ⢠</span> 312 <a class="tab-link" href="/advertise">Advertise</a> 313 <span class="footer_dot"> ⢠</span> 314 <a class="tab-link" href="/api-and-exports">API and Exports</a> 315 <span class="footer_dot"> ⢠</span> 316 <a class="tab-link" href="/careers">Careers</a> 317 <span class="footer_dot"> ⢠</span> 318 <a class="tab-link" href="/contact">Contact</a> 319 <span class="footer_dot"> ⢠</span> 320 <a class="tab-link" href="/blog">Blog</a> 321 <span class="footer_dot"> ⢠</span> 322 <a class="tab-link" href="/knowledge-base">Help</a> 323 <span class="footer_dot"> ⢠</span> 324 <a class="tab-link" href="/privacy">Privacy</a> 325 <span class="footer_dot"> ⢠</span> 326 <a class="tab-link" href="https://x.com/finviz_com" target="_blank">Follow us on X</a> </div> 327 Stock quotes delayed by 1 minute. Futures and options delayed by 15 minutes. 328 <br> 329 Copyright © 2007-2026 Finviz.com. All Rights Reserved. 330 331 <a href="/api/v1/screener-export-csv" class="internal-data-link" rel="nofollow">Export All Screener Data (CSV)</a> 332</div>
vendor: 67 bytes, line 332
332<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
332GTM-537M973G
vendor: 82 bytes, line 332
332" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
332<script>window.GoogleOneTapConfig={clientId:'1033214272054-5de9gp5rii5o7cuv4qf1ephgaic4r1e3.apps.googleusercontent.com',autoSelect:true};</script>
vendor: 1 bytes, line 332
332
333<script src="/assets/dist/5026.v1.7f08a907.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
333<script src="/assets/dist/8596.v1.9e3b6ee8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
333<script src="/assets/dist/google_one_tap.v1.de6ace32.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
333
333<script> 334 function getSystemTheme() { 335 if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { 336 return 'Dark'; 337 } 338 else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) { 339 return 'Light'; 340 } 341 return 'No Preference'; 342 } 343 344 var systemTheme = getSystemTheme() 345 346 const webdriver = navigator.webdriver === true 347 const isBotFlagHeadlessChrome = navigator.userAgent.includes('HeadlessChrome') 348 const isBotFlagFvSegmentAudit = document.cookie.includes('fv_segment_audit=true') 349 const isBotFlagNoLanguages = navigator.languages.length === 0 350 const isChrome = navigator.userAgent.includes('Chrome') 351 const isBotFlagChromeWithoutRuntime = isChrome && typeof window.chrome === 'undefined' 352 const isBotFlagChromeWithoutPlugins = isChrome && navigator.plugins.length === 0 353 const isBotFlagChromeWithoutDeviceMemory = isChrome && navigator.deviceMemory === undefined 354 const isBotFlagNoOuterSize = window.outerWidth === 0 && window.innerWidth > 0 355 const isBotFlagAutomationGlobals = ( 356 ['__playwright__', '__pw_manual', '__PW_inspect', '_phantom', 'callPhantom', '__nightmare', 'domAutomation', 'domAutomationController', 'Cypress', '__selenium_unwrapped', '__selenium_evaluate', '__webdriver_evaluate', '__webdriver_script_function', '__webdriver_script_func', '__webdriver_script_fn', '__webdriver_unwrapped', '__driver_evaluate', '__driver_unwrapped', '__fxdriver_evaluate', '__fxdriver_unwrapped'].some(function(n) { return n in window }) || 357 Object.getOwnPropertyNames(document).some(function(n) { return n.indexOf('$cdc_') === 0 || n.indexOf('$chrome_asyncScriptInfo') === 0 }) 358 ) 359 const fvt = window.getFvt?.() 360 361 dataLayer.push({ 362 event: 'ga_context', 363 364 dimension1: 'NotLoggedIn', 365 dimension3: window.devicePixelRatio, 366 layoutTheme: 'dark', 367 systemTheme: systemTheme, 368 bundle: 'modern', 369 prefTheme: 'dark', 370 themeFlag: 'modern', 371 innerWidth: window.innerWidth, 372 innerHeight: window.innerHeight, 373 webdriver: webdriver, 374 isBotFlagHeadlessChrome: isBotFlagHeadlessChrome, 375 isBotFlagNoLanguages: isBotFlagNoLanguages, 376 isBotFlagChromeWithoutRuntime: isBotFlagChromeWithoutRuntime, 377 isBotFlagChromeWithoutPlugins: isBotFlagChromeWithoutPlugins, 378 isBotFlagChromeWithoutDeviceMemory: isBotFlagChromeWithoutDeviceMemory, 379 isBotFlagNoOuterSize: isBotFlagNoOuterSize, 380 isBotFlagFvSegmentAudit: isBotFlagFvSegmentAudit, 381 isBotFlagAutomationGlobals: isBotFlagAutomationGlobals, 382 isBot: isBotFlagHeadlessChrome || webdriver || isBotFlagFvSegmentAudit, 383 icAdsVariant: 'control', 384 ...(fvt && { anon_id: fvt }) 385 }); 386 387 if(window.__fv_deferred_gtag){ 388 window.__fv_deferred_gtag.forEach(function(e){ 389 if(window.gtag){ window.gtag('event',e[0],e[1]); } 390 }); 391 } 392 393 </script>
393
393<script type="text/javascript"> 394 window._qevents = window._qevents || []; 395 396 (function() { 397 var elem = document.createElement('script'); 398 elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; 399 elem.async = true; 400 elem.type = "text/javascript"; 401 var scpt = document.getElementsByTagName('script')[0]; 402 scpt.parentNode.insertBefore(elem, scpt); 403 })(); 404 405 window._qevents.push({ 406 qacct:"p-c2W8esUZ6Q8oA" 407 }); 408 </script>
408 409 <noscript> 410 <div style="display:none;"> 411 <img src="//pixel.quantserve.com/pixel/p-c2W8esUZ6Q8oA.gif" border="0" height="1" width="1" alt="Quantcast"/> 412 </div> 413 </noscript><div id="IC_D_1x1_1"class="relative overflow-hidden flex items-center justify-center w-full mx-auto"></div>
413<script> 414 (function() { 415 if (navigator.maxTouchPoints > 0) { 416 return 417 } 418 419 var s = document.createElement('script'); 420 s.type = 'text/javascript'; 421 s.async = true; 422 s.onerror = window.handleScriptNotLoaded; 423 s.onload = function() { 424 if (typeof window.FrontChat === 'function') { 425 window.FrontChat('init', {chatId: '954afedb52ad57c987c3dac9ebe5077e', useDefaultLauncher: true, colorScheme: 'normal'}); 426 } 427 }; 428 s.src = 'https://chat-assets.frontapp.com/v1/chat.bundle.js'; 429 document.head.appendChild(s); 430 }()); 431 </script>
431<script>window.renderScriptNotLoaded();</script>
431 432<div id="js-knowledge-base-root"></div>
432<script src="/assets/dist/5179.v1.9e15c508.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/5432.v1.c7e6ad8d.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/5026.v1.7f08a907.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/8596.v1.9e3b6ee8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/2019.v1.2009e980.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/1571.v1.e9b74a08.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/7171.v1.1240edca.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/3207.v1.353c234e.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/8703.v1.9e9cd0a8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/4482.v1.7820ac10.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/knowledge_base_dialog.v1.dc52adbc.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/5026.v1.7f08a907.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/8596.v1.9e3b6ee8.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/1571.v1.e9b74a08.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/4647.v1.96aa615e.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script src="/assets/dist/elite_features_dialog.v1.97b37d67.js" onerror="window.handleScriptNotLoaded(this)" defer></script>
432<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"e53f08f6c9e04bfd9760701085ec93b4","spa":2}' crossorigin="anonymous"></script>
432 433</body> 434</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.