CINXE.COM
Kasson Crooker Contributor Profile | Game Developer
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><script async="" src="//static.adsafeprotected.com/iasPET.1.js"></script><script async="" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script><script async="" defer="" src="https://connect.facebook.net/en_US/sdk.js?xfbml=1&version=v3.2&hash=606879e94b06283a619cebf5b7449644"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script><meta name="robots" content="max-image-preview:large"/><title>Kasson Crooker Contributor Profile | Game Developer</title><meta name="description" content="Read articles by Kasson Crooker on Game Developer, the game industry's source for development news and insight."/><meta property="og:title" content="Kasson Crooker Contributor Profile | Game Developer"/><meta property="og:description" content="Read articles by Kasson Crooker on Game Developer, the game industry's source for development news and insight."/><meta property="og:url" content="https://www.gamedeveloper.com/author/kasson-crooker"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico"/><meta property="og:site_name" content="Game Developer"/><link rel="canonical" href="https://www.gamedeveloper.com/author/kasson-crooker"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc65a6c2903d51499/673ce42a198dc8431a7c963a/Game_Developer_Magazine_Cover_January_2011.png?width=700&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><meta property="twitter:card" content="summary"/><link rel="preconnect" href="https://cdn.cookielaw.org"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"/><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="icon" type="image/x-icon" href="/assets/gamedeveloper-CAvl2PCb.ico"/><link rel="modulepreload" href="/assets/entry.client-BeFAP2ww.js"/><link rel="modulepreload" href="/assets/chunk-K6AXKMTT-CHYA7xuV.js"/><link rel="modulepreload" href="/assets/index-BSbs-5XW.js"/><link rel="modulepreload" href="/assets/with-props-CEmjks6P.js"/><link rel="modulepreload" href="/assets/gtm-Bhg5v0kK.js"/><link rel="modulepreload" href="/assets/contentPreview-DVkUqnQw.js"/><link rel="modulepreload" href="/assets/_-Bs3SyN-5.js"/><link rel="modulepreload" href="/assets/useArticleProps-D_xn1SoH.js"/><link rel="modulepreload" href="/assets/provider-D8hGPYap.js"/><link rel="modulepreload" href="/assets/newsletterSignupPromo-DBM_Buya.js"/><link rel="modulepreload" href="/assets/socialShare-BetaF3nk.js"/><link rel="modulepreload" href="/assets/link-B0EXaXnQ.js"/><link rel="modulepreload" href="/assets/button-2u7YveIz.js"/><link rel="modulepreload" href="/assets/util-CdNciH7h.js"/><link rel="modulepreload" href="/assets/searchBar-Cv2Svi5s.js"/><link rel="modulepreload" href="/assets/useSearchBar-B7n_81gh.js"/><link rel="modulepreload" href="/assets/navigation-DNYtFoxY.js"/><link rel="modulepreload" href="/assets/redirection-CcR_QTDp.js"/><link rel="modulepreload" href="/assets/meta-hUHi7WZc.js"/><link rel="modulepreload" href="/assets/form-B6K9BB4H.js"/><link rel="modulepreload" href="/assets/root-0nf9i4ZF.js"/><link rel="modulepreload" href="/assets/breadcrumb-BHlyGeYe.js"/><link rel="modulepreload" href="/assets/contributorSummary-ghBBFOgh.js"/><link rel="modulepreload" href="/assets/listContent-BhVLgC1k.js"/><link rel="modulepreload" href="/assets/useWeatherWidget-AaEchakd.js"/><link rel="modulepreload" href="/assets/utils-Bn24zYNJ.js"/><link rel="modulepreload" href="/assets/gridLayout-D3d3Sywd.js"/><link rel="modulepreload" href="/assets/pagination-NR_kC-LV.js"/><link rel="modulepreload" href="/assets/commodityPrices-DJr8VhOL.js"/><link rel="modulepreload" href="/assets/sidebar-BprMrwM7.js"/><link rel="modulepreload" href="/assets/weatherWidget-DeWCQLwf.js"/><link rel="modulepreload" href="/assets/changeLocationBar-6QWG9j8W.js"/><link rel="modulepreload" href="/assets/contentCards-DmwKmMha.js"/><link rel="modulepreload" href="/assets/videoPlaylist-D52CwHbx.js"/><link rel="modulepreload" href="/assets/contentDomain.generated-DIEwSG95.js"/><link rel="modulepreload" href="/assets/toNumber-C_nKo9iw.js"/><link rel="modulepreload" href="/assets/_getPrototype-C_MHsswr.js"/><link rel="modulepreload" href="/assets/useStorage-C29fdY0K.js"/><link rel="modulepreload" href="/assets/author._slug-0r0GzF8V.js"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"ProfilePage","mainEntity":{"@type":"Person","name":"Kasson Crooker","description":"Kasson Crooker, ","image":"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp","disambiguatingDescription":"Game Developer Logo","sameAs":[]}}</script><script type="text/javascript">window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]}}; ;NREUM.loader_config={accountID:"3936348",trustKey:"3288925",agentID:"538600205",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600205"}; ;NREUM.info={beacon:"bam.eu01.nr-data.net",errorBeacon:"bam.eu01.nr-data.net",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600205",sa:1}; ;/*! For license information please see nr-loader-spa-1.281.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>p,gD:()=>m,xN:()=>g});var n=r(3333),i=r(993);const o=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var a=r(2614),s=r(944),c=r(384),u=r(8122);const d="[data-nr-mask]",l=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:i.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:a.wk,inactiveMs:a.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){o(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,s.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){o(t)?e.block_selector+=",".concat(t):""!==t&&(0,s.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,s.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},f={},h="All configuration objects require an agent identifier!";function p(e){if(!e)throw new Error(h);if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function g(e,t){if(!e)throw new Error(h);f[e]=(0,u.a)(t,l());const r=(0,c.nY)(e);r&&(r.init=f[e])}function m(e,t){if(!e)throw new Error(h);var r=p(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.281.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>T,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>A,uP:()=>s,wW:()=>E,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",E="cb"+R,T="jsTime",A="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);const E=new Map;function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return E.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>E.get(c))),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const S={};var N=r(9417),_=r(5603),O=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function j(e,t={},g,R){let{init:x,info:E,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();E||(x=L.init,E=L.info,j=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,_.a)(e.agentIdentifier,j||{}),E.jsAttributes??={},d.bv&&(E.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,E);const H=(0,N.D0)(e.agentIdentifier),M=[E.beacon,E.errorBeacon];P||(H.proxy.assets&&(I(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon&&M.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{S[e]=t}));var E="api-",A=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(E,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(E,e,!0,"api")})),g.addPageAction=I(E,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=I(E,"recordCustomEvent",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(E,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new _).get("object"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(A+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,R),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{O[e]=I(A,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(A,"routeName",void 0,n.K7.softNav):I(E,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>P()),!0):P(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),P=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.281.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.281.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-jmvAlmjCn64ans8tLueqHRlBI/iWekylsDWb94A77CG0ukSriVDvgD3dThx+XjUSBBBMYhFn8B1a18fViyBPEQ==",249:"sha512-ICY/ZrcytM/86t5KFy+9OAWVYmNNJy10EBtxoSUGjQWuZx53p/eLo+L8HfrGjvHuRHRnutqLTGSnvNttffJkaA==",212:"sha512-pQSn+X/RfBOvx/49HvlghaiXMLhhDQXTi13n1N2XMpDquWJgs9U0pbqE3RbAnYC9nsdaTu/RVGvneEPv1fpCxA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.281.0.PROD"]=self["webpackChunk:NRBA-1.281.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),T=i(3878),A=i(782),S=i(1863);class N extends b{static featureName=A.T;constructor(e,t=!0){super(e,A.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,A.T,this.ee)),!0),(0,T.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,A.T,this.ee))),this.importAggregator(e))}}var _=i(3969);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,T.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,T.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,T.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,T.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(_.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Te,uP:Ae,Rz:Se}=be;class Ne extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ae,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(_e.H3,"_").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL&&this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==_e.g.FULL&&(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,T.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,T.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,T.jT)(!1)),e.addEventListener("error",f,(0,T.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function Me(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const De={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:$e,e5:Je,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Je]=~~this[Je]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on($e,m),o.on($e,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+"-done",Qe+Xe+Ze,Qe+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,$e,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,Qe+Ze),v(d,Qe+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,T.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI&&(e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,T.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,T.sp)(e,t)}))),e.init.performance.resources.enabled&&p.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,Oe,O,M,ot,ct,Pe,nt],loaderType:"spa"})})()})(); </script><link rel="stylesheet" href="/assets/styles.generated-CmzcVq8e.css"/><link rel="stylesheet" href="/assets/brand.generated-CwgRAwgi.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"/><noscript><style type="text/css">.gptHideContent { opacity: 1!important; }</style></noscript><script type="text/javascript" src="https://cdn.cookielaw.org/consent/8aaa0413-1bf0-4c5f-b2b7-20f59225831b/OtAutoBlock.js"></script><script type="text/javascript" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="8aaa0413-1bf0-4c5f-b2b7-20f59225831b"></script></head><body class="brand-gamedeveloper gptHideContent"><noscript></noscript><div id="bigsky_v"></div><div id="welcome_v"></div><main data-theme="theme2" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position:absolute;left:-999em;top:-999em"></div><div><div data-template="layout" class="Layout"><nav data-module="navigation" aria-label="navigation" class="Navigation"><div data-testid="header" class="Navigation-HeaderWrapper"><div class="FullScreenBackground Navigation-HeaderBackground"></div><div class="Navigation-Header"><div class="InformaBarTech" data-component="informa-bar"><div class="InformaBarTech-LogoSectionWrapper"><div class="InformaBarTech-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBarTech-LogoWrapper"><img class="InformaBarTech-Logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAekAAABqCAYAAACYnalVAAAACXBIWXMAAAsSAAALEgHS3X78AAAPZklEQVR4nO2d320bSRKHew0/HkDe4t41jkDcCMSNwNwIpI3AdATWRmA6AksRrAzcu8UIjoxgxffDQYzAh9mtvmsPKHJIVvVUz3wfQNgWrOHM9J9fV3V11Q/fvn0Le7gJIUxDCFUI4Ur+2zKE8BxCeJDP874LQPGMpQ9M5M/635d7HmoTQngKITyGEFbyeaIbAAAcz0siXYvzbQjh4sAVtyGEhfxf6A+1EM/k81bhqdYi2nci2gAA0IKmSI9lIj12Yl6LlYVVXTZ1+8/lMzJ6krUs7PDCAAAcoCnSqwOuzH0g1GUzkwWalTg3iV6YBX0GAGA3r5KfLs4Q6CC/e8d7Lo7oPfk9o0AH+a4PYrUDAMAOokjXFvA7hRf0ViwyKIOx7BVf014AAP6IIq1pzRBEVgZRoM/xngAAgCGvZLLWiOCNXMpxHfANAg0A4JxXRoI6peFdc278AQAAZOCVkaCOaTy3aMUfAACAMbVI/4OXPCiIwAcAKIRapP8dQvgPDTYIblpkkQMAACe8lgQmP4pQ/0jD9JockfcxBeiz9K00Ucn0hb8DAMAOXie5lDWF+pGX7Q5LK3ojwWh3B7KH0S8AAI7glVQoWsuv/Kjg+t4wGbvEKsnMvZwQIL0nAIAyMZnJIrnsuUJNYJI/tM/CR96LhY44AwAYkBbYeExqRocTXd9rEpm4pBbSz8o3di/XBQAAI9ICGzOpTBQ51qLeMmm7RdvVvaUwBgCAPalIP0v07Sb5WVuh3srvUtDfJ9reDfafAQAy8KrxFSuZ0O+Tnx0S6qX8DgLtk8ogqpu4AwCADDRFOoiFVLut34QQPoll3RTqjQj5z2JBP9FYbqmUb2xNewMA5OH1nm95kn3HuPdYi/HfQgj/pG2KQjtpCMfrAAAysU+kmzA5Q8CKBgDIxy53N/QLbUua2AMAgEwg0gAAAE45xt0N/2eXdfo8ECuz79se4xZH1p5w+0NLXupP3vvQkOe4SHUg8LZZQMgERHo/Y+msUxlo9Wd04Hc20ni1mD0wmbukStpzIu18deKNLpPJ6zHXwAW3TBtzxqH5Yi195iGpHpebShIexXs+dGSzb3NcOr9XLdstZSPvYNX4qJCmBYW/iB22PoZ2qfBO1kmFqC7QbuAfOnqOc4iLrTgRWdfUjuU64yQG/WaWfI6Z3Jtspb/cZhA+zXmu6znuWCbJfHDq4vwQ22Th9XDO4iuKdDNv97mcMpF3fQ838rFstLlyR+7DCus3wzrXcRKyKC7SljhYFx26CjX7yVIxGLFqWDCpa/GxRb+o7+Or0r2EI/tiJeP55kxhfol7ub62ZT2V61qMiY28P49iXSVzvPUivclZc8DQ3d2x4eZGAy1lJEUuYkfBDW7DOGnT3INxF3W7X8tnKQN1qNZ16ladHhhzXmMfKhGia+PvuU4WmRr95Ubu23JMXCRz3MzJto+18dWG5hxwe0z/Hmp0dyWrvT9CCB8yCHTKVZJ+FXSJi5+PTgS6Sd32v0v7ax+N80q0OFcy3j6KFZdzzGmQzhnWAh0ZSX85x9MUx8TnjGPiSr6zyzkufe4uBbrJlXh/HtpmgxyaSI87GGi7GMlKiqphOsTc8Z8Lmfwvk4E6dnA/FtxIH4/CrBHf0QUe5owPJ7iQp8mY6GLBGue43ELdxaLkFN5K+xzUgCGJdAzG6FKcU0bi+sSiPo+6Xf9VqAi8lT6pXUq0K8bSHs8OLZhTmDuaM65bLuorEcevDsZETqGeFSLOKXELdO8CbAgiHQuA5HZrtyF24r5aU5aM5d19KPw5oktz4eBeTmWcLII9jrNjiUL30dmzfN4jeLEN/nC2OBoZe4ziPPB7QeLc5HqfUPdZpMcy8X113ngjjukczcTgNEDXvCt0wdYncQ5ira4c961dghdd214XrBeGEd+TnswDLwp1n0V6JRNfCVyxP92aKNCl7nHu46ogofbsoTqVeQFxDRdJZcKxiLZ3QyTI1k5ftnWsuN7lUeuzSJfm+rA6K9wnomurL6Kwi0vnQl2Kh+oUSulX8yRAqsscAMdS8pZOLt41FzMU2PDDBdb0XoYg0JFLx1sglwV5qPrKqKCTDCnMce24SxfpiLQvsKZf5q6nLu6XuMLygB4yp1EPMkq1YOgZx7xxIa4OAsm+xyqN4Uusk4T5KTF1Za5AlXfk/4aecZnkNchNWgwnrejVpijOpJHz29qL8S4eZ0Sk/YFIf0+VycOwFGu9bTL8aZL+0HLA3sk7oLIW9IWbDBb1OqlKt1JYFMRrxAjsHOlG63d0i0j/xTYpvfZSnde4irK26I6JgPytxf/RPpZxr5x3/FAO24WxCB6dS1d4TAK85obHX0YyMRAZ64dNQwCa5JorjmGb3POuvl5ltBJnBiK9SapO5Sj5eSefucwfFu/sz3zrfa6CdYhl0qjHrLJi0gDL4JmfFN1B2pWyfs5Y/EC7ylHKVtpRa9+3kv5ktW9+znv3UC1t2ai3nS6Gx40kHdNkst2HZf9osk48LW0XqZX0r67EepuISdv5ZJwU47AU6zdKi/2xvOeuKswF6bsPRqcdfhqaSK+TTnvuSutGIiwteK8oHiWLtFWf2CYJIDSJx5Ms0kiuz0iv2IVIx/J8D4bbNzlE+l6hzKjlXLGLZTLPnYr1ovPXgupPtyEuFLQXNu+HEt19L9bpRAachivkTjqaBUOpkLSPaWECHaRf3Uh/0+aykOMraxkXlWKZxS74FEL4e5KB7BzuZOFtzVIW0VMFAXyS62yM7rlvNQuscvBP+y7S9+JW0Rhou6gHwheD67YqYdYSq0FmjVVgiZVAp9zIhKmN5+MrUSAmSp6qrljKnDFXfoaFUZ8IMsZ/SbYJtHg2XBj2sbDQo8ECveqzSL9JsvJYYjFxarqYrJ/fgspoH+99xr2rmVjtmlw69LKk1luubRArPiXpTi2wOKWwTfZELbAQntDj6n/abXzZZ5HOJU5PRtb0kCtjWbiNlpmTg1hZIV5c3useiXPE2vp/lPemySjDfVssLvqaOVBdD8g4poPFKnbIdaYthKgLV/GDgYtz1vECbit7zpMeiXNOLIKlrL0rTwaLi9BjQ0R1XCDSOjBZ6VEZRJTed3hEQ9sKGXV8ZnrVs6jc3JQ6V1i0eV8NEdW5BpHW4clg/3GoWAhQl6LyaGBNE/1fLqtC54ouzyGXBiLtFDqxDtoCtHZgvWjvhZN9rGxKnCvwFrZHNUYAkdajxChqj2iLtAfX7IOy9TQaeMxC6ZR6PM1iXxoOgEjrgUifT2UQ9eklmYb2feDyLpdSvW4UeekARBo8oW0drh0tnrRFGksacoMh0gGINHhCW3g87aNp34tmVjqANiDSHUCpSvBEn0X6WSx7reNlOSvGAQydiZzrTiu2Nau3BYtxiUiDJ7STG3jb+1spnwEfs09YJFikPhkntcAr+Uy6zo6GSIMntF243ibDlXIZS7J+lQki7YMoyFP5u0U96LNBpMETmoPEquLQOXCWHqA7xpJjYCp/FpE/HJEGyIe2a7pPxS0ArJjJR9OLlQ1EGrygvR/tUbywpAHyEK3mW69u7LYg0uAFzv0CgAZzEedelMNEpAEAoA9MJQ1w0ZZzE5KZAABAyYyliM3Xvgl0wJIGAICCqSTlrnYNejdgSQMAQIlMDBIEaaB6/BNLGgAASiMm8ukiOGwri4NHSUyTfiLftL4MkQYvkN4SANpQZRbojXzfYyLM2UCkwQucIQaANjxkEOiNfM9d13MTIg19xeO5a+3c5HgfYGjcGu9BLyVSXLv++8kg0tBXtDOYaaAt0ngfYEjUC+8PRs+7lAWAu0yFRHeDJzSjIodgSQMMiYXBs9ZBYO8958HHkoa+4jEloLZIU1wDhkK96L5Sfta15Pd2XToUSxo8oS06U2fPR35ygNOYK7+3tcwP7mt7I9LgCe0B400UNe/HY71sACtmitfdikAXEXiJSIMntEXakyVdKecVJmgMhsJMeftqVtLJCEQaPNFnd7f2vSDSMBQ0x86ytFgORBq8oenGHTlyeSPSAKehOYbvSmsDRBq8ob3KvXHyfNp7aog0DAXNqO4cSUpUF+SINHhDW6Q1xfFUbpT31Dh6BUNB89jiJtNetOpRS0QavPEolqIWFw72prWteTcpCwGM0RS8XMetsKSh92iL0G2HL6wySMKASAMcT65UwareO0QaPKItQlcdWtPaqQy/UFgD4CQsC3NEtLe2EGlwyYPsH2nShTVdLwzeKl8TKxrgdKzz56vPM4g0eEX7qMSVQWrBQ2hb0ZsSj5AAOMLSozZXTlj0J4g0eGWhHEAWZJWb69z0wsC9hkADnIfVkcyJlbcOkQavPBtYoiMROusAknoieKd8za1RqT4Az2jHX1jEp4xlXjGpvIdIg2csrOlLOeZlJdS1QH82uO6CgDEYIBZJezQXu2OZT8yC0hBp8IyFNR0SodZ2fd8aCfQGKxoGzFr50S+Vto4m1gIdEGkogFuDQRoSodYIJqvkWh8UrrWLOVY0DBiLDHvXZwr1PIdAB0QaCsEq2KPeQ/oomYhO+Y6JDPQ/DBKWRL5w7AoGjlXA5LW404/Zo76R+eKj1R50k9c5vgTgTOqB9F4GhgUX4qZeyOr4Ub7zqZFKcCp7UFP5WK+iN44KhAB0xUrGgvrxJhnDX8VbdyfftUo8V1PxlE0N6lq3ApGGUliI5XpteL8jST6inYDkFLalFacHMOTOcDspiFhrGgFbWeCfvZDH3Q0lMTfan/bInHKUAP/D4qSHFVuxvFUW2Ig0lMSzdP6+C/WvJC4B+I7nDjIGnorqAhuRhtLou1Aj0AC7qcfF0vm7UR+/iDSUSBRq7wP2GGoX2S8INMBeZk7d3mbjF5GGUolC/akHLbiWZ+GoFcB+4rj3JNRby/GLSEPp1Ps/PxuUtszFJxngBIkBtGPlSKiXckTLbPwi0tAHYorPkqzqjSwuyCYGcDxdC/VWcjeoRXG/BCINfSFGf74JIdw7fqaNBJdURukOAYbCSsZR7tiUpRgFWfLpI9LQN2KKzyjWXvau1ok4ExwGoEPco/41w1hfivdr2shEaErMOOZhP6z0Pbkn5RWdlgtF+72W4pqNYj2WiNBZB5nENhJMctdx/9bsl57G6bPys+WaeLXvO9eY9DrHBRljD+JNu1FOIfolSRl8DCpj5Ydv375pXAegFGayEp4YFMXYJHm/H3KutgHgO2bJ55R828tkgd2pYYJIw9CZJEUzQvLvQ8RVdSzCwf4ygE/qMV1/YqGMXaTj2M9YDiH8F/cmbyXaV5JLAAAAAElFTkSuQmCC" alt="Logo Informa"/></div><span class="InformaBarTech-IconWrapper InformaBarTech-IconWrapper_closed"><svg viewBox="0 0 320 512" aria-hidden="true" focusable="false" role="img" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor" height="100%"><path fill="#ffffff" d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path></svg></span></div><p class="InformaBarTech-LogoInfoWrapper"><span class="InformaBarTech-LogoInfo">TechTarget and Informa Tech’s Digital Business Combine.</span><span class="InformaBarTech-LogoInfo InformaBarTech-LogoInfo_isMobile">TechTarget and Informa</span></p></div><div class="InformaBarTech-TopSection InformaBarTech-TopSection_hidden"><h2 class="InformaBarTech-TopSectionTitle">TechTarget and Informa Tech’s Digital Business Combine.</h2><p class="InformaBarTech-TopSectionDescription">Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.</p></div></div></div></div><div class="Navigation-SecondaryMenuWrapper"><div class="FullScreenBackground Navigation-SecondaryMenuBackground"></div><div class="Navigation-SecondaryMenu"><nav data-testid="SecondaryMenu" class="SecondaryMenu"><a class="SecondaryMenu-Link" target="_blank" href="https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service">Game Market Research</a><a class="SecondaryMenu-Link" target="_blank" href="https://www.gdcvault.com/">GDC Vault</a><a class="SecondaryMenu-Link" target="_blank" href="https://gdconf.com/">GDC</a><a class="SecondaryMenu-Link" target="_blank" href="https://reg.gdconf.com/gamedeveloper-media-kit">Advertise With Game Developer</a></nav></div></div><div style="padding-top:0px"></div><div id="navigation-header" class="Navigation-NavBase"><div data-testid="navBase" class="NavBase"><div class="NavBase-Content"><div class="FullScreenBackground NavBase-SecondaryMenuBackground"></div><div class="NavBase-HeaderWrapper"><div class="NavBase-IconsWrapper"><button data-testid="navBase-megaMenuButton" class="NavBase-MegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-MegaMenuIcon NavBase-MegaMenuIcon_iconVariant_small NavBase-MegaMenuIcon_iconType_bars" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" href="/" data-discover="true"><img data-testid="logo-image" data-component="image" class="NavBase-LogoImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=476&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=476&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Game Developer Logo" title="Game Developer Logo"/></a></div><div class="NavBase-RegisterWrapper"><div data-module="newsletter-signup-promo"><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_small NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Stay Updated</span></a></div><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_medium NewsletterSignupButton"><div data-component="social-share" class="SocialShare SocialShare_variant_layout Layout-SocialShare"><a rel="noreferrer" aria-label="RSS" class="Layout-SocialLink" href="/rss.xml" target="_blank" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z'/%3e%3cpath%20id='XMLID_790_'%20d='M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z'/%3e%3cpath%20id='XMLID_791_'%20d='M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z'/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z'/%3e%3cpath%20id='XMLID_790_'%20d='M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z'/%3e%3cpath%20id='XMLID_791_'%20d='M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z'/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" class="Layout-SocialLink" href="https://twitter.com/gamedevdotcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z'/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z'/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" class="Layout-SocialLink" href="https://www.linkedin.com/company/gamedeveloperofficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" class="Layout-SocialLink" href="https://www.facebook.com/GameDeveloperOfficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" class="Layout-SocialLink" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&oc=3&hl=en-US&gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z'/%3e%3cpath%20d='m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z'/%3e%3cpath%20d='m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div><a data-component="button" data-testid="headerMediumNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Stay Updated</span></a></div></div><button data-testid="RegisterSearchButton" class="NavBase-RegisterSearchButton" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="NavBase-SearchWrapper"><div class="FullScreenBackground NavBase-SearchBackground"></div><button data-testid="SearchCloseButton" class="NavBase-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div><div class="Navigation-MainMenu"><div data-testid="mainMenu"><div class="FullScreenBackground MainMenu-BackgroundSubmenu"></div><div class="FullScreenBackground MainMenu-BackgroundMenuItem"></div><div class="MainMenu-Content"><div class="MainMenu-MegaMenuButtonWrapper"><button data-testid="mainMenu-MegaMenuButton" aria-label="Open MegaMenu" class="MainMenu-MegaMenuButton"><span data-component="icon" data-name="Bars" class="MainMenu-MegaMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="MainMenu-ItemsWrapper" role="menu"><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Trending"><span class="MainMenu-MainTitle">Trending<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/generative-ai" data-discover="true">Generative AI</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/horror-games" data-discover="true">Horror Game Design</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/layoffs" data-discover="true">Game Industry Layoffs</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/-trend-m-a" data-discover="true">Investments & Acquisitions</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/-trend-unionization" data-discover="true">Unionization</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" href="/keyword/top-stories" data-discover="true"><span class="SubMenu-SeeMoreText">Top Stories</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/latest-news" data-discover="true">News</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/latest-case-studies" data-discover="true">Deep Dives</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/game-platforms/mobile" data-discover="true">Mobile</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/design" data-discover="true">Game Design</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/programming" data-discover="true">Programming</a></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of More"><span class="MainMenu-MainTitle">More<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/latest-interviews" data-discover="true">Interviews</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/q-a-s" data-discover="true">Q&As</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/deep-dives" data-discover="true">Deep Dives</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/postmortems" data-discover="true">Postmortems</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/culture" data-discover="true">Culture</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/unionization" data-discover="true">Unionization</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/business" data-discover="true">Business</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/marketing" data-discover="true">Marketing</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/design" data-discover="true">Design</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/programming" data-discover="true">Programming</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/production" data-discover="true">Production</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/art" data-discover="true">Art</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/audio" data-discover="true">Audio</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/pc" data-discover="true">PC</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/steam-deck" data-discover="true">Steam Deck</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/console" data-discover="true">Console</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/mobile" data-discover="true">Mobile</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/extended-reality" data-discover="true">Extended Reality</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/latest-commentary" data-discover="true">More</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/latest-commentary" data-discover="true"><span class="SubMenu-SeeMoreText">Read More: Business</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/epic-games-store-reached-295-million-pc-players-in-2024" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Logo for the Epic Games Store.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt002d7246d9fb521c/650effccc9eabeb5544795f8/egs.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt002d7246d9fb521c/650effccc9eabeb5544795f8/egs.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/epic-games-store-reached-295-million-pc-players-in-2024" data-discover="true">Epic Games Store reached 295 million PC players in 2024</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/epic-games-store-reached-295-million-pc-players-in-2024" data-discover="true">Epic Games Store reached 295 million PC players in 2024</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/justin-carter" data-discover="true">Justin Carter</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 14, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/final-fantasy-crystal-chronicles-delisted-on-ios-after-unfixable-bug" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Box art for Final Fantasy Crystal Chronicles.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt285de0d8e0fe9e53/67af82949d84cb5496ecdf1c/ff_crystal_chronicles.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt285de0d8e0fe9e53/67af82949d84cb5496ecdf1c/ff_crystal_chronicles.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/final-fantasy-crystal-chronicles-delisted-on-ios-after-unfixable-bug" data-discover="true">Final Fantasy Crystal Chronicles delisted on iOS after 'unfixable' bug</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/final-fantasy-crystal-chronicles-delisted-on-ios-after-unfixable-bug" data-discover="true">Final Fantasy Crystal Chronicles delisted on iOS after 'unfixable' bug</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/justin-carter" data-discover="true">Justin Carter</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 14, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Developer Blogs"><span class="MainMenu-MainTitle">Developer Blogs<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/program/blogs" data-discover="true">Browse Latest Blogs</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" target="_blank" href="https://reg.gdconf.com/blog-submission">Submit Your Blog Post</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/blogging-frequently-asked-questions" data-discover="true">Frequently Asked Questions</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/blogging-guidelines" data-discover="true">Blogging Rules and Guidelines</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" href="/keyword/featured-blogs" data-discover="true"><span class="SubMenu-SeeMoreText">Read Featured Blogs</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div></div><div class="MainMenu-SearchButtonWrapper"><button data-testid="mainMenu-SearchButton" aria-label="Open Search" class="MainMenu-SearchButton"><span data-component="icon" data-name="Search" class="MainMenu-SearchButtonIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="MainMenu-SearchWrapper"><div class="FullScreenBackground MainMenu-SearchBackground MainMenu-SearchBackground_withSearchBar"></div><button data-testid="mainMenu-SearchCloseButton" class="MainMenu-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="MainMenu-SearchCloseIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div></div></nav><div class="SponsorBar" data-component="sponsor-bar"><div class="SponsorBar-Wrapper"><span class="SponsorBar-Sponsored" data-testid="sponsored">Sponsored By</span><div class="SponsorBar-LogosWrapper"></div></div></div><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div class="ContributorList" data-template="contributor-list"><div data-template="list-content" class="ListContent"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="ContributorList-Head" data-testid="contributor-list-head"><ul data-component="breadcrumb" class="Breadcrumb"><li class="Breadcrumb-ListItem"><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-PrevIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><a class="Breadcrumb-GetText Breadcrumb-GetText_isNearLastItem" data-testid="breadcrumb-link" href="/" data-discover="true">Home</a><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-NextIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></li><li class="Breadcrumb-ListItem"><a class="Breadcrumb-GetText Breadcrumb-GetText_isLastItem" data-testid="breadcrumb-link" href="/author/kasson-crooker" data-discover="true">Kasson Crooker</a></li></ul><div data-component="contributor-summary" class="ContributorSummary ContributorSummary_variant_normal"><div class="ContributorSummary-ImageWrapper ContributorSummary-ImageWrapper_variant_normal"><img data-component="image" class="ContributorSummary-Image ContributorSummary-Image_variant_normal" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=400&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=400&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Game Developer Logo" title="Game Developer Logo"/></div><div class="ContributorSummary-InfoWrapper ContributorSummary-InfoWrapper_variant_normal"><div class="ContributorSummary-TitleWrapper"><p class="ContributorSummary-Title ContributorSummary-Title_variant_normal" data-testid="contributor-summary-title">Kasson Crooker</p></div><div class="ContributorSummary-SubTitleWrapper ContributorSummary-SubTitleWrapper_variant_normal"><p class="ContributorSummary-SubTitle ContributorSummary-SubTitle_variant_normal" data-testid="contributor-summary-subtitle"></p></div><div class="ContributorSummary-ContentWrapper ContributorSummary-ContentWrapper_variant_normal"><div class="ContributorSummary-Content ContributorSummary-Content_variant_normal ContributorSummary-Content_showFullContent" data-testid="contributor-summary-content"></div></div><div data-component="social-share" class="SocialShare SocialShare_variant_normal"></div></div></div><hr class="ContributorList-Divider"/></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ListContent-Body" data-testid="list-content-body"><h2 class="ListContent-Title ListContent-Title_latest" data-testid="latest-content-title">Latest from Kasson Crooker</h2><div class="ListContent-Content ListContent-Content_latest"><div class="ListContent-ContentWrapper"><div class="ListContent-ContentContainer"><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" href="/production/postmortem-harmonix-s-dance-central-2010-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">thumbnail</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc65a6c2903d51499/673ce42a198dc8431a7c963a/Game_Developer_Magazine_Cover_January_2011.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc65a6c2903d51499/673ce42a198dc8431a7c963a/Game_Developer_Magazine_Cover_January_2011.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_production ContentPreview-Category" href="/production" data-discover="true">Production</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/production/postmortem-harmonix-s-dance-central-2010-" data-discover="true">Classic Postmortem: Harmonix's Dance Central (2010)</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/production/postmortem-harmonix-s-dance-central-2010-" data-discover="true">Classic Postmortem: Harmonix's Dance Central (2010)</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/marc-flury-2" data-discover="true">Marc Flury<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/kasson-crooker" data-discover="true">Kasson Crooker</a><span class="Contributors-MoreText" data-testid="more-text">and <!-- -->3<!-- --> more</span></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>24 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Latest News</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/production/liquid-swords-confirms-layoffs-after-pledging-to-implement-sustainable-work-model-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">The Liquid Swords logo </span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3efef14762a494eb/67b335f79d18e87ef9e107d2/Liquid_Swords.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3efef14762a494eb/67b335f79d18e87ef9e107d2/Liquid_Swords.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_production ContentPreview-Category" href="/production" data-discover="true">Production</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/production/liquid-swords-confirms-layoffs-after-pledging-to-implement-sustainable-work-model-" data-discover="true">Liquid Swords confirms layoffs after pledging to implement 'sustainable work model'</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/production/liquid-swords-confirms-layoffs-after-pledging-to-implement-sustainable-work-model-" data-discover="true">Liquid Swords confirms layoffs after pledging to implement 'sustainable work model'</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/chris-kerr" data-discover="true">Chris Kerr</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 17, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/art/obituary-half-life-2-art-director-viktor-antonov-has-passed-away" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A headshot of Viktor Antonov</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt60a1365ea0b4d1f0/67b325b3ded86b25266bbf7c/Viktor.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt60a1365ea0b4d1f0/67b325b3ded86b25266bbf7c/Viktor.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_art ContentPreview-Category" href="/art" data-discover="true">Art</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/art/obituary-half-life-2-art-director-viktor-antonov-has-passed-away" data-discover="true">Obituary: Half-Life 2 art director Viktor Antonov has passed away</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/art/obituary-half-life-2-art-director-viktor-antonov-has-passed-away" data-discover="true">Obituary: Half-Life 2 art director Viktor Antonov has passed away</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/chris-kerr" data-discover="true">Chris Kerr</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 17, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_horizontal_sidebar"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Get daily news, dev blogs, and stories from Game Developer straight to your inbox</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message">Subscribe to Game Developer Newsletters to stay caught up with the latest news, design insights, marketing tips, and more</div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-spotlight" class="ContentSpotlight ContentSpotlight_mode_light"><article class="ContentSpotlight-Article ContentSpotlight-Article_isReversed ContentSpotlight-Article_isSidebar" text-alignment="center" data-testid="content-spotlight-article"><div class="ContentSpotlight-ImageContainer" data-testid="content-spotlight-image-container"><div class="ContentSpotlight-KeywordList"><div class="ContentSpotlight-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentSpotlight-Keyword" href="/business" data-discover="true">Business</a></div></div><a href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><img data-component="image" class="ContentSpotlight-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A photo of the White House in black and white." title="A photo of the White House in black and white."/></a></div><div class="ContentSpotlight-ContentContainer ContentSpotlight-ContentContainer_textAlignment_center ContentSpotlight-ContentContainer_isSidebar" data-testid="content-spotlight-content-container"><p class="ContentSpotlight-ContentSummary" data-testid="content-spotlight-summary">Trending</p><a href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><h2 class="ContentSpotlight-ContentHeading" data-testid="content-spotlight-heading">Opinion: How will Project 2025 impact game developers?</h2></a><div class="ContentSpotlight-ContentBodyWrapper ContentSpotlight-ContentBodyWrapper_isSidebar"><p class="ContentSpotlight-ContentBody" data-testid="content-spotlight-body">The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.</p></div><div class="ContentSpotlight-ButtonContainer"><a data-component="button" data-testid="content-spotlight-button-link" class="Button Button_size_medium Button_variant_darkOutlined" href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><span class="Button-ContentWrapper">Read More</span></a></div></div></article></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">More from GD</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_art ContentPreview-Category" href="/art" data-discover="true">Art</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 13, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A soldier from the ARMA series stands at the ready with an M-16.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A magical pink flower on a balcony.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" data-discover="true">Design</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true">Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true">Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 6, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="Microphone" class="ContentList-Icon" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Layer_1'%20fill='currentColor'%20height='512'%20viewBox='0%200%20100%20100'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z'/%3e%3cpath%20d='m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z'/%3e%3cpath%20d='m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Layer_1'%20fill='currentColor'%20height='512'%20viewBox='0%200%20100%20100'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z'/%3e%3cpath%20d='m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z'/%3e%3cpath%20d='m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Latest Podcasts</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/design/snapping-your-career-into-place-with-ben-brode-game-developer-podcast-ep-48" target="" data-discover="true"><p class="ContentList-ListItemTitle">Snapping Your Career into Place with Ben Brode: Game Developer Podcast Ep. 48</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Nov 27, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/design/preserving-the-past-with-charles-cecil-game-developer-podcast-ep-46" target="" data-discover="true"><p class="ContentList-ListItemTitle">Preserving the Past With Charles Cecil: Game Developer Podcast Ep. 46</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 29, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/production/on-the-unionization-frontlines-with-autumn-mitchell-emma-kinema-and-chris-lusco-game-developer-podcast-ep-45" target="" data-discover="true"><p class="ContentList-ListItemTitle">On the unionization frontlines with Autumn Mitchell, Emma Kinema and Chris Lusco: Game Developer Podcast Ep. 45</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Jul 26, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/business/behind-the-gdc-scenes-with-beth-elderkin-and-sam-warnke-game-developer-podcast-ep-43" target="" data-discover="true"><p class="ContentList-ListItemTitle">Behind the GDC scenes with Beth Elderkin and Sam Warnke: Game Developer Podcast ep. 43</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">May 15, 2024</span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" href="/keyword/game-developer-podcast" target="_blank" data-discover="true">See all</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div></div></div><div class="Sidebar-SidebarItem"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Featured Blogs</h3></div><div class="ContentCards-Content ContentCards-Content_default"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">ESA logo and company logos</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production HorizontalCard-Keyword" href="/production" data-discover="true">Production</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative" data-discover="true">ESA Brings top studios together at GDC to unveil new accessibility initiative</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative" data-discover="true">ESA Brings top studios together at GDC to unveil new accessibility initiative</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 6, 2025</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">Characters from Space Marine 2</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production HorizontalCard-Keyword" href="/production" data-discover="true">Production</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2" data-discover="true">Creating seamless multiplayer experiences for games like Space Marine 2</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2" data-discover="true">Creating seamless multiplayer experiences for games like Space Marine 2</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 5, 2025</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/business/developers-still-aren-t-warming-up-to-generative-ai" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">A robotic middle finger emerges from a laptop screen.</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business HorizontalCard-Keyword" href="/business" data-discover="true">Business</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/business/developers-still-aren-t-warming-up-to-generative-ai" data-discover="true">Developers still aren't warming up to generative AI</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/business/developers-still-aren-t-warming-up-to-generative-ai" data-discover="true">Developers still aren't warming up to generative AI</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Jan 22, 2025</p></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="ListContent-NewsletterSignupPromo"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_vertical"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Daily news, dev blogs, and stories from Game Developer straight to your inbox</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message"></div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a href="/" data-discover="true"><img title="Game Developer Logo" data-component="image" class="Footer-LogoImage Footer-LogoImage_length_2" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Game Developer Logo"/></a></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">More from GD</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://reg.gdconf.com/blog-submission">Blog with Game Developer</a><a class="LinkSection-Link" rel="noreferrer" href="/blogging-guidelines" target="_blank" data-discover="true">Blogging Guidelines</a><a class="LinkSection-Link" rel="noreferrer" href="/podcasts" target="_blank" data-discover="true">Game Developer Podcast</a><a class="LinkSection-Link" target="_self" rel="noreferrer" href="/cdn-cgi/l/email-protection#2e404b595d6e494f434b4a4b584b42415e4b5c004d4143">Submit a Tip</a></div></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Connect</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" rel="noreferrer" href="/about-game-developer" target="_blank" data-discover="true">About Us</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://reg.gdconf.com/gamedeveloper-media-kit">Advertise With Game Developer</a><a class="LinkSection-Link" rel="noreferrer" href="/contact-game-developer" target="_blank" data-discover="true">Contact Us</a></div></div><div data-testid="registration" class="Footer-RegistrationWrapper"><div class="RegistrationSection RegistrationSection_linkSectionLength_2"><h5 class="RegistrationSection-Title">Join Us</h5><div class="Layout-Register Layout-Register_variant_footer"></div><div class="Layout-NewsLetter Layout-NewsLetter_variant_footer"><div data-module="newsletter-signup-promo"><a data-component="button" data-testid="footerNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-footer" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div><div data-testid="social" class="SocialSection SocialSection_linkSectionLength_2"><h5 class="SocialSection-Title">Follow Us</h5><div data-component="social-share" class="SocialShare SocialShare_variant_layout"><a rel="noreferrer" aria-label="RSS" href="/rss.xml" target="_blank" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z'/%3e%3cpath%20id='XMLID_790_'%20d='M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z'/%3e%3cpath%20id='XMLID_791_'%20d='M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z'/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z'/%3e%3cpath%20id='XMLID_790_'%20d='M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z'/%3e%3cpath%20id='XMLID_791_'%20d='M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z'/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="https://twitter.com/gamedevdotcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z'/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z'/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/company/gamedeveloperofficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="https://www.facebook.com/GameDeveloperOfficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&oc=3&hl=en-US&gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z'/%3e%3cpath%20d='m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z'/%3e%3cpath%20d='m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div></div><div class="BrandSection"><div class="BrandSection-Background"></div><div data-testid="brands" class="BrandSection-LinksWrapper"><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="GDC Vault" title="Link to GDC Vault" href="https://www.gdcvault.com/"><img title="GDC Vault Logo" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="GDC Vault Logo"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="Game Developer Job Board" title="Link to Game Developer Job Board" href="https://jobs.gamasutra.com"><img title="Game Developer Job Board" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Game Developer Job Board"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="GDC" title="Link to GDC" href="https://www.gdconf.com"><img title="GDC" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="GDC"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="Omdia" title="Link to Omdia" href="https://www.omdia.com"><img title="Omdia" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Omdia"/></a></div></div><div class="CopyrightsSection"><div class="CopyrightsSection-Background"></div><div data-testid="copyrights" class="CopyrightsSection-Wrapper"><a data-testid="businessUnit" class="CopyrightsSection-BusinessLink" target="_blank" href="https://www.informa.com"><img title="Informa" data-component="image" class="CopyrightsSection-BusinessImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2025. This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/">Home<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" href="/cookie-policy" target="_blank" data-discover="true">Cookie Policy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.techtarget.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/terms-and-conditions/">Terms of Use</a></div></div></div></div></footer></div></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((storageKey2, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(storageKey2); } })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false},"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">; import * as route0 from "/assets/root-0nf9i4ZF.js"; import * as route1 from "/assets/author._slug-0r0GzF8V.js"; window.__reactRouterManifest = { "entry": { "module": "/assets/entry.client-BeFAP2ww.js", "imports": [ "/assets/chunk-K6AXKMTT-CHYA7xuV.js", "/assets/index-BSbs-5XW.js" ], "css": [] }, "routes": { "root": { "id": "root", "path": "", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-0nf9i4ZF.js", "imports": [ "/assets/chunk-K6AXKMTT-CHYA7xuV.js", "/assets/index-BSbs-5XW.js", "/assets/with-props-CEmjks6P.js", "/assets/gtm-Bhg5v0kK.js", "/assets/contentPreview-DVkUqnQw.js", "/assets/_-Bs3SyN-5.js", "/assets/useArticleProps-D_xn1SoH.js", "/assets/provider-D8hGPYap.js", "/assets/newsletterSignupPromo-DBM_Buya.js", "/assets/socialShare-BetaF3nk.js", "/assets/link-B0EXaXnQ.js", "/assets/button-2u7YveIz.js", "/assets/util-CdNciH7h.js", "/assets/searchBar-Cv2Svi5s.js", "/assets/useSearchBar-B7n_81gh.js", "/assets/navigation-DNYtFoxY.js", "/assets/redirection-CcR_QTDp.js", "/assets/meta-hUHi7WZc.js", "/assets/form-B6K9BB4H.js" ], "css": [] }, "routes/author.$slug": { "id": "routes/author.$slug", "parentId": "root", "path": "author/:slug", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/author._slug-0r0GzF8V.js", "imports": [ "/assets/with-props-CEmjks6P.js", "/assets/chunk-K6AXKMTT-CHYA7xuV.js", "/assets/_-Bs3SyN-5.js", "/assets/gtm-Bhg5v0kK.js", "/assets/breadcrumb-BHlyGeYe.js", "/assets/contributorSummary-ghBBFOgh.js", "/assets/socialShare-BetaF3nk.js", "/assets/useArticleProps-D_xn1SoH.js", "/assets/listContent-BhVLgC1k.js", "/assets/useWeatherWidget-AaEchakd.js", "/assets/meta-hUHi7WZc.js", "/assets/link-B0EXaXnQ.js", "/assets/button-2u7YveIz.js", "/assets/contentPreview-DVkUqnQw.js", "/assets/utils-Bn24zYNJ.js", "/assets/gridLayout-D3d3Sywd.js", "/assets/pagination-NR_kC-LV.js", "/assets/commodityPrices-DJr8VhOL.js", "/assets/newsletterSignupPromo-DBM_Buya.js", "/assets/sidebar-BprMrwM7.js", "/assets/weatherWidget-DeWCQLwf.js", "/assets/changeLocationBar-6QWG9j8W.js", "/assets/form-B6K9BB4H.js", "/assets/contentCards-DmwKmMha.js", "/assets/videoPlaylist-D52CwHbx.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/toNumber-C_nKo9iw.js", "/assets/index-BSbs-5XW.js", "/assets/_getPrototype-C_MHsswr.js", "/assets/useStorage-C29fdY0K.js" ], "css": [] }, "routes/_index": { "id": "routes/_index", "parentId": "root", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_index-CoPJClXM.js", "imports": [ "/assets/with-props-CEmjks6P.js", "/assets/chunk-K6AXKMTT-CHYA7xuV.js", "/assets/_-Bs3SyN-5.js", "/assets/gtm-Bhg5v0kK.js", "/assets/useArticleProps-D_xn1SoH.js", "/assets/moduleSection-DZMf1oOm.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/useStorage-C29fdY0K.js", "/assets/meta-hUHi7WZc.js", "/assets/link-B0EXaXnQ.js", "/assets/contentCards-DmwKmMha.js", "/assets/contentPreview-DVkUqnQw.js", "/assets/weatherHomepage-BntP8sZT.js", "/assets/button-2u7YveIz.js", "/assets/socialShare-BetaF3nk.js", "/assets/index-BC9RXr3m.js", "/assets/weatherWidget-DeWCQLwf.js", "/assets/changeLocationBar-6QWG9j8W.js", "/assets/form-B6K9BB4H.js", "/assets/commodityPrices-DJr8VhOL.js", "/assets/videoPlaylist-D52CwHbx.js", "/assets/toNumber-C_nKo9iw.js", "/assets/newsletterSignupPromo-DBM_Buya.js", "/assets/resources-Coo4SamE.js" ], "css": [] }, "routes/$topic._index": { "id": "routes/$topic._index", "parentId": "root", "path": ":topic", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_topic._index-B2MiV88j.js", "imports": [ "/assets/with-props-CEmjks6P.js", "/assets/chunk-K6AXKMTT-CHYA7xuV.js", "/assets/_-Bs3SyN-5.js", "/assets/gtm-Bhg5v0kK.js", "/assets/useArticleProps-D_xn1SoH.js", "/assets/breadcrumb-BHlyGeYe.js", "/assets/categoryHeader-DbrwhZD_.js", "/assets/listContent-BhVLgC1k.js", "/assets/searchBar-Cv2Svi5s.js", "/assets/useSearchBar-B7n_81gh.js", "/assets/newsletterSignupPromo-DBM_Buya.js", "/assets/contentPreview-DVkUqnQw.js", "/assets/utils-Bn24zYNJ.js", "/assets/pagination-NR_kC-LV.js", "/assets/button-2u7YveIz.js", "/assets/filterSection-KwJMcK7T.js", "/assets/topicList-B2L7lhBz.js", "/assets/gridLayout-D3d3Sywd.js", "/assets/featureImageHeader-CE79lnbb.js", "/assets/moduleSection-DZMf1oOm.js", "/assets/articleMultiSection-De9Hc8He.js", "/assets/provider-D8hGPYap.js", "/assets/string-BS_NwYxO.js", "/assets/meta-hUHi7WZc.js", "/assets/useWeatherWidget-AaEchakd.js", "/assets/link-B0EXaXnQ.js", "/assets/commodityPrices-DJr8VhOL.js", "/assets/sidebar-BprMrwM7.js", "/assets/weatherWidget-DeWCQLwf.js", "/assets/changeLocationBar-6QWG9j8W.js", "/assets/form-B6K9BB4H.js", "/assets/contentCards-DmwKmMha.js", "/assets/videoPlaylist-D52CwHbx.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/toNumber-C_nKo9iw.js", "/assets/index-BSbs-5XW.js", "/assets/_getPrototype-C_MHsswr.js", "/assets/util-CdNciH7h.js", "/assets/input-CKmWmkxG.js", "/assets/_baseForOwn-0Onmi9tN.js", "/assets/index-BC9RXr3m.js", "/assets/socialShare-BetaF3nk.js", "/assets/weatherHomepage-BntP8sZT.js", "/assets/resources-Coo4SamE.js", "/assets/contributorSummary-ghBBFOgh.js", "/assets/programHeader-23RTsuDj.js", "/assets/redirection-CcR_QTDp.js", "/assets/useStorage-C29fdY0K.js" ], "css": [] } }, "url": "/assets/manifest-ab19614f.js", "version": "ab19614f" }; window.__reactRouterRouteModules = {"root":route0,"routes/author.$slug":route1}; import("/assets/entry.client-BeFAP2ww.js");</script><!--$?--><template id="B:0"></template><!--/$--><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_1522\":-5,\"_1523\":-5},\"loaderData\",{\"_3\":4,\"_726\":727},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_141\":142,\"_147\":-7,\"_148\":140,\"_149\":150,\"_153\":-7,\"_154\":155,\"_160\":-7,\"_161\":162,\"_173\":174,\"_175\":176,\"_196\":197,\"_610\":611,\"_612\":-7,\"_613\":614,\"_627\":628,\"_648\":649},\"href\",\"http://www.gamedeveloper.com/author/kasson-crooker\",\"brand\",\"gamedeveloper\",\"domainUrl\",\"https://www.gamedeveloper.com\",\"authenticationStatus\",\"anonymous\",\"siteName\",\"Game Developer\",\"ads\",{\"_17\":18,\"_19\":20,\"_21\":22,\"_139\":140},\"networkId\",3834,\"parentAdUnit\",\"gamasutra.home\",\"enabledAds\",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],\"728_1v\",\"728_2v\",\"728_3v\",\"728_4v\",\"728_5v\",\"728_6v\",\"728_7v\",\"728_8v\",\"728_9v\",\"728_10v\",\"728_11v\",\"slide_728_1v\",\"300_1v\",\"300_2v\",\"300_3v\",\"300_4v\",\"300_5v\",\"300_6v\",\"300_7v\",\"300_8v\",\"300_9v\",\"300_10v\",\"300_1v_microlist\",\"slide_300_1v\",\"300_1v_article\",\"300_2v_article\",\"300_3v_article\",\"100_1v\",\"100_2v\",\"100_3v\",\"100_4v\",\"100_5v\",\"100_6v\",\"100_7v\",\"100_8v\",\"native_featured_1v\",\"native_latestleft_1v\",\"native_latestleft_2v\",\"native_latestleft_3v\",\"native_latestleft_4v\",\"native_latestleft_5v\",\"native_latestleft_6v\",\"native_latestleft_7v\",\"native_latestleft_8v\",\"native_latestleft_9v\",\"native_latestleft_10v\",\"native_latestright_1v\",\"native_latestright_2v\",\"native_latestright_3v\",\"native_latestright_4v\",\"native_latestright_5v\",\"native_latestright_6v\",\"native_latestright_7v\",\"native_latestright_8v\",\"native_latestright_9v\",\"native_latestright_10v\",\"native_related_1v\",\"native_related_2v\",\"native_related_3v\",\"native_related_4v\",\"native_related_5v\",\"native_related_6v\",\"native_related_7v\",\"native_related_8v\",\"native_related_9v\",\"native_related_10v\",\"native_1v\",\"native_2v\",\"native_right_1v\",\"native_right_2v\",\"native_right_3v\",\"native_right_4v\",\"native_right_5v\",\"native_right_6v\",\"native_right_7v\",\"native_right_8v\",\"native_right_9v\",\"native_right_10v\",\"native_vertical_1v\",\"native_vertical_2v\",\"native_vertical_3v\",\"native_vertical_4v\",\"native_vertical_5v\",\"native_vertical_6v\",\"native_vertical_7v\",\"native_vertical_8v\",\"native_vertical_9v\",\"native_vertical_10v\",\"native_grid_1v\",\"native_grid_2v\",\"native_grid_3v\",\"native_grid_4v\",\"native_topic_1v\",\"native_topic_2v\",\"native_topic_3v\",\"native_topicright_1v\",\"native_topicright_2v\",\"native_topicright_3v\",\"resource_v\",\"bigsky_v\",\"floor_v\",\"adhesion_v\",\"wallpaper_v\",\"video_v\",\"oop_v\",\"sponsoredlogo_weather_1v\",\"sponsoredlogo_commodities_1v\",\"logo_1v\",\"reveal_1v\",\"slide_interstitial_1v\",\"slide_interstitial_2v\",\"slide_interstitial_3v\",\"slide_interstitial_4v\",\"slide_interstitial_5v\",\"chatbox_1v\",\"welcome_v\",\"checkClientIP\",false,\"authConfig\",{\"_143\":140,\"_144\":-7,\"_145\":-7,\"_146\":140},\"enabled\",\"authenticationConfigId\",\"standaloneRegistrationPage\",\"disableCaptcha\",\"vwo\",\"isDctsTurnOn\",\"oneTrust\",{\"_151\":152},\"siteId\",\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b\",\"cookieBanner\",\"gtmIds\",{\"_156\":157,\"_158\":159},\"primary\",\"GTM-5523ZCM\",\"secondary\",\"GTM-KSPX23J\",\"pageContent\",\"ui\",{\"_7\":8,\"_163\":164,\"_165\":166},\"theme\",\"theme2\",\"font\",{\"_156\":167,\"_158\":172},{\"_168\":169,\"_170\":171},\"name\",\"Poppins\",\"url\",\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900\u0026display=swap\",{\"_168\":169,\"_170\":171},\"environment\",\"prod\",\"featureToggles\",{\"_177\":140,\"_178\":140,\"_179\":180,\"_181\":140,\"_182\":140,\"_183\":140,\"_184\":140,\"_185\":180,\"_186\":140,\"_187\":140,\"_188\":189,\"_190\":140,\"_191\":140,\"_192\":180,\"_193\":180,\"_194\":180,\"_195\":140},\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",true,\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"legacyHomepage\",\"oneTrustEnabled\",\"transcendEnabled\",\"useTechInformaBar\",\"cloudflareCachingEnabled\",\"layout\",{\"_198\":199,\"_216\":217,\"_240\":241,\"_429\":430,\"_515\":516,\"_522\":523,\"_608\":180,\"_609\":140},\"socialLinks\",[200,204,207,210,213],{\"_201\":202,\"_170\":203},\"type\",\"RSS\",\"/rss.xml\",{\"_201\":205,\"_170\":206},\"Twitter\",\"https://twitter.com/gamedevdotcom/\",{\"_201\":208,\"_170\":209},\"Linkedin\",\"https://www.linkedin.com/company/gamedeveloperofficial\",{\"_201\":211,\"_170\":212},\"Facebook\",\"https://www.facebook.com/GameDeveloperOfficial\",{\"_201\":214,\"_170\":215},\"GoogleNews\",\"https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en\u0026oc=3\u0026hl=en-US\u0026gl=US\",\"informaBar\",{\"_143\":180,\"_218\":219,\"_237\":238},\"leftSection\",{\"_220\":221,\"_222\":223},\"description\",\"Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.\",\"subMenu\",[224,228,231,234],{\"_225\":226,\"_170\":227},\"title\",\"Informa PLC\",\"https://www.informa.com/\",{\"_225\":229,\"_170\":230},\"ABOUT US\",\"https://www.informa.com/about-us/\",{\"_225\":232,\"_170\":233},\"INVESTOR RELATIONS\",\"https://www.informa.com/investors/\",{\"_225\":235,\"_170\":236},\"TALENT\",\"https://www.informa.com/talent/\",\"rightSection\",{\"_220\":239},\"This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.\",\"nav\",{\"_242\":243,\"_415\":416},\"mainMenuItems\",[244,269,275,281,287,293,298,397],{\"_225\":245,\"_170\":246,\"_247\":248,\"_249\":246,\"_250\":180,\"_222\":251,\"_267\":268},\"Trending\",\"/keyword/top-stories\",\"seeAllLink\",\"Top Stories\",\"seeAllLinkUrl\",\"hasSubMenu\",[252,255,258,261,264],{\"_225\":253,\"_170\":254},\"Generative AI\",\"/keyword/generative-ai\",{\"_225\":256,\"_170\":257},\"Horror Game Design\",\"/keyword/horror-games\",{\"_225\":259,\"_170\":260},\"Game Industry Layoffs\",\"/keyword/layoffs\",{\"_225\":262,\"_170\":263},\"Investments \u0026 Acquisitions\",\"/keyword/-trend-m-a\",{\"_225\":265,\"_170\":266},\"Unionization\",\"keyword/-trend-unionization\",\"recentContents\",[],{\"_225\":270,\"_170\":271,\"_247\":272,\"_249\":271,\"_250\":140,\"_222\":273,\"_267\":274},\"News\",\"/latest-news\",\"\",[],[],{\"_225\":276,\"_170\":277,\"_247\":278,\"_249\":277,\"_250\":140,\"_222\":279,\"_267\":280},\"Deep Dives\",\"/latest-case-studies\",\"Read More\",[],[],{\"_225\":282,\"_170\":283,\"_247\":284,\"_249\":283,\"_250\":140,\"_222\":285,\"_267\":286},\"Mobile\",\"/game-platforms/mobile\",\"Mobile Game Development\",[],[],{\"_225\":288,\"_170\":289,\"_247\":290,\"_249\":289,\"_250\":140,\"_222\":291,\"_267\":292},\"Game Design\",\"/design\",\"See All\",[],[],{\"_225\":294,\"_170\":295,\"_247\":278,\"_249\":295,\"_250\":140,\"_222\":296,\"_267\":297},\"Programming\",\"/programming\",[],[],{\"_225\":299,\"_170\":300,\"_247\":301,\"_249\":300,\"_250\":180,\"_222\":302,\"_267\":350},\"More\",\"/latest-commentary\",\"Read More: Business\",[303,306,309,311,314,317,319,322,325,327,328,331,334,337,340,343,346,347],{\"_225\":304,\"_170\":305},\"Interviews\",\"/latest-interviews\",{\"_225\":307,\"_170\":308},\"Q\u0026As\",\"/keyword/q-a-s\",{\"_225\":276,\"_170\":310},\"/keyword/deep-dives\",{\"_225\":312,\"_170\":313},\"Postmortems\",\"/keyword/postmortems\",{\"_225\":315,\"_170\":316},\"Culture\",\"/keyword/culture\",{\"_225\":265,\"_170\":318},\"/keyword/unionization\",{\"_225\":320,\"_170\":321},\"Business\",\"/business\",{\"_225\":323,\"_170\":324},\"Marketing\",\"/marketing\",{\"_225\":326,\"_170\":289},\"Design\",{\"_225\":294,\"_170\":295},{\"_225\":329,\"_170\":330},\"Production\",\"/production\",{\"_225\":332,\"_170\":333},\"Art\",\"/art\",{\"_225\":335,\"_170\":336},\"Audio\",\"/audio\",{\"_225\":338,\"_170\":339},\"PC\",\"/game-platforms/pc\",{\"_225\":341,\"_170\":342},\"Steam Deck\",\"/keyword/steam-deck\",{\"_225\":344,\"_170\":345},\"Console\",\"/game-platforms/console\",{\"_225\":282,\"_170\":283},{\"_225\":348,\"_170\":349},\"Extended Reality\",\"/game-platforms/extended-reality\",[351,387],{\"_352\":353,\"_358\":359,\"_360\":359,\"_361\":362,\"_363\":364,\"_365\":272,\"_366\":367,\"_368\":272,\"_369\":320,\"_370\":321,\"_371\":372,\"_373\":374,\"_381\":382,\"_383\":384,\"_385\":386},\"thumbnail\",{\"_354\":355,\"_356\":357},\"src\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt002d7246d9fb521c/650effccc9eabeb5544795f8/egs.png\",\"alt\",\"Logo for the Epic Games Store.\",\"articleName\",\"Epic Games Store reached 295 million PC players in 2024\",\"mobileHeadline\",\"articleSummary\",\"The EGS' annual player spending increased by 15 percent to $1.1 billion in 2024, while third-party spending keeps declining.\",\"articleUrl\",\"/business/epic-games-store-reached-295-million-pc-players-in-2024\",\"listPageUrl\",\"date\",\"Feb 14, 2025\",\"webinarStartTime\",\"categoryName\",\"categoryUrl\",\"contentType\",\"Article\",\"contributors\",[375],{\"_168\":376,\"_377\":378,\"_379\":380},\"Justin Carter\",\"link\",\"/author/justin-carter\",\"avatar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt33d97cf9dc327673/650f03deb8329c920e5af96f/Image_from_iOS.jpg\",\"timeRead\",2,\"variant\",\"card-vertical\",\"layoutVariant\",\"vertical\",{\"_352\":388,\"_358\":391,\"_360\":391,\"_361\":392,\"_363\":393,\"_365\":272,\"_366\":367,\"_368\":272,\"_369\":320,\"_370\":321,\"_371\":372,\"_373\":394,\"_381\":396,\"_383\":384,\"_385\":386},{\"_354\":389,\"_356\":390},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt285de0d8e0fe9e53/67af82949d84cb5496ecdf1c/ff_crystal_chronicles.jpg\",\"Box art for Final Fantasy Crystal Chronicles.\",\"Final Fantasy Crystal Chronicles delisted on iOS after 'unfixable' bug\",\"Changes to Final Fantasy Crystal Chronicles' payment model on iOS prevented players from accessing content they bought in its free and paid versions.\",\"/business/final-fantasy-crystal-chronicles-delisted-on-ios-after-unfixable-bug\",[395],{\"_168\":376,\"_377\":378,\"_379\":380},1,{\"_225\":398,\"_170\":399,\"_247\":400,\"_249\":399,\"_250\":180,\"_222\":401,\"_267\":414},\"Developer Blogs\",\"/keyword/featured-blogs\",\"Read Featured Blogs\",[402,405,408,411],{\"_225\":403,\"_170\":404},\"Browse Latest Blogs\",\"/program/blogs\",{\"_225\":406,\"_170\":407},\"Submit Your Blog Post\",\"https://reg.gdconf.com/blog-submission\",{\"_225\":409,\"_170\":410},\"Frequently Asked Questions\",\"/blogging-frequently-asked-questions\",{\"_225\":412,\"_170\":413},\"Blogging Rules and Guidelines\",\"/blogging-guidelines\",[],\"secondaryMenu\",[417,420,423,426],{\"_225\":418,\"_170\":419},\"Game Market Research\",\"https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service\",{\"_225\":421,\"_170\":422},\"GDC Vault\",\"https://www.gdcvault.com/\",{\"_225\":424,\"_170\":425},\"GDC\",\"https://gdconf.com/\",{\"_225\":427,\"_170\":428},\"Advertise With Game Developer\",\"https://reg.gdconf.com/gamedeveloper-media-kit\",\"megaMenu\",{\"_431\":432,\"_476\":477,\"_507\":508},\"largeMenu\",[433,440,442,444,446,448,450,470],{\"_225\":245,\"_170\":246,\"_222\":434,\"_247\":248,\"_249\":246},[435,436,437,438,439],{\"_225\":253,\"_170\":254},{\"_225\":256,\"_170\":257},{\"_225\":259,\"_170\":260},{\"_225\":262,\"_170\":263},{\"_225\":265,\"_170\":266},{\"_225\":270,\"_170\":271,\"_222\":441,\"_247\":272,\"_249\":271},[],{\"_225\":276,\"_170\":277,\"_222\":443,\"_247\":278,\"_249\":277},[],{\"_225\":282,\"_170\":283,\"_222\":445,\"_247\":284,\"_249\":283},[],{\"_225\":288,\"_170\":289,\"_222\":447,\"_247\":290,\"_249\":289},[],{\"_225\":294,\"_170\":295,\"_222\":449,\"_247\":278,\"_249\":295},[],{\"_225\":299,\"_170\":300,\"_222\":451,\"_247\":301,\"_249\":300},[452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469],{\"_225\":304,\"_170\":305},{\"_225\":307,\"_170\":308},{\"_225\":276,\"_170\":310},{\"_225\":312,\"_170\":313},{\"_225\":315,\"_170\":316},{\"_225\":265,\"_170\":318},{\"_225\":320,\"_170\":321},{\"_225\":323,\"_170\":324},{\"_225\":326,\"_170\":289},{\"_225\":294,\"_170\":295},{\"_225\":329,\"_170\":330},{\"_225\":332,\"_170\":333},{\"_225\":335,\"_170\":336},{\"_225\":338,\"_170\":339},{\"_225\":341,\"_170\":342},{\"_225\":344,\"_170\":345},{\"_225\":282,\"_170\":283},{\"_225\":348,\"_170\":349},{\"_225\":398,\"_170\":399,\"_222\":471,\"_247\":400,\"_249\":399},[472,473,474,475],{\"_225\":403,\"_170\":404},{\"_225\":406,\"_170\":407},{\"_225\":409,\"_170\":410},{\"_225\":412,\"_170\":413},\"smallMenu\",[478,498,502],{\"_225\":299,\"_170\":272,\"_222\":479},[480,483,486,489,492,495],{\"_225\":481,\"_170\":482},\"Sponsored Articles\",\"/keyword/sponsor-resource-center\",{\"_225\":484,\"_170\":485},\"Podcasts\",\"/podcasts\",{\"_225\":487,\"_170\":488},\"Webinars \u0026 Virtual Events\",\"/webinars\",{\"_225\":490,\"_170\":491},\"Press Releases\",\"/press-release\",{\"_225\":493,\"_170\":494},\"Resource Library\",\"/resources\",{\"_225\":496,\"_170\":497},\"GCG Status Update\",\"/gcg-status-update\",{\"_225\":499,\"_170\":272,\"_222\":500},\"Events\",[501],{\"_225\":424,\"_170\":425},{\"_225\":503,\"_170\":272,\"_222\":504},\"Advertise\",[505],{\"_225\":506,\"_170\":428},\"Advertise With Us\",\"sideNavSections\",[509],{\"_225\":510,\"_170\":272,\"_222\":511,\"_247\":272,\"_249\":272},\"Communicate\",[512],{\"_225\":513,\"_170\":514},\"Contact Us\",\"/contact-game-developer\",\"navBase\",{\"_517\":518},\"logo\",{\"_170\":519,\"_520\":521},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png\",\"altText\",\"Game Developer Logo\",\"footer\",{\"_517\":524,\"_525\":526,\"_562\":563,\"_582\":583},{\"_170\":519,\"_520\":521},\"linkSections\",[527,550],{\"_528\":529,\"_225\":548,\"_201\":549},\"links\",[530,537,541,544],{\"_531\":532,\"_535\":180,\"_225\":536,\"_170\":407},\"image\",{\"_520\":533,\"_170\":534},\"Placeholder image\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd1cdb5ad637f7f4e/651d415bd9bb870df1310c25/placeholder.png\",\"openInNewTab\",\"Blog with Game Developer\",{\"_531\":538,\"_535\":180,\"_225\":540,\"_170\":413},{\"_520\":539,\"_170\":534},\"placeholder image\",\"Blogging Guidelines\",{\"_531\":542,\"_535\":180,\"_225\":543,\"_170\":485},{\"_520\":539,\"_170\":534},\"Game Developer Podcast\",{\"_531\":545,\"_535\":180,\"_225\":546,\"_170\":547},{\"_520\":539,\"_170\":534},\"Submit a Tip\",\"mailto:news@gamedeveloper.com\",\"More from GD\",\"1\",{\"_528\":551,\"_225\":561,\"_201\":549},[552,557,559],{\"_531\":553,\"_535\":180,\"_225\":555,\"_170\":556},{\"_520\":554,\"_170\":534},\"placeholder\",\"About Us\",\"/about-game-developer\",{\"_531\":558,\"_535\":180,\"_225\":427,\"_170\":428},{\"_520\":554,\"_170\":534},{\"_531\":560,\"_535\":180,\"_225\":513,\"_170\":514},{\"_520\":554,\"_170\":534},\"Connect\",\"brandLinks\",[564,568,573,577],{\"_531\":565,\"_535\":180,\"_225\":421,\"_170\":422},{\"_520\":566,\"_170\":567},\"GDC Vault Logo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png\",{\"_531\":569,\"_535\":180,\"_225\":570,\"_170\":572},{\"_520\":570,\"_170\":571},\"Game Developer Job Board\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png\",\"https://jobs.gamasutra.com\",{\"_531\":574,\"_535\":180,\"_225\":424,\"_170\":576},{\"_520\":424,\"_170\":575},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png\",\"https://www.gdconf.com\",{\"_531\":578,\"_535\":180,\"_225\":579,\"_170\":581},{\"_520\":579,\"_170\":580},\"Omdia\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png\",\"https://www.omdia.com\",\"copyright\",{\"_584\":585,\"_528\":590,\"_225\":607},\"businessUnit\",{\"_170\":586,\"_168\":587,\"_588\":589},\"https://www.informa.com\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png\",[591,595,599,603],{\"_531\":592,\"_535\":180,\"_225\":593,\"_170\":594},{\"_520\":593,\"_170\":594},\"Home\",\"https://www.informatech.com/\",{\"_531\":596,\"_535\":180,\"_225\":597,\"_170\":598},{\"_520\":597,\"_170\":598},\"Cookie Policy\",\"/cookie-policy\",{\"_531\":600,\"_535\":180,\"_225\":601,\"_170\":602},{\"_520\":601,\"_170\":602},\"Privacy\",\"https://www.techtarget.com/privacy-policy/\",{\"_531\":604,\"_535\":180,\"_225\":605,\"_170\":606},{\"_520\":605,\"_170\":606},\"Terms of Use\",\"https://www.informatech.com/terms-and-conditions/\",\". This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.\",\"isSponsorBarEnabled\",\"isPaidContent\",\"newRelicJs\",\"window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:[\\\"bam.eu01.nr-data.net\\\"]}};\\n\\n;NREUM.loader_config={accountID:\\\"3936348\\\",trustKey:\\\"3288925\\\",agentID:\\\"538600205\\\",licenseKey:\\\"NRJS-26ae6a3b09493bbcc87\\\",applicationID:\\\"538600205\\\"};\\n;NREUM.info={beacon:\\\"bam.eu01.nr-data.net\\\",errorBeacon:\\\"bam.eu01.nr-data.net\\\",licenseKey:\\\"NRJS-26ae6a3b09493bbcc87\\\",applicationID:\\\"538600205\\\",sa:1};\\n;/*! For license information please see nr-loader-spa-1.281.0.min.js.LICENSE.txt */\\n(()=\u003e{var e,t,r={8122:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{a:()=\u003ei});var n=r(944);function i(e,t){try{if(!e||\\\"object\\\"!=typeof e)return(0,n.R)(3);if(!t||\\\"object\\\"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])\u0026\u0026Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):\\\"object\\\"==typeof e[a]\u0026\u0026\\\"object\\\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Vp:()=\u003ec,fn:()=\u003es,x1:()=\u003eu});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey\u0026\u0026!!t.errorBeacon\u0026\u0026!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error(\\\"All info objects require an agent identifier!\\\");if(!a[e])throw new Error(\\\"Info for \\\".concat(e,\\\" was never set\\\"));return a[e]}function u(e,t){if(!e)throw new Error(\\\"All info objects require an agent identifier!\\\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.info=a[e])}},9417:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{D0:()=\u003ep,gD:()=\u003em,xN:()=\u003eg});var n=r(3333),i=r(993);const o=e=\u003e{if(!e||\\\"string\\\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var a=r(2614),s=r(944),c=r(384),u=r(8122);const d=\\\"[data-nr-mask]\\\",l=()=\u003e{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:\\\"*\\\",block_selector:\\\"[data-nr-block]\\\",mask_input_options:{color:!1,date:!1,\\\"datetime-local\\\":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:i.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:a.wk,inactiveMs:a.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){o(t)?e.mask_selector=\\\"\\\".concat(t,\\\",\\\").concat(d):\\\"\\\"===t||null===t?e.mask_selector=d:(0,s.R)(5,t)},get block_class(){return\\\"nr-block\\\"},get ignore_class(){return\\\"nr-ignore\\\"},get mask_text_class(){return\\\"nr-mask\\\"},get block_selector(){return e.block_selector},set block_selector(t){o(t)?e.block_selector+=\\\",\\\".concat(t):\\\"\\\"!==t\u0026\u0026(0,s.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t\u0026\u0026\\\"object\\\"==typeof t?e.mask_input_options={...t,password:!0}:(0,s.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:[\\\"id\\\",\\\"className\\\",\\\"tagName\\\",\\\"type\\\"]}}},f={},h=\\\"All configuration objects require an agent identifier!\\\";function p(e){if(!e)throw new Error(h);if(!f[e])throw new Error(\\\"Configuration for \\\".concat(e,\\\" was never set\\\"));return f[e]}function g(e,t){if(!e)throw new Error(h);f[e]=(0,u.a)(t,l());const r=(0,c.nY)(e);r\u0026\u0026(r.init=f[e])}function m(e,t){if(!e)throw new Error(h);var r=p(e);if(r){for(var n=t.split(\\\".\\\"),i=0;i\u003cn.length-1;i++)if(\\\"object\\\"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{a:()=\u003ec,o:()=\u003es});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error(\\\"All loader-config objects require an agent identifier!\\\");if(!a[e])throw new Error(\\\"LoaderConfig for \\\".concat(e,\\\" was never set\\\"));return a[e]}function c(e,t){if(!e)throw new Error(\\\"All loader-config objects require an agent identifier!\\\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.loader_config=a[e])}},3371:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{V:()=\u003ef,f:()=\u003el});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");if(!d[e])throw new Error(\\\"Runtime for \\\".concat(e,\\\" was never set\\\"));return d[e]}function f(e,t){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],\\\"harvestCount\\\")||Object.defineProperty(d[e],\\\"harvestCount\\\",{get:()=\u003e++s});const r=(0,i.nY)(e);r\u0026\u0026(r.runtime=d[e])}},9324:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{F3:()=\u003ei,Xs:()=\u003eo,Yq:()=\u003ea,xv:()=\u003en});const n=\\\"1.281.0\\\",i=\\\"PROD\\\",o=\\\"CDN\\\",a=\\\"^2.0.0-alpha.17\\\"},6154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A4:()=\u003es,OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003eh,bv:()=\u003eo,gm:()=\u003ea,lR:()=\u003ef,m:()=\u003eu,mw:()=\u003ec,sb:()=\u003el});var n=r(1863);const i=\\\"undefined\\\"!=typeof window\u0026\u0026!!window.document,o=\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),a=i?window:\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),s=\\\"complete\\\"===a?.document?.readyState,c=Boolean(\\\"hidden\\\"===a?.document?.visibilityState),u=\\\"\\\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d\u0026\u0026\\\"undefined\\\"==typeof SharedWorker,f=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\\\s](\\\\d+\\\\.\\\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003eo});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t\u003cn.length;t++){var r=n[t];if(\\\"*\\\"===r.hostname)return!1;if(s(r.hostname,e.hostname)\u0026\u0026c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;0===r.indexOf(\\\"http://\\\")?r=r.substring(7):0===r.indexOf(\\\"https://\\\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\\\"/\\\");let o,a;i\u003e0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a=\\\"\\\");let[s]=o.split(\\\":\\\");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length\u003et.length)\u0026\u0026t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf(\\\"/\\\")\u0026\u0026(e=e.substring(1)),0===t.indexOf(\\\"/\\\")\u0026\u0026(t=t.substring(1)),\\\"\\\"===e||e===t}},1687:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Ak:()=\u003ec,Ze:()=\u003el,x3:()=\u003eu});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e\u0026\u0026s[e]\u0026\u0026(s[e].get(t)\u0026\u0026s[e].delete(t),h(e,t,!1),s[e].size\u0026\u0026f(e))}function d(e){if(!e)throw new Error(\\\"agentIdentifier required\\\");s[e]||(s[e]=new Map)}function l(e=\\\"\\\",t=\\\"feature\\\",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=\u003et.staged))\u0026\u0026(t.sort(((e,t)=\u003ee[1].priority-t[1].priority)),t.forEach((([t])=\u003e{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted\u0026\u0026o.backlog\u0026\u0026s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=\u003e{Object.values(t||{}).forEach((t=\u003e{t[0]?.on\u0026\u0026t[0]?.context()instanceof a.y\u0026\u0026t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit(\\\"drain-\\\"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=\u003e{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{P:()=\u003ec,ee:()=\u003eu});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c=\\\"nr@context:\\\".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length\u0026\u0026(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var p=v()[s[e]];p\u0026\u0026p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||\\\"feature\\\",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=\u003e{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=\u003e{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t\u0026\u0026\\\"object\\\"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,\\\"aborted\\\",{get:()=\u003e{let e=f._aborted||!1;return e||(t\u0026\u0026(e=t.aborted),e)}}),f;function h(e){return e\u0026\u0026e instanceof a.y?e:e?(0,i.I)(e,c,(()=\u003enew a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,\\\"globalEE\\\"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\\\"handle\\\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{i:()=\u003eo});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o=\\\"feature\\\"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003eo,jT:()=\u003en,sp:()=\u003ei})},5607:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},9566:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{LA:()=\u003es,ZF:()=\u003ec,bz:()=\u003ea,el:()=\u003eu});var n=r(6154);const i=\\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),i.split(\\\"\\\").map((e=\u003e\\\"x\\\"===e?o(t,r++).toString(16):\\\"y\\\"===e?(3\u0026o()|8).toString(16):e)).join(\\\"\\\")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\\\"\\\")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ea,H3:()=\u003en,g:()=\u003eu,iL:()=\u003ec,tS:()=\u003es,uh:()=\u003ei,wk:()=\u003eo});const n=\\\"NRBA\\\",i=\\\"SESSION\\\",o=144e5,a=18e5,s={STARTED:\\\"session-started\\\",PAUSE:\\\"session-pause\\\",RESET:\\\"session-reset\\\",RESUME:\\\"session-resume\\\",UPDATE:\\\"session-update\\\"},c={SAME_TAB:\\\"same-tab\\\",CROSS_TAB:\\\"cross-tab\\\"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=\u003e{\\\"use strict\\\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},7485:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{D:()=\u003ei});var n=r(6154);function i(e){if(0===(e||\\\"\\\").indexOf(\\\"data:\\\"))return{protocol:\\\"data\\\"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(\\\":\\\")),sameOrigin:t.protocol===n.gm?.location?.protocol\u0026\u0026t.host===n.gm?.location?.host};return r.port\u0026\u0026\\\"\\\"!==r.port||(\\\"http:\\\"===t.protocol\u0026\u0026(r.port=\\\"80\\\"),\\\"https:\\\"===t.protocol\u0026\u0026(r.port=\\\"443\\\")),r.pathname\u0026\u0026\\\"\\\"!==r.pathname?r.pathname.startsWith(\\\"/\\\")||(r.pathname=\\\"/\\\".concat(r.pathname)):r.pathname=\\\"/\\\",r}catch(e){return{}}}},944:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t){\\\"function\\\"==typeof console.debug\u0026\u0026console.debug(\\\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\\\".concat(e),t)}r.d(t,{R:()=\u003en})},5284:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{t:()=\u003ec,B:()=\u003es});var n=r(7836),i=r(6154);const o=\\\"newrelic\\\";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026(a.has(t)||(r.emit(\\\"rumresp\\\",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{I:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=\u003e{n\u0026\u0026void 0===i\u0026\u0026(e.apply(this,r),i=setTimeout((()=\u003e{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=\u003e{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=\u003e{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=\u003ei,s:()=\u003en})},3304:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A:()=\u003eo});var n=r(7836);const i=()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\\\"object\\\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??\\\"\\\"}catch(e){try{n.ee.emit(\\\"internal-error\\\",[e])}catch(e){}return\\\"\\\"}}},5289:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{GG:()=\u003eo,sB:()=\u003ea});var n=r(3878);function i(){return\\\"undefined\\\"==typeof document||\\\"complete\\\"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)(\\\"load\\\",e,t)}function a(e){if(i())return e();(0,n.DD)(\\\"DOMContentLoaded\\\",e)}},384:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{NT:()=\u003eo,US:()=\u003ed,Zm:()=\u003ea,bQ:()=\u003ec,dV:()=\u003es,nY:()=\u003eu,pV:()=\u003el});var n=r(6154),i=r(1863);const o={beacon:\\\"bam.nr-data.net\\\",errorBeacon:\\\"bam.nr-data.net\\\"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ei});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)(\\\"visibilitychange\\\",(function(){if(t)return void(\\\"hidden\\\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u=\\\"addEventListener\\\",d=\\\"removeEventListener\\\",l=\\\"nr@wrapped:\\\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\\\"events\\\")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],\\\"-\\\",p)}function p(e,t){return e[1]}return\\\"getPrototypeOf\\\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,f),c\u0026\u0026h(c.prototype,f),h(a.gm,f)),t.on(u+\\\"-start\\\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\\\"function\\\"==typeof n||\\\"object\\\"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if(\\\"function\\\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\\\"fn-\\\",null,e.name||\\\"anonymous\\\"):n}));this.wrapped=e[1]=i}})),t.on(d+\\\"-start\\\",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;\\\"object\\\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Jt:()=\u003eo,YM:()=\u003ec});var n=r(7836),i=r(5607);const o=\\\"nr@original:\\\".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\\\"\\\");const a=\\\"-\\\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\\\"\\\"),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\\\"function\\\"==typeof n?n(o,a):n||{}}catch(t){u([t,\\\"\\\",[o,a,s],d],e)}i(r+\\\"start\\\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\\\"err\\\",[o,a,e],d,c),e}finally{i(r+\\\"end\\\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\\\"internal-error\\\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\\\"function\\\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},9300:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},3333:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$v:()=\u003eu,TZ:()=\u003en,Zp:()=\u003ei,kd:()=\u003ec,mq:()=\u003es,nf:()=\u003ea,qN:()=\u003eo});const n=r(860).K7.genericEvents,i=[\\\"auxclick\\\",\\\"click\\\",\\\"copy\\\",\\\"keydown\\\",\\\"paste\\\",\\\"scrollend\\\"],o=[\\\"focus\\\",\\\"blur\\\"],a=4,s=1e3,c=[\\\"PageAction\\\",\\\"UserAction\\\",\\\"BrowserPerformance\\\"],u={MARKS:\\\"experimental.marks\\\",MEASURES:\\\"experimental.measures\\\",RESOURCES:\\\"experimental.resources\\\"}},6774:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},993:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{ET:()=\u003eo,TZ:()=\u003ea,p_:()=\u003ei});var n=r(860);const i={ERROR:\\\"ERROR\\\",WARN:\\\"WARN\\\",INFO:\\\"INFO\\\",DEBUG:\\\"DEBUG\\\",TRACE:\\\"TRACE\\\"},o=\\\"log\\\",a=n.K7.logging},3785:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{R:()=\u003ec,b:()=\u003eu});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,[\\\"API/logging/\\\".concat(c.toLowerCase(),\\\"/called\\\")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return\\\"string\\\"==typeof e\u0026\u0026Object.values(s.p_).some((t=\u003et===e.toUpperCase().trim()))}},3969:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{TZ:()=\u003en,XG:()=\u003es,rs:()=\u003ei,xV:()=\u003ea,z_:()=\u003eo});const n=r(860).K7.metrics,i=\\\"sm\\\",o=\\\"cm\\\",a=\\\"storeSupportabilityMetrics\\\",s=\\\"storeEventMetrics\\\"},6630:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},782:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ed,G4:()=\u003eo,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003ea,_s:()=\u003es,bc:()=\u003eu,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:\\\"recordReplay\\\",PAUSE:\\\"pauseReplay\\\",REPLAY_RUNNING:\\\"replayRunning\\\",ERROR_DURING_REPLAY:\\\"errorDuringReplay\\\"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:\\\"Session was reset\\\",sm:\\\"Reset\\\"},IMPORT:{message:\\\"Recorder failed to import\\\",sm:\\\"Import\\\"},TOO_MANY:{message:\\\"429: Too Many Requests\\\",sm:\\\"Too-Many\\\"},TOO_BIG:{message:\\\"Payload was too large\\\",sm:\\\"Too-Big\\\"},CROSS_TAB:{message:\\\"Session Entity was set to OFF on another tab\\\",sm:\\\"Cross-Tab\\\"},ENTITLEMENTS:{message:\\\"Session Replay is not allowed and will not be started\\\",sm:\\\"Entitlement\\\"}},d=5e3,l={API:\\\"api\\\"}},5270:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Aw:()=\u003ec,CT:()=\u003eu,SR:()=\u003es});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,o.V)(e)\u0026\u0026!0===(0,i.gD)(e,\\\"session_trace.enabled\\\")}function c(e){return!0===(0,i.gD)(e,\\\"session_replay.preload\\\")\u0026\u0026s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{He:()=\u003ei,Kp:()=\u003es,Lc:()=\u003eu,Rz:()=\u003ed,TZ:()=\u003en,bD:()=\u003eo,d3:()=\u003ea,jx:()=\u003el,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\\\"bstResource\\\",o=\\\"resource\\\",a=\\\"-start\\\",s=\\\"-end\\\",c=\\\"fn\\\"+a,u=\\\"fn\\\"+s,d=\\\"pushState\\\",l=1e3},3962:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AM:()=\u003eo,O2:()=\u003ec,Qu:()=\u003eu,TZ:()=\u003es,ih:()=\u003ed,pP:()=\u003ea,tC:()=\u003ei});var n=r(860);const i=[\\\"click\\\",\\\"keydown\\\",\\\"submit\\\",\\\"popstate\\\"],o=\\\"api\\\",a=\\\"initialPageLoad\\\",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:\\\"\\\",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:\\\"in progress\\\",FIN:\\\"finished\\\",CAN:\\\"cancelled\\\"}},7378:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$p:()=\u003ex,BR:()=\u003eb,Kp:()=\u003eR,L3:()=\u003ey,Lc:()=\u003ec,NC:()=\u003eo,SG:()=\u003ed,TZ:()=\u003ei,U6:()=\u003ep,UT:()=\u003em,d3:()=\u003ew,dT:()=\u003ef,e5:()=\u003eT,gx:()=\u003ev,l9:()=\u003el,oW:()=\u003eh,op:()=\u003eg,rw:()=\u003eu,tH:()=\u003eA,uP:()=\u003es,wW:()=\u003eE,xq:()=\u003ea});var n=r(384);const i=r(860).K7.spa,o=[\\\"click\\\",\\\"submit\\\",\\\"keypress\\\",\\\"keydown\\\",\\\"keyup\\\",\\\"change\\\"],a=999,s=\\\"fn-start\\\",c=\\\"fn-end\\\",u=\\\"cb-start\\\",d=\\\"api-ixn-\\\",l=\\\"remaining\\\",f=\\\"interaction\\\",h=\\\"spaNode\\\",p=\\\"jsonpNode\\\",g=\\\"fetch-start\\\",m=\\\"fetch-done\\\",v=\\\"fetch-body-\\\",b=\\\"jsonp-end\\\",y=(0,n.dV)().o.ST,w=\\\"-start\\\",R=\\\"-end\\\",x=\\\"-body\\\",E=\\\"cb\\\"+R,T=\\\"jsTime\\\",A=\\\"fetch\\\"},4234:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003eo});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{V:()=\u003eo});var n=r(9417),i=r(6154);const o=e=\u003ei.RI\u0026\u0026!0===(0,n.gD)(e,\\\"privacy.cookies_enabled\\\")},425:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{j:()=\u003ej});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\",\\\"recordCustomEvent\\\",\\\"addPageAction\\\",\\\"setCurrentRouteName\\\",\\\"setPageViewName\\\",\\\"setCustomAttribute\\\",\\\"interaction\\\",\\\"noticeError\\\",\\\"setUserId\\\",\\\"setApplicationVersion\\\",\\\"start\\\",p.G4.RECORD,p.G4.PAUSE,\\\"log\\\",\\\"wrapLogger\\\"],m=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);const E=new Map;function T(e,t,r,n){if(\\\"object\\\"!=typeof t||!t||\\\"string\\\"!=typeof r||!r||\\\"function\\\"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get(\\\"logger\\\")}(e),o=(0,x.YM)(i),a=new R.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return E.set(c,a),o.inPlace(t,[r],\\\"wrap-logger-\\\",(()=\u003eE.get(c))),i}function A(){const e=(0,h.pV)();g.forEach((t=\u003e{e[t]=(...r)=\u003efunction(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e\u0026\u0026e.api?e.exposed\u0026\u0026e.api[t]\u0026\u0026n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length\u003e1?n:n[0]}(t,...r)}))}const S={};var N=r(9417),_=r(5603),O=r(5284);const I=e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e};let P=!1;function j(e,t={},g,R){let{init:x,info:E,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();E||(x=L.init,E=L.info,j=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,_.a)(e.agentIdentifier,j||{}),E.jsAttributes??={},d.bv\u0026\u0026(E.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,E);const H=(0,N.D0)(e.agentIdentifier),M=[E.beacon,E.errorBeacon];P||(H.proxy.assets\u0026\u0026(I(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon\u0026\u0026M.push(H.proxy.beacon),A(),(0,h.US)(\\\"activatedFeatures\\\",O.B),e.runSoftNavOverSpa\u0026\u0026=!0===H.soft_navigations.enabled\u0026\u0026H.feature_flags.includes(\\\"soft_nav\\\")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api\u0026\u0026(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,\\\"api\\\");const g={};var R=s.ee.get(e),x=R.get(\\\"tracer\\\");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=\u003e{S[e]=t}));var E=\\\"api-\\\",A=E+\\\"ixn-\\\";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(E,n,!0,o||null===r?\\\"session\\\":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,[\\\"API/log/called\\\"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=\u003e{(0,a.p)(f.xV,[\\\"API/wrapLogger/called\\\"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=\u003e{g[e]=I(E,e,!0,\\\"api\\\")})),g.addPageAction=I(E,\\\"addPageAction\\\",!0,n.K7.genericEvents),g.recordCustomEvent=I(E,\\\"recordCustomEvent\\\",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if(\\\"string\\\"==typeof t)return\\\"/\\\"!==t.charAt(0)\u0026\u0026(t=\\\"/\\\"+t),(0,o.f)(e).customTransaction=(r||\\\"http://custom.transaction\\\")+t,I(E,\\\"setPageViewName\\\",!0)()},g.setCustomAttribute=function(e,t,r=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof t)||null===t)return N(e,t,\\\"setCustomAttribute\\\",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if(\\\"string\\\"==typeof e||null===e)return N(\\\"enduser.id\\\",e,\\\"setUserId\\\",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if(\\\"string\\\"==typeof e||null===e)return N(\\\"application.version\\\",e,\\\"setApplicationVersion\\\",!1);(0,l.R)(42,typeof e)},g.start=()=\u003e{try{(0,a.p)(f.xV,[\\\"API/start/called\\\"],void 0,n.K7.metrics,R),R.emit(\\\"manual-start-all\\\")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,[\\\"API/recordReplay/called\\\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,[\\\"API/pauseReplay/called\\\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new _).get(\\\"object\\\"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o=\\\"function\\\"==typeof t;return(0,a.p)(f.xV,[\\\"API/createTracer/called\\\"],void 0,n.K7.metrics,R),h||(0,a.p)(A+\\\"tracer\\\",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?\\\"\\\":\\\"no-\\\")+\\\"fn-start\\\",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t=\\\"string\\\"==typeof e?new Error(e):e;throw x.emit(\\\"fn-err\\\",[arguments,this,t],r),t}finally{x.emit(\\\"fn-end\\\",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,[\\\"API/\\\"+t+\\\"/called\\\"],void 0,n.K7.metrics,R),i\u0026\u0026(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,R),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=\u003e{t(e),(0,c.Ze)(e,\\\"api\\\")})).catch((e=\u003e{(0,l.R)(27,e),R.abort()}))}return[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach((e=\u003e{O[e]=I(A,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(A,\\\"routeName\\\",void 0,n.K7.softNav):I(E,\\\"routeName\\\",!0,n.K7.spa),g.noticeError=function(t,r){\\\"string\\\"==typeof t\u0026\u0026(t=new Error(t)),(0,a.p)(f.xV,[\\\"API/noticeError/called\\\"],void 0,n.K7.metrics,R),(0,a.p)(\\\"err\\\",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=\u003eP()),!0):P(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed\u0026\u0026(e.exposed=k),P=!0}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\\\"\\\"})()},860:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$J:()=\u003eu,K7:()=\u003es,P3:()=\u003ec,XX:()=\u003ei,qY:()=\u003en,v4:()=\u003ea});const n=\\\"events\\\",i=\\\"jserrors\\\",o=\\\"browser/blobs\\\",a=\\\"rum\\\",s={ajax:\\\"ajax\\\",genericEvents:\\\"generic_events\\\",jserrors:i,logging:\\\"logging\\\",metrics:\\\"metrics\\\",pageAction:\\\"page_action\\\",pageViewEvent:\\\"page_view_event\\\",pageViewTiming:\\\"page_view_timing\\\",sessionReplay:\\\"session_replay\\\",sessionTrace:\\\"session_trace\\\",softNav:\\\"soft_navigations\\\",spa:\\\"spa\\\"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:\\\"browser/logs\\\",[s.genericEvents]:\\\"ins\\\"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({212:\\\"nr-spa-compressor\\\",249:\\\"nr-spa-recorder\\\",478:\\\"nr-spa\\\"}[e]+\\\"-1.281.0.min.js\\\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\\\"NRBA-1.281.0.PROD:\\\",i.l=(r,n,o,a)=\u003e{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName(\\\"script\\\"),d=0;d\u003cu.length;d++){var l=u[d];if(l.getAttribute(\\\"src\\\")==r||l.getAttribute(\\\"data-webpack\\\")==t+o){s=l;break}}if(!s){c=!0;var f={478:\\\"sha512-jmvAlmjCn64ans8tLueqHRlBI/iWekylsDWb94A77CG0ukSriVDvgD3dThx+XjUSBBBMYhFn8B1a18fViyBPEQ==\\\",249:\\\"sha512-ICY/ZrcytM/86t5KFy+9OAWVYmNNJy10EBtxoSUGjQWuZx53p/eLo+L8HfrGjvHuRHRnutqLTGSnvNttffJkaA==\\\",212:\\\"sha512-pQSn+X/RfBOvx/49HvlghaiXMLhhDQXTi13n1N2XMpDquWJgs9U0pbqE3RbAnYC9nsdaTu/RVGvneEPv1fpCxA==\\\"};(s=document.createElement(\\\"script\\\")).charset=\\\"utf-8\\\",s.timeout=120,i.nc\u0026\u0026s.setAttribute(\\\"nonce\\\",i.nc),s.setAttribute(\\\"data-webpack\\\",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+\\\"/\\\")\u0026\u0026(s.crossOrigin=\\\"anonymous\\\"),f[a]\u0026\u0026(s.integrity=f[a])}e[r]=[n];var h=(t,n)=\u003e{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode\u0026\u0026s.parentNode.removeChild(s),i\u0026\u0026i.forEach((e=\u003ee(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\\\"timeout\\\",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c\u0026\u0026document.head.appendChild(s)}},i.r=e=\u003e{\\\"undefined\\\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(e,\\\"__esModule\\\",{value:!0})},i.p=\\\"https://js-agent.newrelic.com/\\\",(()=\u003e{var e={38:0,788:0};i.f.j=(t,r)=\u003e{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=\u003en=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var o=r\u0026\u0026(\\\"load\\\"===r.type?\\\"missing\\\":r.type),a=r\u0026\u0026r.target\u0026\u0026r.target.src;s.message=\\\"Loading chunk \\\"+t+\\\" failed.\\\\n(\\\"+o+\\\": \\\"+a+\\\")\\\",s.name=\\\"ChunkLoadError\\\",s.type=o,s.request=a,n[1](s)}}),\\\"chunk-\\\"+t,t)}};var t=(t,r)=\u003e{var n,o,[a,s,c]=r,u=0;if(a.some((t=\u003e0!==e[t]))){for(n in s)i.o(s,n)\u0026\u0026(i.m[n]=s[n]);if(c)c(i)}for(t\u0026\u0026t(r);u\u003ca.length;u++)o=a[u],i.o(e,o)\u0026\u0026e[o]\u0026\u0026e[o][0](),e[o]=0},r=self[\\\"webpackChunk:NRBA-1.281.0.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.281.0.PROD\\\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\\\"use strict\\\";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(\\\"function\\\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e(\\\"addPageAction\\\",e,t)}recordCustomEvent(e,t){return this.#e(\\\"recordCustomEvent\\\",e,t)}setPageViewName(e,t){return this.#e(\\\"setPageViewName\\\",e,t)}setCustomAttribute(e,t,r){return this.#e(\\\"setCustomAttribute\\\",e,t,r)}noticeError(e,t){return this.#e(\\\"noticeError\\\",e,t)}setUserId(e){return this.#e(\\\"setUserId\\\",e)}setApplicationVersion(e){return this.#e(\\\"setApplicationVersion\\\",e)}setErrorHandler(e){return this.#e(\\\"setErrorHandler\\\",e)}addRelease(e,t){return this.#e(\\\"addRelease\\\",e,t)}log(e,t){return this.#e(\\\"log\\\",e,t)}}class o extends n{#e(t,...r){if(\\\"function\\\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e(\\\"start\\\")}finished(e){return this.#e(\\\"finished\\\",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e(\\\"addToTrace\\\",e)}setCurrentRouteName(e){return this.#e(\\\"setCurrentRouteName\\\",e)}interaction(){return this.#e(\\\"interaction\\\")}wrapLogger(e,t,r){return this.#e(\\\"wrapLogger\\\",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=\u003e{t[r]=function(e,t){return!0===(0,s.gD)(t,\\\"\\\".concat(e,\\\".enabled\\\"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart\u0026\u0026(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on(\\\"manual-start-all\\\",(0,v.J)((()=\u003e{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=\u003e{n=e}));const o=async()=\u003e{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit(\\\"internal-error\\\",[t]),this.featureName===a.K7.sessionReplay\u0026\u0026this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,\\\"aggregate\\\");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee\u0026\u0026this.ee.abort()}};p.RI?(0,h.GG)((()=\u003eo()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)\u0026\u0026!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),T=i(3878),A=i(782),S=i(1863);class N extends b{static featureName=A.T;constructor(e,t=!0){super(e,A.T,t),p.RI\u0026\u0026((0,E.u)((()=\u003e(0,x.p)(\\\"docHidden\\\",[(0,S.t)()],void 0,A.T,this.ee)),!0),(0,T.sp)(\\\"pagehide\\\",(()=\u003e(0,x.p)(\\\"winPagehide\\\",[(0,S.t)()],void 0,A.T,this.ee))),this.importAggregator(e))}}var _=i(3969);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name=\\\"UncaughtError\\\",this.message=\\\"string\\\"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t=\\\"Unhandled Promise Rejection\\\";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+\\\": \\\"+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+\\\": \\\"+r?.message,r}function L(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\\\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error\u0026\u0026!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\\\"internal-error\\\",((e,t)=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"ierr\\\",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.#r=e})),p.gm.addEventListener(\\\"unhandledrejection\\\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener(\\\"error\\\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=i(8990);let K=1;const U=\\\"nr@id\\\";function V(e){const t=typeof e;return!e||\\\"object\\\"!==t\u0026\u0026\\\"function\\\"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if(\\\"string\\\"==typeof e\u0026\u0026e.length)return e.length;if(\\\"object\\\"==typeof e){if(\\\"undefined\\\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\\\"undefined\\\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\\\"undefined\\\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=[\\\"open\\\",\\\"send\\\"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get(\\\"xhr\\\")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u=\\\"readystatechange\\\",d=[\\\"onload\\\",\\\"onerror\\\",\\\"onabort\\\",\\\"onloadstart\\\",\\\"onloadend\\\",\\\"onprogress\\\",\\\"ontimeout\\\"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit(\\\"new-xhr\\\",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!s.resolved\u0026\u0026(s.resolved=!0,n.emit(\\\"xhr-resolved\\\",[],e)),i.inPlace(e,d,\\\"fn-\\\",y)}),(0,T.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit(\\\"internal-error\\\",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,[\\\"onreadystatechange\\\"],\\\"fn-\\\",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,\\\"-xhr-\\\",y),n.on(\\\"send-xhr-start\\\",(function(e,t){h(e,t),function(e){l.push(e),a\u0026\u0026(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on(\\\"open-xhr-start\\\",h),a){var g=s\u0026\u0026s.resolve();if(!c\u0026\u0026!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on(\\\"fn-end\\\",(function(e){e[0]\u0026\u0026e[0].type===u||b()}));function b(){for(var e=0;e\u003cl.length;e++)h(0,l[e]);l.length\u0026\u0026(l=[])}function y(e,t){return t}return n}var Y=\\\"fetch-\\\",X=Y+\\\"body-\\\",J=[\\\"arrayBuffer\\\",\\\"blob\\\",\\\"json\\\",\\\"text\\\",\\\"formData\\\"],Q=p.gm.Request,ee=p.gm.Response,te=\\\"prototype\\\";const re={};function ne(e){const t=function(e){return(e||B.ee).get(\\\"fetch\\\")}(e);if(!(Q\u0026\u0026ee\u0026\u0026p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];\\\"function\\\"==typeof i\u0026\u0026(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+\\\"before-start\\\",[r],o),o[B.P]\u0026\u0026o[B.P].dt\u0026\u0026(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+\\\"start\\\",[r,e],a),a.then((function(e){return t.emit(n+\\\"end\\\",[null,e],a),e}),(function(e){throw t.emit(n+\\\"end\\\",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=\u003e{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,\\\"fetch\\\",Y),t.on(Y+\\\"end\\\",(function(e,r){var n=this;if(r){var i=r.headers.get(\\\"content-length\\\");null!==i\u0026\u0026(n.rxSize=i),t.emit(Y+\\\"done\\\",[null,r],n)}else t.emit(Y+\\\"done\\\",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||\\\"\\\").toString()||null,i=(t.agentID||\\\"\\\").toString()||null,o=(t.trustKey||\\\"\\\").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return\\\"00-\\\"+t+\\\"-\\\"+e+\\\"-01\\\"}generateTraceContextStateHeader(e,t,r,n,i){return i+\\\"@nr=0-1-\\\"+r+\\\"-\\\"+n+\\\"-\\\"+e+\\\"----\\\"+t}generateTraceHeader(e,t,r,n,i,o){if(!(\\\"function\\\"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:\\\"Browser\\\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\")\u0026\u0026(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname\u0026\u0026e.protocol===i.protocol\u0026\u0026e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=[\\\"load\\\",\\\"error\\\",\\\"abort\\\",\\\"timeout\\\"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=\u003e(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\\\"xhr\\\",fetch:\\\"fetch\\\",beacon:\\\"beacon\\\"};p.gm?.performance?.getEntriesByType(\\\"resource\\\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler(\\\"xhr\\\",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\\\"load\\\",(function(r){E(t,e)}),(0,T.jT)(!1)),p.lR||e.addEventListener(\\\"progress\\\",(function(e){t.lastSize=e.loaded}),(0,T.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\\\"X-NewRelic-ID\\\",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader\u0026\u0026(r.setRequestHeader(\\\"newrelic\\\",i.newrelicHeader),o=!0),i.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\\\"traceparent\\\",i.traceContextParentHeader),i.traceContextStateHeader\u0026\u0026r.setRequestHeader(\\\"tracestate\\\",i.traceContextStateHeader),o=!0),o\u0026\u0026(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n\u0026\u0026i){var a=G(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{\\\"abort\\\"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),(\\\"load\\\"!==e.type||o.called===o.totalCbs\u0026\u0026(o.onloadCalled||\\\"function\\\"!=typeof r.onload)\u0026\u0026\\\"function\\\"==typeof o.end)\u0026\u0026o.end(r)}catch(e){try{t.emit(\\\"internal-error\\\",[e])}catch(e){}}};for(var s=0;s\u003cde;s++)r.addEventListener(ue[s],this.listener,(0,T.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled\u0026\u0026\\\"function\\\"==typeof r.onload||\\\"function\\\"!=typeof this.end||this.end(r)}function d(e,t){var r=\\\"\\\"+V(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=\\\"\\\"+V(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026t.emit(\\\"xhr-load-added\\\",[e[1],e[2]],r)}function g(e,r){r instanceof fe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026t.emit(\\\"xhr-load-removed\\\",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe\u0026\u0026(\\\"onload\\\"===r\u0026\u0026(this.onload=!0),(\\\"load\\\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\\\"xhr-cb-time\\\",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if(\\\"string\\\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026p.RI\u0026\u0026(t=\\\"\\\"+p.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:p.gm?.URL\u0026\u0026e[0]\u0026\u0026e[0]instanceof URL?t=e[0].href:\\\"function\\\"==typeof e[0].toString\u0026\u0026(t=e[0].toString()),\\\"string\\\"==typeof t\u0026\u00260!==t.length){t\u0026\u0026(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i\u0026\u0026(i.newrelicHeader||i.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)s(e[0].headers,i)\u0026\u0026(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)\u0026\u0026(this.dt=i),e.length\u003e1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader\u0026\u0026(e.set(\\\"newrelic\\\",t.newrelicHeader),r=!0),t.traceContextParentHeader\u0026\u0026(e.set(\\\"traceparent\\\",t.traceContextParentHeader),t.traceContextStateHeader\u0026\u0026e.set(\\\"tracestate\\\",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length\u003e=1\u0026\u0026(this.target=e[0]),e.length\u003e=2\u0026\u0026(this.opts=e[1]);var r,n=this.opts||{},i=this.target;\\\"string\\\"==typeof i?r=i:\\\"object\\\"==typeof i\u0026\u0026i instanceof le?r=i.url:p.gm?.URL\u0026\u0026\\\"object\\\"==typeof i\u0026\u0026i instanceof URL\u0026\u0026(r=i.href),pe(this,r);var o=(\\\"\\\"+(i\u0026\u0026i instanceof le\u0026\u0026i.method||n.method||\\\"GET\\\")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,\\\"string\\\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r(\\\"xhr\\\",[this.params,i,this.startTime,this.endTime,\\\"fetch\\\"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t\u003cde;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):E(this,e),n.cbTime=this.cbTime,r(\\\"xhr\\\",[t,n,this.startTime,this.endTime,\\\"xhr\\\"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return\\\"json\\\"===r\u0026\u0026null!==t?t:\\\"arraybuffer\\\"===r||\\\"blob\\\"===r||\\\"json\\\"===r?G(e.response):\\\"text\\\"===r||\\\"\\\"===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n\u0026\u0026(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader(\\\"X-NewRelic-App-Data\\\");i\u0026\u0026((0,x.p)(_.rs,[\\\"Ajax/CrossApplicationTracing/Header/Seen\\\"],void 0,a.K7.metrics,t),e.params.cat=i.split(\\\", \\\").pop())}e.loadCaptureCalled=!0}t.on(\\\"new-xhr\\\",i),t.on(\\\"open-xhr-start\\\",o),t.on(\\\"open-xhr-end\\\",s),t.on(\\\"send-xhr-start\\\",c),t.on(\\\"xhr-cb-time\\\",u),t.on(\\\"xhr-load-added\\\",d),t.on(\\\"xhr-load-removed\\\",l),t.on(\\\"xhr-resolved\\\",f),t.on(\\\"addEventListener-end\\\",h),t.on(\\\"removeEventListener-end\\\",g),t.on(\\\"fn-end\\\",v),t.on(\\\"fetch-before-start\\\",b),t.on(\\\"fetch-start\\\",y),t.on(\\\"fn-start\\\",m),t.on(\\\"fetch-done\\\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+\\\":\\\"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=[\\\"pushState\\\",\\\"replaceState\\\"];function ve(e){const t=function(e){return(e||B.ee).get(\\\"history\\\")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,\\\"-\\\")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Te,uP:Ae,Rz:Se}=be;class Ne extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ae,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)(\\\"bst\\\",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)(\\\"bstHist\\\",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem(\\\"\\\".concat(_e.H3,\\\"_\\\").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)\u0026\u0026this.ee.on(t.G4.RECORD,(()=\u003ethis.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on(\\\"err\\\",(e=\u003e{this.replayRunning\u0026\u0026(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.replayRunning=e}))}#s(e){return e\u0026\u0026(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL\u0026\u0026this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder\u0026\u0026this.recorder.parent.mode!==_e.g.FULL\u0026\u0026(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=\u003e{(0,T.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\\\"newURL\\\",[(0,S.t)(),\\\"\\\"+window.location],void 0,this.featureName,this.ee);r.on(\\\"pushState-end\\\",n),r.on(\\\"replaceState-end\\\",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,T.sp)(\\\"popstate\\\",(e=\u003e(0,x.p)(\\\"newURL\\\",[e.timeStamp,\\\"\\\"+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=\u003e{i||(i=!0,requestAnimationFrame((()=\u003e{(0,x.p)(\\\"newDom\\\",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=\u003e{(0,x.p)(\\\"newUIEvent\\\",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=[\\\"appendChild\\\",\\\"insertBefore\\\",\\\"replaceChild\\\"];function Le(e){const t=function(e){return(e||B.ee).get(\\\"jsonp\\\")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,i=/(.*)\\\\.([^.]+)/,o=/^(\\\\w+)(\\\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,\\\"dom-\\\"),t.on(\\\"dom-start\\\",(function(e){!function(e){if(!e||\\\"string\\\"!=typeof e.nodeName||\\\"script\\\"!==e.nodeName.toLowerCase())return;if(\\\"function\\\"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if(\\\"function\\\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\\\"jsonp-end\\\",[],d),e.removeEventListener(\\\"load\\\",l,(0,T.jT)(!1)),e.removeEventListener(\\\"error\\\",f,(0,T.jT)(!1))}function f(){t.emit(\\\"jsonp-error\\\",[],d),t.emit(\\\"jsonp-end\\\",[],d),e.removeEventListener(\\\"load\\\",l,(0,T.jT)(!1)),e.removeEventListener(\\\"error\\\",f,(0,T.jT)(!1))}r.inPlace(u.parent,[u.key],\\\"cb-\\\",d),e.addEventListener(\\\"load\\\",l,(0,T.jT)(!1)),e.addEventListener(\\\"error\\\",f,(0,T.jT)(!1)),t.emit(\\\"new-jsonp\\\",[e.src],d)}(e[0])})),t}const He={};function Me(e){const t=function(e){return(e||B.ee).get(\\\"promise\\\")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i\u0026\u0026function(){function e(r){var o=t.context(),a=n(r,\\\"executor-\\\",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,\\\"name\\\",{value:\\\"Promise\\\"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),[\\\"all\\\",\\\"race\\\"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\\\"all\\\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\\\"propagate\\\",[null,!i],o,!1,!1),i=i||!e}}}})),[\\\"resolve\\\",\\\"reject\\\"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\\\"propagate\\\",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],\\\"cb-\\\",a,null,!1),e[1]=n(e[1],\\\"cb-\\\",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit(\\\"propagate\\\",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on(\\\"executor-start\\\",(function(e){e[0]=n(e[0],\\\"resolve-\\\",this,null,!1),e[1]=n(e[1],\\\"resolve-\\\",this,null,!1)})),t.on(\\\"executor-err\\\",(function(e,t,r){e[1](r)})),t.on(\\\"cb-end\\\",(function(e,r,n){t.emit(\\\"propagate\\\",[n,!0],this.nextPromise,!1,!1)})),t.on(\\\"propagate\\\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const De={},Ke=\\\"setTimeout\\\",Ue=\\\"setInterval\\\",Ve=\\\"clearTimeout\\\",Ge=\\\"-start\\\",Fe=[Ke,\\\"setImmediate\\\",Ue,Ve,\\\"clearImmediate\\\"];function Be(e){const t=function(e){return(e||B.ee).get(\\\"timer\\\")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(2,3),Ue+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(3),Ve+\\\"-\\\"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],\\\"fn-\\\",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\\\"fn-\\\",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get(\\\"mutation\\\")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n\u0026\u0026(window.MutationObserver=function(e){return this instanceof n?new n(r(e,\\\"fn-\\\")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:$e,e5:Je,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\\\"tracer\\\"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get(\\\"events\\\"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit(\\\"newURL\\\",[\\\"\\\"+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,S.t)();this[Je]=~~this[Je]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on($e,m),o.on($e,m),this.ee.on(\\\"fn-err\\\",((...t)=\u003e{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)(\\\"function-err\\\",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,\\\"xhr-resolved\\\"],this.featureName),u.buffer([et],this.featureName),s.buffer([\\\"setTimeout\\\"+Ye,\\\"clearTimeout\\\"+Ze,et],this.featureName),c.buffer([et,\\\"new-xhr\\\",\\\"send-xhr\\\"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+\\\"-done\\\",Qe+Xe+Ze,Qe+Xe+Ye],this.featureName),l.buffer([\\\"newURL\\\"],this.featureName),f.buffer([et],this.featureName),a.buffer([\\\"propagate\\\",tt,$e,\\\"executor-err\\\",\\\"resolve\\\"+Ze],this.featureName),i.buffer([et,\\\"no-\\\"+et],this.featureName),o.buffer([\\\"new-jsonp\\\",\\\"cb-start\\\",\\\"jsonp-error\\\",\\\"jsonp-end\\\"],this.featureName),v(d,Qe+Ze),v(d,Qe+\\\"-done\\\"),v(o,\\\"new-jsonp\\\"),v(o,\\\"jsonp-end\\\"),v(o,\\\"cb-start\\\"),l.on(\\\"pushState-end\\\",h),l.on(\\\"replaceState-end\\\",h),window.addEventListener(\\\"hashchange\\\",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\\\"load\\\",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\\\"popstate\\\",(function(){h(0,n\u003e1)}),(0,T.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI\u0026\u0026(e.init.user_actions.enabled\u0026\u0026(it.Zp.forEach((e=\u003e(0,T.sp)(e,(e=\u003e(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=\u003e{const t=(0,v.s)((e=\u003e{(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,T.sp)(e,t)}))),e.init.performance.resources.enabled\u0026\u0026p.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\"))){new PerformanceObserver((e=\u003e{e.getEntries().forEach((e=\u003e{(0,x.p)(\\\"browserPerformance.resource\\\",[e],void 0,this.featureName,this.ee)}))})).observe({type:\\\"resource\\\",buffered:!0})}r.some((e=\u003ee))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on(\\\"wrap-logger-end\\\",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=\u003ee.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||\\\"agent\\\"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=\u003ea.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=\u003e{if(!t[r.featureName]\u0026\u0026r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=\u003e!(e in this.features)));n.length\u003e0\u0026\u0026(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,Oe,O,M,ot,ct,Pe,nt],loaderType:\\\"spa\\\"})})()})();\\n\",\"google\",\"testAutomationFlags\",{\"_615\":140,\"_616\":140,\"_617\":140,\"_618\":140,\"_619\":140,\"_620\":140,\"_621\":140,\"_622\":140,\"_623\":140,\"_146\":140,\"_624\":140,\"_625\":272,\"_626\":272},\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"configState\",{\"_165\":166,\"_163\":164,\"_629\":8,\"_630\":-7,\"_631\":140,\"_531\":632,\"_636\":637,\"_639\":640,\"_644\":645},\"uiBrand\",\"colors\",\"isMarketsDivision\",{\"_7\":633,\"_634\":635},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltba62518415cda0e2/652fe6ddbc479f8697ef691f/default-cubic.png\",\"contributor\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd407cb100c7b5f81/650f1838250230f99e1ddc78/Game_Developer_G_Logo_RGB.jpg\",\"media\",{\"_638\":272},\"brightcoveAccountId\",\"newsletterSignupPromo\",{\"_641\":642,\"_643\":-7},\"unbounceURL\",\"https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi\",\"elnConfig\",\"proxyConfigs\",{\"_646\":140,\"_647\":272},\"proxyEnabled\",\"proxyRootPath\",\"brandConfig\",{\"_13\":14,\"_650\":14,\"_651\":10,\"_15\":16,\"_652\":653,\"_654\":655,\"_638\":272,\"_149\":663,\"_154\":155,\"_161\":669,\"_670\":671,\"_676\":677,\"_681\":682,\"_582\":607,\"_686\":687,\"_722\":723},\"siteFullName\",\"siteUrl\",\"authentication\",{},\"unbounce\",{\"_656\":657,\"_658\":659,\"_660\":661,\"_174\":662},\"local\",{\"_170\":642},\"preview\",{\"_170\":642},\"staging\",{\"_170\":642},{\"_170\":642},{\"_656\":664,\"_658\":666,\"_660\":667,\"_174\":668},{\"_151\":665},\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b-test\",{\"_151\":272},{\"_151\":152},{\"_151\":152},{\"_7\":8,\"_163\":164,\"_165\":166},\"socialUrls\",[672,673,675],{\"_201\":208,\"_170\":209},{\"_201\":211,\"_170\":674},\"https://www.facebook.com/GameDeveloperOfficial/\",{\"_201\":205,\"_170\":206},\"articleSocialShareToggle\",{\"_678\":180,\"_679\":180,\"_680\":180},\"print\",\"email\",\"reddit\",\"newsletterSignupPromoContent\",{\"_225\":683,\"_684\":685},\"Newsletter sign up title\",\"message\",\"Newsletter sign up message\",\"iirisRecommendation\",{\"_688\":689,\"_690\":691,\"_692\":693,\"_694\":695,\"_696\":697,\"_698\":699,\"_700\":272,\"_701\":702,\"_703\":704,\"_705\":706,\"_707\":708,\"_709\":710,\"_711\":386,\"_712\":272,\"_713\":714,\"_715\":710,\"_716\":695,\"_717\":699,\"_718\":719,\"_720\":721},\"id\",\"widget-1697807002233\",\"division\",\"it\",\"brandFamily\",\"entertainment\",\"entityTagBackground\",\"#000000\",\"dateFormat\",\"Mmm DD, YYYY\",\"showBy\",\"yes\",\"showTime\",\"borderRadius\",\"0\",\"imageWidth\",\"324\",\"imageHeight\",\"182\",\"dateTimeBgcolor\",\"#ff0000\",\"dateTimeFontColor\",\"#ffffff\",\"imagePosition\",\"dropShadow\",\"dateTimeFontsize\",\"12\",\"entityTagBorderColor\",\"borderColor\",\"showdate\",\"redirectMode\",\"new\",\"recipe\",\"related-items\",\"newrelic\",{\"_724\":725},\"guid\",\"MzkzNjM0OHxCUk9XU0VSfEFQUExJQ0FUSU9OfDUzODYwMDIwNQ\",\"routes/author.$slug\",{\"_728\":729,\"_1491\":1492,\"_1496\":1497,\"_1510\":1511,\"_1521\":-7},\"template\",{\"_730\":731,\"_746\":747,\"_751\":752,\"_755\":756,\"_793\":794,\"_1487\":1488},\"author\",{\"_354\":732,\"_356\":521,\"_170\":733,\"_225\":734,\"_735\":272,\"_736\":737,\"_738\":739},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp\",\"/author/kasson-crooker\",\"Kasson Crooker\",\"subTitle\",\"content\",[],\"socialInfo\",[740,742,744,745],{\"_170\":741,\"_201\":211},\"#\",{\"_170\":741,\"_201\":743},\"Instagram\",{\"_170\":741,\"_201\":208},{\"_170\":741,\"_201\":205},\"breadcrumbs\",[748,750],{\"_225\":593,\"_170\":749},\"/\",{\"_225\":734,\"_170\":733},\"pagination\",{\"_753\":396,\"_754\":396},\"totalCount\",\"currentPage\",\"contents\",[757],{\"_371\":372,\"_352\":758,\"_373\":760,\"_358\":777,\"_360\":777,\"_363\":778,\"_779\":780,\"_365\":272,\"_366\":781,\"_368\":272,\"_361\":782,\"_783\":272,\"_383\":784,\"_369\":329,\"_370\":330,\"_381\":785,\"_786\":787,\"_791\":792},{\"_354\":759,\"_356\":272},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc65a6c2903d51499/673ce42a198dc8431a7c963a/Game_Developer_Magazine_Cover_January_2011.png\",[761,767,768,771,774],{\"_168\":762,\"_377\":763,\"_379\":764,\"_765\":766},\"Marc Flury\",\"/author/marc-flury-2\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7ba9dbc892212f97/65088cd9049c432dfd5b662b/Marc_Flury.png\",\"role\",\"Blogger\",{\"_168\":734,\"_377\":733,\"_379\":732,\"_765\":272},{\"_168\":769,\"_377\":770,\"_379\":732,\"_765\":272},\" Matt Boch\",\"/author/matt-boch\",{\"_168\":772,\"_377\":773,\"_379\":732,\"_765\":272},\"Dean Tate\",\"/author/dean-tate\",{\"_168\":775,\"_377\":776,\"_379\":732,\"_765\":272},\"Ryan Challinor\",\"/author/ryan-challinor\",\"Classic Postmortem: Harmonix's Dance Central (2010)\",\"/production/postmortem-harmonix-s-dance-central-2010-\",\"linkAttrs\",{},\"Nov 21, 2024\",\"This Dance Central postmortem was first published in Game Developer Magazine in January 2011. \",\"articleBodyJsonSummary\",\"normal\",24,\"paidGating\",{\"_788\":140,\"_789\":790},\"paidContent\",\"paidProductTaxonomy\",[],\"articleSize\",\"big\",\"sidebarModules\",[795,843,859,1346,1394,1434],{\"_201\":796,\"_797\":798,\"_840\":841},\"module_content_cards\",\"data\",{\"_225\":799,\"_800\":272,\"_383\":801,\"_755\":802,\"_836\":837,\"_838\":837,\"_839\":-7},\"Latest News\",\"moduleLabel\",\"column\",[803,820,824],{\"_201\":804,\"_797\":805},\"contentPreview\",{\"_371\":372,\"_383\":384,\"_352\":806,\"_358\":809,\"_360\":809,\"_363\":810,\"_365\":810,\"_779\":811,\"_366\":812,\"_368\":272,\"_369\":329,\"_370\":330,\"_373\":813,\"_381\":396,\"_786\":818},{\"_354\":807,\"_356\":808},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3efef14762a494eb/67b335f79d18e87ef9e107d2/Liquid_Swords.png\",\"The Liquid Swords logo \",\"Liquid Swords confirms layoffs after pledging to implement 'sustainable work model'\",\"/production/liquid-swords-confirms-layoffs-after-pledging-to-implement-sustainable-work-model-\",{},\"Feb 17, 2025\",[814],{\"_168\":815,\"_377\":816,\"_379\":817},\"Chris Kerr\",\"/author/chris-kerr\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg\",{\"_788\":140,\"_789\":819},[],{\"_201\":821,\"_797\":822},\"ad\",{\"_823\":101},\"pos\",{\"_201\":804,\"_797\":825},{\"_371\":372,\"_383\":384,\"_352\":826,\"_358\":829,\"_360\":829,\"_363\":830,\"_365\":830,\"_779\":831,\"_366\":812,\"_368\":272,\"_369\":332,\"_370\":333,\"_373\":832,\"_381\":396,\"_786\":834},{\"_354\":827,\"_356\":828},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt60a1365ea0b4d1f0/67b325b3ded86b25266bbf7c/Viktor.png\",\"A headshot of Viktor Antonov\",\"Obituary: Half-Life 2 art director Viktor Antonov has passed away\",\"/art/obituary-half-life-2-art-director-viktor-antonov-has-passed-away\",{},[833],{\"_168\":815,\"_377\":816,\"_379\":817},{\"_788\":140,\"_789\":835},[],\"dateDisplay\",\"show\",\"contributorDisplay\",\"displayAd\",\"adConfig\",{\"_842\":180},\"nativeAdOption\",{\"_201\":844,\"_845\":846,\"_797\":847},\"module_newsletter_promo\",\"uid\",\"blt5927fa665b4acf51\",{\"_225\":848,\"_684\":849,\"_850\":846,\"_851\":852,\"_383\":853,\"_854\":855,\"_856\":140,\"_857\":858},\"Get daily news, dev blogs, and stories from Game Developer straight to your inbox\",\"Subscribe to Game Developer Newsletters to stay caught up with the latest news, design insights, marketing tips, and more\",\"newsletterId\",\"buttonText\",\"Stay Updated\",\"horizontal\",\"mode\",\"dark\",\"isOnHomepage\",\"moduleLocation\",\"sidebar\",{\"_201\":860,\"_797\":861},\"module_content_spotlight\",{\"_383\":862,\"_854\":863,\"_864\":865,\"_866\":867,\"_371\":372,\"_365\":272,\"_736\":868},\"reversed\",\"light\",\"textAlignment\",\"center\",\"moduleDesign\",\"standard\",{\"_869\":870,\"_531\":871,\"_874\":245,\"_875\":876,\"_877\":876,\"_878\":879,\"_361\":1337,\"_1338\":1337,\"_1339\":1340,\"_779\":1342,\"_363\":1341,\"_369\":320,\"_370\":321,\"_366\":1343,\"_786\":1344},\"keywords\",[],{\"_170\":872,\"_520\":873},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg\",\"A photo of the White House in black and white.\",\"summary\",\"heading\",\"Opinion: How will Project 2025 impact game developers?\",\"mobileHeading\",\"articleBody\",[880,890,895,921,942,947,952,958,971,984,989,1013,1024,1038,1043,1048,1061,1066,1071,1084,1111,1124,1129,1134,1139,1152,1157,1178,1183,1188,1193,1206,1211,1216,1221,1231,1236,1241,1254,1259,1264,1276,1281,1286,1291,1304,1309,1320,1325,1330],{\"_201\":881,\"_882\":883,\"_736\":886},\"paragraph\",\"attrs\",{\"_884\":885},\"textAlign\",\"left\",[887],{\"_201\":888,\"_888\":889},\"text\",\"In the last few weeks you may have heard of a document known as \\\"Project 2025.\\\" Fully known as \\\"The Project 2025 Presidential Transition Project,\\\" it is a document created by a conservative nonprofit think tank called The Heritage Foundation. The project's aim is to establish policy goals for the possible next presidential administration under Donald Trump and the means by which to achieve them, authored by political insiders with past and present affiliation with the candidate.\",{\"_201\":881,\"_882\":891,\"_736\":892},{\"_884\":885},[893],{\"_201\":888,\"_888\":894},\"An external nonprofit organization posting and promoting such a plan is unusual on its face, even if its contents echo the policy platforms of Republican Party elected officials for at least the last two decades. Its plans to radically rewrite laws around taxes, LGBTQ rights, regulation, and more are not dissimilar to the policies of many prior administrations.\",{\"_201\":881,\"_882\":896,\"_736\":897},{\"_884\":885},[898,900,911,913,919],{\"_201\":888,\"_888\":899},\"Additionally, 501(c)(3) nonprofits are \",{\"_201\":888,\"_901\":902,\"_888\":910},\"marks\",[903],{\"_201\":377,\"_882\":904},{\"_5\":905,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.irs.gov/charities-non-profits/charitable-organizations/the-restriction-of-political-campaign-intervention-by-section-501c3-tax-exempt-organizations\",\"target\",\"_self\",\"rel\",\"class\",\"prohibited from participating in political campaigns by the IRS\",{\"_201\":888,\"_888\":912},\", and \",{\"_201\":888,\"_901\":914,\"_888\":918},[915],{\"_201\":377,\"_882\":916},{\"_5\":917,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.newsweek.com/project-2025-reported-irs-1923145\",\"some have questioned\",{\"_201\":888,\"_888\":920},\" if its championing of this project runs afoul of tax law.\",{\"_201\":881,\"_882\":922,\"_736\":923},{\"_884\":885},[924,926,932,934,940],{\"_201\":888,\"_888\":925},\"What's even more unusual is how conversation around Project 2025 has gone widely viral. Thanks in part to comedian \",{\"_201\":888,\"_901\":927,\"_888\":931},[928],{\"_201\":377,\"_882\":929},{\"_5\":930,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.youtube.com/watch?v=gYwqpx6lp_s\",\"John Oliver\",{\"_201\":888,\"_888\":933},\" and extremely due to comments made by actor \",{\"_201\":888,\"_901\":935,\"_888\":939},[936],{\"_201\":377,\"_882\":937},{\"_5\":938,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.msnbc.com/the-reidout/reidout-blog/bet-awards-taraji-henson-project-2025-rcna159770\",\"Taraji P. Henson\",{\"_201\":888,\"_888\":941},\", Americans are now closely scrutinizing how this plan may impact their lives.\",{\"_201\":881,\"_882\":943,\"_736\":944},{\"_884\":885},[945],{\"_201\":888,\"_888\":946},\"Many of those Americans are in the world of video game development. We took a look at Project 2025's ambitions to see how it could impact the game development community. The results were disturbing.\",{\"_201\":881,\"_882\":948,\"_736\":949},{\"_884\":885},[950],{\"_201\":888,\"_888\":951},\"Game developers should know that Project 2025 contains implications for possible media censorship, worsening health and well-being of workers, and drastic threats to gender and racial equality in an industry still struggling to close decades of unconscious discrimination.\",{\"_201\":875,\"_882\":953,\"_736\":955},{\"_884\":885,\"_954\":382},\"level\",[956],{\"_201\":888,\"_888\":957},\"Project 2025 includes \\\"transgender ideology\\\" under the definition of \\\"pornography\\\"\",{\"_201\":881,\"_882\":959,\"_736\":960},{\"_884\":885},[961,963,969],{\"_201\":888,\"_888\":962},\"In \",{\"_201\":888,\"_901\":964,\"_888\":968},[965],{\"_201\":377,\"_882\":966},{\"_5\":967,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.project2025.org/\",\"Project 2025's foreword,\",{\"_201\":888,\"_888\":970},\" authored by Heritage Foundation president Kevin Richardson, PhD, the organization makes an explicit connection between supporting transgender rights and the act of producing pornography. \\\"Pornography, manifested today in the omnipresent propagation of transgender ideology and sexualization of children, for instance, is not a political Gordian knot inextricably binding up disparate claims about free speech, property rights, sexual liberation, and child welfare,\\\" he writes, adding that it has \\\"no claim to First Amendment protection.\\\"\",{\"_201\":881,\"_882\":972,\"_736\":973},{\"_884\":885},[974,976,982],{\"_201\":888,\"_888\":975},\"This is a wide-reaching expansion of \",{\"_201\":888,\"_901\":977,\"_888\":981},[978],{\"_201\":377,\"_882\":979},{\"_5\":980,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.merriam-webster.com/dictionary/pornography\",\"the definition of pornography\",{\"_201\":888,\"_888\":983},\". He does not mince words as to what action the government should take. He follows this by stating pornography should be \\\"outlawed,\\\" and calls for harsh punishments for any involved in its creation or dissemination.\",{\"_201\":881,\"_882\":985,\"_736\":986},{\"_884\":885},[987],{\"_201\":888,\"_888\":988},\"\\\"The people who produce and distribute it should be imprisoned,\\\" he continues. \\\"Educators and public librarians who purvey it should be classed as registered sex offenders. And telecommunications and technology firms that facilitate its spread should be shuttered.\\\"\",{\"_201\":881,\"_882\":990,\"_736\":991},{\"_884\":885},[992,994,999,1001,1005,1007,1011],{\"_201\":888,\"_888\":993},\"It is here that we can draw a line between this proposed plan and video game development. Such restrictions may outlaw gender-inclusive character creators like those seen in \",{\"_201\":888,\"_901\":995,\"_888\":998},[996],{\"_201\":997},\"italic\",\"Cyberpunk 2077\",{\"_201\":888,\"_888\":1000},\", \",{\"_201\":888,\"_901\":1002,\"_888\":1004},[1003],{\"_201\":997},\"Baldur's Gate 3\",{\"_201\":888,\"_888\":1006},\", or \",{\"_201\":888,\"_901\":1008,\"_888\":1010},[1009],{\"_201\":997},\"The Sims 4\",{\"_201\":888,\"_888\":1012},\" in the United States.\",{\"_201\":881,\"_882\":1014,\"_736\":1015},{\"_884\":885},[1016,1018,1022],{\"_201\":888,\"_888\":1017},\"This may also lead developers to stop including transgender characters in games like \",{\"_201\":888,\"_901\":1019,\"_888\":1021},[1020],{\"_201\":997},\"Apex Legends\",{\"_201\":888,\"_888\":1023},\"' Bloodhound and Catalyst. It is unclear if the mere representation of a transgender individual would violate the terms, but studios fearful of litigation would have reason to deny their creation altogether.\",{\"_201\":1025,\"_882\":1026,\"_736\":1029},\"figure\",{\"_1027\":1028},\"figcaption\",\"Image via Respawn Entertainment/Electronic Arts.\",[1030,1037],{\"_201\":531,\"_882\":1031},{\"_884\":885,\"_354\":1032,\"_356\":1033,\"_225\":-5,\"_1034\":1035},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf4717120ba72e4cf/669941f4b3e572203158f2be/catalystart.jpg\",\"Trans femme legend Catalyst from Apex Legends.\",\"style\",{\"_1036\":865},\"float\",{\"_201\":888,\"_888\":1028},{\"_201\":881,\"_882\":1039,\"_736\":1040},{\"_884\":885},[1041],{\"_201\":888,\"_888\":1042},\"With regards to its singling out of \\\"technology companies,\\\" much is made further down the document in a section on the Federal Communications Commission authored by former Trump administration FCC chairman Brendan Carr. Carr writes that Congress should set about scrapping the current implementation of Section 230 of the Communications Act. Section 230 is legally understood to absolve telecom providers and platform holders of broad responsibility for content transmitted through their services.\",{\"_201\":881,\"_882\":1044,\"_736\":1045},{\"_884\":885},[1046],{\"_201\":888,\"_888\":1047},\"Altering its language would allow agencies to hold internet providers, social media platforms, and digital storefronts for the content they share. This could lead to companies who own said services to apply downward pressure on each other to preemptively enforce said censorship.\",{\"_201\":881,\"_882\":1049,\"_736\":1050},{\"_884\":885},[1051,1053,1059],{\"_201\":888,\"_888\":1052},\"We should also note that expanding the definition of pornography in vague and uncertain terms may mean video games featuring sexualized characters of any type could be targeted by such legislation. Developers may be tasked with adhering to something \",{\"_201\":888,\"_901\":1054,\"_888\":1058},[1055],{\"_201\":377,\"_882\":1056},{\"_5\":1057,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.npr.org/2008/08/08/93301189/remembering-hollywoods-hays-code-40-years-on\",\"like the Hays Code\",{\"_201\":888,\"_888\":1060},\", a self-imposed form of censorship authored by Will Hays in 1934 meant to stave off congressional legislation against the film industry.\",{\"_201\":875,\"_882\":1062,\"_736\":1063},{\"_884\":885,\"_954\":382},[1064],{\"_201\":888,\"_888\":1065},\"Civil rights protections for American game developers in the workplace may suffer\",{\"_201\":881,\"_882\":1067,\"_736\":1068},{\"_884\":885},[1069],{\"_201\":888,\"_888\":1070},\"Americans who require access to abortion or protection from discrimination on the basis of race, gender, or sexuality may suffer greatly under Project 2025. The plan takes a multi-pronged approach to targeting said protections, and Richardson writes that this begins with deleting the terms sexual orientation and gender identity (\\\"SOGI\\\"), diversity, equity, and inclusion (\\\"DEI\\\"), gender, gender equality, gender equity, gender awareness, gender-sensitive, abortion, reproductive health, reproductive rights, and any other term used to deprive Americans of their First Amendment rights out of every federal rule, agency regulation, contract, grant, regulation, and piece of legislation that exists.\\\"\",{\"_201\":881,\"_882\":1072,\"_736\":1073},{\"_884\":885},[1074,1076,1082],{\"_201\":888,\"_888\":1075},\"The effects of said action may already be seeping into companies that contract with the federal government. Recently \",{\"_201\":888,\"_901\":1077,\"_888\":1081},[1078],{\"_201\":377,\"_882\":1079},{\"_5\":1080,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/business/report-microsoft-shuts-down-dei-team-ex-lead-claims-similar-programs-at-risk\",\"laid-off DEI workers at Microsoft\",{\"_201\":888,\"_888\":1083},\" raised the alarm bell that the Redmond-based corporation may be shuttering DEI efforts in advance of a possible second Trump administration.\",{\"_201\":881,\"_882\":1085,\"_736\":1086},{\"_884\":885},[1087,1089,1095,1097,1103,1105,1109],{\"_201\":888,\"_888\":1088},\"A \",{\"_201\":888,\"_901\":1090,\"_888\":1094},[1091],{\"_201\":377,\"_882\":1092},{\"_5\":1093,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/business/why-are-valve-and-discord-permitting-harassment-against-sweet-baby-inc-\",\"reactionary backlash\",{\"_201\":888,\"_888\":1096},\" against DEI initiatives has also fueled renewed harassment campaigns against marginalized groups and their advocates in game development. The campaigns' furor has grown so absurd that even Ubisoft CEO Yves Guillemot took time to \",{\"_201\":888,\"_901\":1098,\"_888\":1102},[1099],{\"_201\":377,\"_882\":1100},{\"_5\":1101,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/business/yves-guillemot-denounces-assassin-s-creed-shadows-racist-malicious-backlash\",\"condemn the racist reaction\",{\"_201\":888,\"_888\":1104},\" to the dual leads of \",{\"_201\":888,\"_901\":1106,\"_888\":1108},[1107],{\"_201\":997},\"Assassin's Creed Shadows\",{\"_201\":888,\"_888\":1110},\".\",{\"_201\":881,\"_882\":1112,\"_736\":1113},{\"_884\":885},[1114,1116,1122],{\"_201\":888,\"_888\":1115},\"In a section authored by former chief counsel to the President-Elect Trump Transition team Jonathan Berry, he writes that the Department of Labor and related agencies should cease enforcing what is known as the \\\"disparate impact\\\" standard in determining the existence of racial discrimination in the workplace. \",{\"_201\":888,\"_901\":1117,\"_888\":1121},[1118],{\"_201\":377,\"_882\":1119},{\"_5\":1120,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.justice.gov/crt/fcs/T6Manual7\",\"This standard\",{\"_201\":888,\"_888\":1123},\" is shorthand for explaining how regulatory agencies determine if unintentional or covert discrimination has been enabled through rules or policies that disproportionately target people of different racial groups, particularly minorities.\",{\"_201\":881,\"_882\":1125,\"_736\":1126},{\"_884\":885},[1127],{\"_201\":888,\"_888\":1128},\"Eliminating it would likely empower companies to willingly or inadvertently discriminate against workers so long as they do not specify which protected groups they are targeting.\",{\"_201\":881,\"_882\":1130,\"_736\":1131},{\"_884\":885},[1132],{\"_201\":888,\"_888\":1133},\"Berry also explicitly calls for the Department of Labor to \\\"rescind regulations prohibiting discrimination on the basis of sexual orientation, gender identity, transgender status, and sex characteristics.\\\" Employers would be free to discriminate against LGBTQ+ workers with no intervention by the federal government.\",{\"_201\":881,\"_882\":1135,\"_736\":1136},{\"_884\":885},[1137],{\"_201\":888,\"_888\":1138},\"Finally, developers should know that Project 2025's assault on abortion access impact benefits studios provide in the United States. Berry's section of the Mandate for Leadership states that the potential next presidential administration should \\\"keep anti-life 'benefits' out of benefit plans.\\\"\",{\"_201\":881,\"_882\":1140,\"_736\":1141},{\"_884\":885},[1142,1144,1150],{\"_201\":888,\"_888\":1143},\"The lever to eliminate said benefits would be pulled through a judicial reinterpreting of \",{\"_201\":888,\"_901\":1145,\"_888\":1149},[1146],{\"_201\":377,\"_882\":1147},{\"_5\":1148,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.dol.gov/general/topic/retirement/erisa\",\"Employee Retirement Income Security Act of 1974 (ERISA)\",{\"_201\":888,\"_888\":1151},\". The law currently denies states the ability to ban companies from providing abortion coverage in their medical benefits.\",{\"_201\":881,\"_882\":1153,\"_736\":1154},{\"_884\":885},[1155],{\"_201\":888,\"_888\":1156},\"\\\"ERISA should not be allowed to trump states’ ability to protect innocent human life in the womb,\\\" writes Berry. \\\"Congress and DOL should clarify that ERISA does not preempt states' power to restrict abortion, surrogacy, or other anti-life 'benefits.'\\\"\",{\"_201\":881,\"_882\":1158,\"_736\":1159},{\"_884\":885},[1160,1162,1168,1170,1176],{\"_201\":888,\"_888\":1161},\"The successful restricting of abortion access has \",{\"_201\":888,\"_901\":1163,\"_888\":1167},[1164],{\"_201\":377,\"_882\":1165},{\"_5\":1166,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/game-platforms/insomniac-games-bungie-issue-statements-supporting-abortion-rights\",\"prompted backlash\",{\"_201\":888,\"_888\":1169},\" from game developers. Many \",{\"_201\":888,\"_901\":1171,\"_888\":1175},[1172],{\"_201\":377,\"_882\":1173},{\"_5\":1174,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/game-platforms/texas-anti-abortion-law-is-a-threat-for-diversity-in-the-game-industry\",\"already worry\",{\"_201\":888,\"_888\":1177},\" that if studios or publishers set up new offices in states with abortion bans on the books, they will have to choose between their careers or their personal safety when considering where they can work.\",{\"_201\":881,\"_882\":1179,\"_736\":1180},{\"_884\":885},[1181],{\"_201\":888,\"_888\":1182},\"The combined eliminations of these protections risk exacerbating inequality in the video game business. If employees cannot fight discrimination or receive equal access to healthcare, they will not have the same opportunities as many of their colleagues when seeking work in the field of game development.\",{\"_201\":875,\"_882\":1184,\"_736\":1185},{\"_884\":885,\"_954\":382},[1186],{\"_201\":888,\"_888\":1187},\"Proposed overtime regulations in Project 2025 could empower more crunch\",{\"_201\":881,\"_882\":1189,\"_736\":1190},{\"_884\":885},[1191],{\"_201\":888,\"_888\":1192},\"The last decade has been marked by workers at companies large and small advocating for an end to \\\"crunch,\\\" commonly understood as periods where developers work intense extra hours to meet harsh deadlines.\",{\"_201\":881,\"_882\":1194,\"_736\":1195},{\"_884\":885},[1196,1198,1204],{\"_201\":888,\"_888\":1197},\"The Game Developers Conference State of the Industry survey \",{\"_201\":888,\"_901\":1199,\"_888\":1203},[1200],{\"_201\":377,\"_882\":1201},{\"_5\":1202,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.gamedeveloper.com/game-platforms/diving-into-the-nuance-of-self-imposed-crunch\",\"indicates\",{\"_201\":888,\"_888\":1205},\" that while developers still experience crunch, its presence in the industry has slowly declined in response to said advocacy. Those gains could be wiped away by proposals in Project 2025.\",{\"_201\":881,\"_882\":1207,\"_736\":1208},{\"_884\":885},[1209],{\"_201\":888,\"_888\":1210},\"These proposals attack overtime benefits from multiple angles. In his chapter on the Department of Labor, Berry argues that overtime laws are too restrictive on companies who wish to offer other benefits like reimbursement for education, childcare, or free meals.\",{\"_201\":881,\"_882\":1212,\"_736\":1213},{\"_884\":885},[1214],{\"_201\":888,\"_888\":1215},\"As he states, \\\"overtime requirements may discourage employers from offering certain fringe benefits such as reimbursement for education, childcare, or even free meals because the benefits' value may be included in the 'regular rate' that must be paid at 150 percent for all overtime hours.\\\"\",{\"_201\":881,\"_882\":1217,\"_736\":1218},{\"_884\":885},[1219],{\"_201\":888,\"_888\":1220},\"Elsewhere, Berry writes that overtime laws should be adjusted to offer \\\"flexibility\\\" to \\\"employers and employees\\\" to calculate overtime over two-or-four-week periods. \\\"This would give workers greater flexibility to work more hours in one week and fewer hours in the next and would not require the employer to pay them more for that same total number of hours of work during the entire period,\\\" he says.\",{\"_201\":1025,\"_882\":1222,\"_736\":1224},{\"_1027\":1223},\"Image via Adobe Stock.\",[1225,1230],{\"_201\":531,\"_882\":1226},{\"_884\":885,\"_354\":1227,\"_356\":1228,\"_225\":-5,\"_1034\":1229},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcce83709200ee93e/669942b1894f28345b04de74/AdobeStock_533283534.jpeg\",\"A tired woman works in an unlit office at night.\",{\"_1036\":865},{\"_201\":888,\"_888\":1223},{\"_201\":881,\"_882\":1232,\"_736\":1233},{\"_884\":885},[1234],{\"_201\":888,\"_888\":1235},\"This means that if an employer were to demand developers work 60 hour weeks to hit a milestone, they would be able to not pay overtime so long as equivalent time off was offered in the weeks after. Such a regulation does not account for the strain that excessive work hours can inflict on workers, even in the software industry.\",{\"_201\":881,\"_882\":1237,\"_736\":1238},{\"_884\":885},[1239],{\"_201\":888,\"_888\":1240},\"Elsewhere, Berry writes that home offices should not be considered workplaces under OSHA guidelines, and employees should not be entitled to overtime protections while working from such locations.\",{\"_201\":881,\"_882\":1242,\"_736\":1243},{\"_884\":885},[1244,1246,1252],{\"_201\":888,\"_888\":1245},\"Finally, Project 2025 seeks to reverse changes to the \\\"overtime threshold\\\" implemented by President Joe Biden's administration. Earlier in 2024 the president \",{\"_201\":888,\"_901\":1247,\"_888\":1251},[1248],{\"_201\":377,\"_882\":1249},{\"_5\":1250,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.cbsnews.com/news/biden-labor-department-overtime-pay-expansion-who-qualifies-cbs-news-explains/#:~:text=About%204.3%20million%20U.S.%20workers,rule%20from%20the%20Biden%20administration.\",\"announced it\",{\"_201\":888,\"_888\":1253},\" would raise the income threshold for non-exempt salaried workers to be eligible for overtime. It was raised to include workers making up to $58.6k annually, up from $35.5k under the previous administration. About 4.3 million Americans benefitted from this expansion. This expanded range band covers many junior positions in the video game industry.\",{\"_201\":881,\"_882\":1255,\"_736\":1256},{\"_884\":885},[1257],{\"_201\":888,\"_888\":1258},\"Berry states that the threshold under the previous administration was \\\"high enough\\\" to cover \\\"line workers in lower-cost regions,\\\" an eyebrow-raising implication that only certain types of workers deserve overtime protections.\",{\"_201\":881,\"_882\":1260,\"_736\":1261},{\"_884\":885},[1262],{\"_201\":888,\"_888\":1263},\"Take-home pay for working overtime could also be reduced under Project 2025. Berry advocates that Congress should clarify that the 'regular rate' for overtime pay is based on the salary paid rather than all benefits provided.\\\" In other words, if your overtime pay was calculated as 1.5 times your total pay including benefits, you would now only receive 1.5 times your base salary.\",{\"_201\":881,\"_882\":1265,\"_736\":1266},{\"_884\":885},[1267,1269,1275],{\"_201\":888,\"_888\":1268},\"Project 2025 proponents may point out these changes would be counterbalanced by proposals that would expand accumulation of paid time off based on overtime. This again does not account for the physical and mental strain that \",{\"_201\":888,\"_901\":1270,\"_888\":1274},[1271],{\"_201\":377,\"_882\":1272},{\"_5\":1273,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6617405/\",\"overtime can exert on the human body\",{\"_201\":888,\"_888\":1110},{\"_201\":881,\"_882\":1277,\"_736\":1278},{\"_884\":885},[1279],{\"_201\":888,\"_888\":1280},\"It isn't unreasonable to expect that if the costs of implementing crunch are lowered, more American employers would gladly push for employees to work more and more hours per week.\",{\"_201\":875,\"_882\":1282,\"_736\":1283},{\"_884\":885,\"_954\":382},[1284],{\"_201\":888,\"_888\":1285},\"Project 2025 is an attack on the video game industry\",{\"_201\":881,\"_882\":1287,\"_736\":1288},{\"_884\":885},[1289],{\"_201\":888,\"_888\":1290},\"A deeper examination of Project 2025's impact on the game industry would need to explore how it brutalizes the civil rights of undocumented immigrants while slashing immigration rates for workers on visas. It would also have to account for how proposed changes to tax law would increase taxes on workers to subsidize cuts to corporate tax rates.\",{\"_201\":881,\"_882\":1292,\"_736\":1293},{\"_884\":885},[1294,1296,1302],{\"_201\":888,\"_888\":1295},\"But to quote political reporter Dave Wasserman, \\\"\",{\"_201\":888,\"_901\":1297,\"_888\":1301},[1298],{\"_201\":377,\"_882\":1299},{\"_5\":1300,\"_906\":907,\"_908\":-5,\"_909\":-5},\"https://x.com/Redistrict/status/1554639811595669505\",\"I've seen enough\",{\"_201\":888,\"_888\":1303},\".\\\" The Heritage Foundation's ambitious plan for a possible Trump Administration is nothing less than an all-out assault on workers of all stripes, and particularly harmful for the creative and inclusive community that makes game development a joyful vocation.\",{\"_201\":881,\"_882\":1305,\"_736\":1306},{\"_884\":885},[1307],{\"_201\":888,\"_888\":1308},\"I call out the word \\\"joyful\\\" here because joy is a fundamental element of the art and business of making video games. In one way or another, joy is what we offer players. We create that joy through creativity and collaboration, higher-order skills that suffer when one fears for their civil rights, their health, or their life.\",{\"_201\":881,\"_882\":1310,\"_736\":1311},{\"_884\":885},[1312,1314,1318],{\"_201\":888,\"_888\":1313},\"The threats of Project 2025 to the well-being of Americans everywhere should be front-and-center in readers' minds, but it's also worth noting how \",{\"_201\":888,\"_901\":1315,\"_888\":1317},[1316],{\"_201\":997},\"joyless\",{\"_201\":888,\"_888\":1319},\" its authors are. The way these people write, you realize they know nothing about the relief of embracing your gender identity or sexuality, the sense of comfort that comes with being in safe spaces at work or out in the community, or the satisfaction of rest that follows a hard 40 hours of work.\",{\"_201\":881,\"_882\":1321,\"_736\":1322},{\"_884\":885},[1323],{\"_201\":888,\"_888\":1324},\"This document is written by miserable people who are upset that Americans have many ways to find happiness and satisfaction. They seem to be fueled by the same self-hatred powering reactionary campaigns targeting game developers and other artistic communities that have reared their heads since Gamergate in 2014. I half-expected to turn the page and read complaints that \\\"Disney's woke agenda ruined Star Wars.\\\" That's how bitter and awful it is!\",{\"_201\":881,\"_882\":1326,\"_736\":1327},{\"_884\":885},[1328],{\"_201\":888,\"_888\":1329},\"It's inevitable that the authors of Project 2025 would promote policies so harmful to developers and players alike. The only question remaining is if they will have the opportunity to implement them.\",{\"_201\":881,\"_882\":1331,\"_736\":1332},{\"_884\":885},[1333],{\"_201\":888,\"_901\":1334,\"_888\":1336},[1335],{\"_201\":997},\"GDC and Game Developer are sibling organizations under Informa.\",\"The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.\",\"body\",\"callToAction\",{\"_888\":278,\"_170\":1341},\"/business/how-will-project-2025-impact-game-developers-\",{},\"2024-07-18T16:42:13.000Z\",{\"_788\":140,\"_789\":1345},[],{\"_201\":796,\"_797\":1347,\"_840\":1393},{\"_225\":245,\"_800\":548,\"_383\":801,\"_755\":1348,\"_836\":837,\"_838\":837,\"_839\":-7},[1349,1366,1380],{\"_201\":804,\"_797\":1350},{\"_371\":372,\"_383\":384,\"_352\":1351,\"_358\":1354,\"_360\":1354,\"_363\":1355,\"_365\":1355,\"_779\":1356,\"_366\":1357,\"_368\":272,\"_369\":332,\"_370\":333,\"_373\":1358,\"_381\":1363,\"_786\":1364},{\"_354\":1352,\"_356\":1353},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg\",\"Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber.\",\"What Obsidian Entertainment learned making Avowed a first-person fantasy RPG\",\"/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game\",{},\"Feb 13, 2025\",[1359],{\"_168\":1360,\"_377\":1361,\"_379\":1362},\"Bryant Francis\",\"/author/bryant-francis\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg\",9,{\"_788\":140,\"_789\":1365},[],{\"_201\":804,\"_797\":1367},{\"_371\":372,\"_383\":384,\"_352\":1368,\"_358\":1371,\"_360\":1371,\"_363\":1372,\"_365\":1372,\"_779\":1373,\"_366\":1374,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1375,\"_381\":1377,\"_786\":1378},{\"_354\":1369,\"_356\":1370},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg\",\"A soldier from the ARMA series stands at the ready with an M-16.\",\"Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?\",\"/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-\",{},\"Feb 11, 2025\",[1376],{\"_168\":1360,\"_377\":1361,\"_379\":1362},8,{\"_788\":140,\"_789\":1379},[],{\"_201\":804,\"_797\":1381},{\"_371\":372,\"_383\":384,\"_352\":1382,\"_358\":1385,\"_360\":1385,\"_363\":1386,\"_365\":1386,\"_779\":1387,\"_366\":1388,\"_368\":272,\"_369\":326,\"_370\":289,\"_373\":1389,\"_381\":1377,\"_786\":1391},{\"_354\":1383,\"_356\":1384},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg\",\"A magical pink flower on a balcony.\",\"Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics\",\"/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics\",{},\"Feb 6, 2025\",[1390],{\"_168\":1360,\"_377\":1361,\"_379\":1362},{\"_788\":140,\"_789\":1392},[],{\"_842\":140},{\"_201\":1395,\"_797\":1396},\"module_link_list\",{\"_1397\":1398,\"_1399\":1400,\"_1401\":1402,\"_1403\":272,\"_1404\":1405,\"_535\":140,\"_1410\":1411},\"listOption\",\"Dynamic\",\"listTitle\",\"Latest Podcasts\",\"icon\",\"Microphone\",\"externalFeed\",\"ctaButton\",{\"_1406\":1407,\"_1408\":1409},\"ctaButtonLink\",\"/keyword/game-developer-podcast\",\"ctaButtonText\",\"See all\",\"articles\",[1412,1422,1426,1430],{\"_371\":1413,\"_225\":1414,\"_170\":1415,\"_1416\":140,\"_1417\":1418,\"_1419\":1420,\"_1421\":272,\"_368\":272},\"Podcast\",\"Snapping Your Career into Place with Ben Brode: Game Developer Podcast Ep. 48\",\"/design/snapping-your-career-into-place-with-ben-brode-game-developer-podcast-ep-48\",\"isExternalLink\",\"readTime\",0,\"publishedDate\",\"2024-11-27T22:49:26.000Z\",\"eventDate\",{\"_371\":1413,\"_225\":1423,\"_170\":1424,\"_1416\":140,\"_1417\":1418,\"_1419\":1425,\"_1421\":272,\"_368\":272},\"Preserving the Past With Charles Cecil: Game Developer Podcast Ep. 46\",\"/design/preserving-the-past-with-charles-cecil-game-developer-podcast-ep-46\",\"2024-08-29T13:00:00.000Z\",{\"_371\":1413,\"_225\":1427,\"_170\":1428,\"_1416\":140,\"_1417\":1418,\"_1419\":1429,\"_1421\":272,\"_368\":272},\"On the unionization frontlines with Autumn Mitchell, Emma Kinema and Chris Lusco: Game Developer Podcast Ep. 45\",\"/production/on-the-unionization-frontlines-with-autumn-mitchell-emma-kinema-and-chris-lusco-game-developer-podcast-ep-45\",\"2024-07-26T15:32:50.000Z\",{\"_371\":1413,\"_225\":1431,\"_170\":1432,\"_1416\":140,\"_1417\":1418,\"_1419\":1433,\"_1421\":272,\"_368\":272},\"Behind the GDC scenes with Beth Elderkin and Sam Warnke: Game Developer Podcast ep. 43\",\"/business/behind-the-gdc-scenes-with-beth-elderkin-and-sam-warnke-game-developer-podcast-ep-43\",\"2024-05-15T18:23:55.000Z\",{\"_201\":796,\"_797\":1435,\"_840\":1486},{\"_225\":1436,\"_800\":272,\"_383\":1437,\"_755\":1438,\"_836\":837,\"_838\":837,\"_839\":-7},\"Featured Blogs\",\"default\",[1439,1456,1473],{\"_201\":804,\"_797\":1440},{\"_371\":372,\"_383\":1441,\"_352\":1442,\"_358\":1445,\"_360\":1446,\"_363\":1447,\"_365\":1447,\"_779\":1448,\"_366\":1388,\"_368\":272,\"_369\":329,\"_370\":330,\"_373\":1449,\"_381\":382,\"_786\":1454},\"card-horizontal\",{\"_354\":1443,\"_356\":1444},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png\",\"ESA logo and company logos\",\"ESA Brings top studios together at GDC to unveil new accessibility initiative\",\"ESA Brings top studios together at GDC to unveil new accessibility initiative \",\"/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative\",{},[1450],{\"_168\":1451,\"_377\":1452,\"_379\":1453},\"Beth Elderkin\",\"/author/beth-elderkin\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg\",{\"_788\":140,\"_789\":1455},[],{\"_201\":804,\"_797\":1457},{\"_371\":372,\"_383\":1441,\"_352\":1458,\"_358\":1461,\"_360\":1461,\"_363\":1462,\"_365\":1462,\"_779\":1463,\"_366\":1464,\"_368\":272,\"_369\":329,\"_370\":330,\"_373\":1465,\"_381\":1470,\"_786\":1471},{\"_354\":1459,\"_356\":1460},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg\",\"Characters from Space Marine 2\",\"Creating seamless multiplayer experiences for games like Space Marine 2\",\"/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2\",{},\"Feb 5, 2025\",[1466],{\"_168\":1467,\"_377\":1468,\"_379\":1469},\"Dmitri Brevdo\",\"/author/dmitri-brevdo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt67b877227d9e0551/67acfa5567589e7bad2c60a4/Dmitri_Brevdo.jpg\",4,{\"_788\":140,\"_789\":1472},[],{\"_201\":804,\"_797\":1474},{\"_371\":372,\"_383\":1441,\"_352\":1475,\"_358\":1478,\"_360\":1478,\"_363\":1479,\"_365\":1479,\"_779\":1480,\"_366\":1481,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1482,\"_381\":1470,\"_786\":1484},{\"_354\":1476,\"_356\":1477},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg\",\"A robotic middle finger emerges from a laptop screen.\",\"Developers still aren't warming up to generative AI\",\"/business/developers-still-aren-t-warming-up-to-generative-ai\",{},\"Jan 22, 2025\",[1483],{\"_168\":1360,\"_377\":1361,\"_379\":1362},{\"_788\":140,\"_789\":1485},[],{\"_842\":140},\"newsletterSignUpPromo\",{\"_225\":1489,\"_684\":272,\"_850\":1490,\"_851\":852,\"_383\":386,\"_854\":855},\"Daily news, dev blogs, and stories from Game Developer straight to your inbox\",\"blt3618a0e49d9eaf7a\",\"metadata\",{\"_845\":1493,\"_1494\":1495},\"bltc5119594a1e4bb12\",\"aid\",\"77044\",\"schema\",[1498],{\"_1499\":1500,\"_1501\":1502,\"_1503\":1504},\"@context\",\"https://schema.org\",\"@type\",\"ProfilePage\",\"mainEntity\",{\"_1501\":1505,\"_168\":734,\"_220\":1506,\"_531\":732,\"_1507\":521,\"_1508\":1509},\"Person\",\"Kasson Crooker, \",\"disambiguatingDescription\",\"sameAs\",[],\"seo\",{\"_1512\":1513,\"_1514\":1515,\"_1516\":1517,\"_1518\":140,\"_1519\":1520,\"_13\":14},\"canonicalUrl\",\"https://www.gamedeveloper.com/author/kasson-crooker\",\"metaDescription\",\"Read articles by Kasson Crooker on Game Developer, the game industry's source for development news and insight.\",\"metaTitle\",\"Kasson Crooker Contributor Profile | Game Developer \",\"noIndex\",\"imageUrl\",\"https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico\",\"weatherWidgetConfig\",\"actionData\",\"errors\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>