PageSourceSearch

https://finviz.com/contact

html finviz.com collected 2026-10-01 08:37:29 UTC 32,830 bytes, 434 lines download raw bytes

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?.(&#x27;multi-charts&#x27;, 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.