1/** 2 * PostHog init for Login.aspx / CustomError.aspx. 3 * Config is passed via data-* attributes on this script tag (same idea as CWP's 4 * Stimulus PostHog controller). The official snippet loads array.js from api_host, 5 * so a reverse-proxied host (ph-log.whcc.com) also covers the SDK download. 6 */ 7(function () { 8 var script = document.currentScript 9 if (!script || window._posthogInitialized) return 10 11 var apiKey = script.getAttribute('data-api-key') 12 var apiHost = script.getAttribute('data-api-host') 13 if (!apiKey || !apiHost) return 14 15 var uiHost = script.getAttribute('data-ui-host') || undefined 16 var accountId = script.getAttribute('data-account-id') 17 var studio = script.getAttribute('data-studio') 18 19 !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); 20 21 var config = { 22 api_host: apiHost, 23 defaults: '2026-05-30', 24 cross_subdomain_cookie: true, 25 cookieWinsOnConflict: true, 26 enable_recording_console_log: true, 27 capture_exceptions: true, 28 loaded: function (posthog) { 29 if (accountId) { 30 var properties = { account_id: accountId } 31 if (studio) { 32 properties.studio = studio 33 } 34 posthog.identify(accountId, properties) 35 } 36 } 37 } 38 if (uiHost) { 39 config.ui_host = uiHost 40 } 41 42 posthog.init(apiKey, config) 43 window._posthogInitialized = true 44})()
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.