<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <title>Software Development Recent News | ITPro Today</title> <meta name="robots" content="max-image-preview:large" data-ruid="nod9x50dy6" /> <meta property="og:title" content="Software Development Recent News | ITPro Today" data-ruid="nod9x50dy6" /> <meta name="description" content="Explore the latest news and expert commentary on Software Development brought to you by the editors of ITPro Today" data-ruid="nod9x50dy6" /> <meta property="og:description" content="Explore the latest news and expert commentary on Software Development brought to you by the editors of ITPro Today" data-ruid="nod9x50dy6" /> <meta property="og:url" content="https://www.itprotoday.com/software-development" data-ruid="nod9x50dy6" /> <meta property="og:type" content="website" data-ruid="nod9x50dy6" /> <meta property="og:image" content="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt06f49c53183e1192/65def48d237abe040a0cdb1b/Placeholder_Image.svg?disable=upscale&width=1200&height=630&fit=crop" data-ruid="nod9x50dy6" /> <meta property="og:site_name" content="ITPro Today" data-ruid="nod9x50dy6" /> <meta property="twitter:card" content="summary" data-ruid="nod9x50dy6" /> <link tagName="link" rel="canonical" href="https://www.itprotoday.com/software-development" data-ruid="nod9x50dy6" /> <link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg?width=1280&auto=webp&quality=10&disable=upscale&blur=40" as="image" tagName="link" data-ruid="nod9x50dy6" /> <script type="application/ld+json" data-ruid="nod9x50dy6">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.itprotoday.com"},{"@type":"ListItem","position":2,"name":"Software Development","item":"https://www.itprotoday.com/software-development"}]}</script> <link rel="stylesheet" href="/assets/brand.generated-G0CHEdE4.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/> <script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){self.airgap?.ready||(self.airgap={readyQueue:[],ready(e){this.readyQueue.push(e)},...self.airgap});self.airgap.loadOptions=Object.assign({uiShadowRoot:"open"},self.airgap.loadOptions);const e=()=>{const e="__tcfapiLocator",t=[],a=window;let n,s,o=a;for(;o;){try{if(o.frames[e]){n=o;break}}catch(e){}if(o===a.top)break;o=o.parent}n||(!function t(){const n=a.document,s=!!a.frames[e];if(!s)if(n.body){const t=n.createElement("iframe");t.style.cssText="display:none",t.name=e,n.body.appendChild(t)}else setTimeout(t,5);return!s}(),a.__tcfapi=function(...e){if(!e.length)return t;"setGdprApplies"===e[0]?e.length>3&&2===parseInt(e[1],10)&&"boolean"==typeof e[3]&&(s=e[3],"function"==typeof e[2]&&e[2]("set",!0)):"ping"===e[0]?"function"==typeof e[2]&&e[2]({gdprApplies:s,cmpLoaded:!1,cmpStatus:"stub"}):t.push(e)},a.addEventListener("message",(function(e){const t="string"==typeof e.data;let a={};if(t)try{a=JSON.parse(e.data)}catch(e){}else a=e.data;const n="object"==typeof a&&null!==a?a.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(a,s){let o={__tcfapiReturn:{returnValue:a,success:s,callId:n.callId}};e&&e.source&&e.source.postMessage&&e.source.postMessage(t?JSON.stringify(o):o,"*")}),n.parameter)}),!1))};airgap.ready((t=>{"TCF_EU"===t.loadOptions.consentManagerConfig.initialViewStateByPrivacyRegime[t.getRegimes()[0]]&&("undefined"!=typeof module?module.exports=e:e())}))}();</script> <script> self.airgap = {overrides: [],cookieOverrides: [],...self.airgap,};const allowGcmAdvanced = (event) => {if (event.purposes.has('GcmAdvanced')) {event.allow();}};self.airgap.overrides.push({override: allowGcmAdvanced});self.airgap.cookieOverrides.push(allowGcmAdvanced);</script> <script data-cfasync="false" data-local-sync="allow-network-observable" data-prompt="1" data-report-only="off" data-dismissed-view-state="Collapsed" data-tcf-ui-dismissed-view-state="Collapsed" data-ui-shadow-root="open" data-privacy-policy="https://www.techtarget.com/privacy-policy/" src="https://transcend-cdn.com/cm/ef49a3f1-d8c1-47d6-88fc-50e41130631f/airgap.js" ></script> <script>console.log('[Transcend] confirmed:',airgap.getConsent?.().confirmed,[...airgap.getRegimes?.()][0])</script> <script async>!async function(){const t={detected:null};try{const e=await fetch("https://www3.doubleclick.net",{method:"HEAD",mode:"no-cors",cache:"no-store"});t.detected=!!e.redirected}catch(e){t.detected=!0}const e=window.localStorage.getItem("isRobot");e&&(t.isRobotValue="true"===e),window.adBlocker=t}();</script> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" ></script> <link rel="preconnect" href="https://cdn.cookielaw.org" /> <link rel="preconnect" href="https://fonts.gstatic.com" /> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://www.googletagmanager.com" />  <script>window.NREUM||(NREUM={});NREUM.info = {"agent":"","beacon":"bam.eu01.nr-data.net","errorBeacon":"bam.eu01.nr-data.net","licenseKey":"NRJS-26ae6a3b09493bbcc87","applicationID":"514059305","agentToken":null,"applicationTime":28.085758,"transactionName":"MhBSZQoZWEEDU0ZaXgtac0QLDFlfTR9BXFcRAlFDHVVSVxRVXlxBCBBeRQ==","queueTime":0,"ttGuid":"60129f2b23867eb4"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]},feature_flags:["soft_nav"],distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"538480682",accountID:"3936348",trustKey:"3288925",xpid:"Vw8EV1VXABAFVVVSAggEVlE=",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"514059305",browserID:"538480682"};;/*! For license information please see nr-loader-spa-1.312.1.min.js.LICENSE.txt */
(()=>{var e,t,r={384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>a,Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),o=r(1910);const a={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,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},(0,o.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>c,P3:()=>d,XX:()=>i,Yy:()=>a,df:()=>s,qY:()=>n,v4:()=>o});const n="events",i="jserrors",s="browser/blobs",o="rum",a="browser/logs",c={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"},d={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.softNav]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.sessionReplay]:8,[c.logging]:9,[c.genericEvents]:10},u={[c.pageViewEvent]:o,[c.pageViewTiming]:n,[c.ajax]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:s,[c.sessionReplay]:s,[c.logging]:a,[c.genericEvents]:"ins"}},944:(e,t,r)=>{"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(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),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>s,ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},s={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},o="log",a=n.K7.logging},1541:(e,t,r)=>{"use strict";r.d(t,{$5:()=>d,B5:()=>c,Ux:()=>o,YA:()=>a,fQ:()=>i});var n=r(5871);const i={MFE:"MFE",BA:"BA"};function s(e,t){if(!e||!t?.init.api.allow_registered_children)return[];const r=t.runtime.registeredEntities;return r?.filter(t=>t.metadata.timings?.asset?.endsWith(e)).map(e=>e.metadata.target)||[]}function o(e,t){if(!u(t))return{};const r=t.agentRef.runtime.appMetadata.agents[0].entityGuid;return e?e.attributes:{"entity.guid":r,appId:t.agentRef.info.applicationID}}function a(e,t){return c(e,t)?{"child.id":e.id,"child.type":e.type,...o(void 0,t)}:{}}function c(e,t){return!!e&&!!u(t)&&t.agentRef.init.api.duplicate_registered_data}function d(e){if(!e?.init.api.allow_registered_children)return[void 0];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...s(r[i--],e))}catch(e){}return t.length||t.push(void 0),t}function u(e){return 2===e?.harvestEndpointVersion}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>a,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),o=r(2646);function a(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,a=i.i.handlers;if(s&&!s.aborted&&s.backlog&&a){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=a[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof o.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete a[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(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],s=e[2];n.apply(i,s)}})}},1738:(e,t,r)=>{"use strict";r.d(t,{U:()=>f,Y:()=>l});var n=r(3241),i=r(9908),s=r(1863),o=r(944),a=r(3969),c=r(8362),d=r(860),u=r(4261);function l(e,t,r,s){const l=s||r;!l||l[e]&&l[e]!==c.d.prototype[e]||(l[e]=function(){(0,i.p)(a.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:u.Pl+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,o.R)(23,e)}})}function f(e,t,r,n,o){const a=e.info;null===r?delete a.jsAttributes[t]:a.jsAttributes[t]=r,(o||null===r)&&(0,i.p)(u.Pl+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},1741:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(i.$9,e,t)}start(){return this.#e(i.d3)}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},1910:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},2555:(e,t,r)=>{"use strict";r.d(t,{D:()=>a,f:()=>o});var n=r(384),i=r(8122);const s={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};function o(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}const a=e=>(0,i.a)(e,s)},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>o,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>a,uh:()=>i,wk:()=>s});const n="NRBA",i="SESSION",s=144e5,o=18e5,a={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},2843:(e,t,r)=>{"use strict";r.d(t,{G:()=>s,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)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(6154);const i="newrelic";function s(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});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 s(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Xh:()=>c,Zp:()=>i,kd:()=>d,mq:()=>a,nf:()=>o,qN:()=>s});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],s=["focus","blur"],o=4,a=1e3,c=2e3,d=["PageAction","UserAction","BrowserPerformance"],u={RESOURCES:"experimental.resources",REGISTER:"register"}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>u});var n=r(7836),i=r(5607),s=r(1541);const o="nr@original:".concat(i.W),a=50;var c=Object.prototype.hasOwnProperty,d=!1;function u(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,o){r||(r="");const a="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];f(u)||(e[d]=i(u,a?d+r:r,n,d,s,o))}},i.flag=o,i;function i(t,n,i,d,h,p){return f(t)?t:(n||(n=""),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){l([e],r)}for(var n in e)c.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,c,f,g;let m,v;try{c=this,o=[...arguments],v=p?(0,s.$5)(r):[void 0],f="function"==typeof i?i(o,c):i||{}}catch(t){l([t,"",[o,c,d],f],e)}u(n+"start",[o,c,d,v],f,h);const y=performance.now();let b;try{return g=t.apply(c,o),b=performance.now(),g}catch(e){throw b=performance.now(),u(n+"err",[o,c,e,v],f,h),m=e,m}finally{const e=b-y,t={start:y,end:b,duration:e,isLongTask:e>=a,methodName:d,thrownError:m};t.isLongTask&&u("long-task",[t,c,v],f,h),u(n+"end",[o,c,g,v],f,h)}}}function u(r,n,i,s){if(!d||t){var o=d;d=!0;try{e.emit(r,n,i,t,s)}catch(t){l([t,r,n,i],e)}d=o}}}function l(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function f(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=o;var i=s.handlers={};function s(e,t,r,s){o(s||n.d,i,e,t,r)}function o(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var o=t[s]=t[s]||{};(o[r]=o[r]||[]).push([e,i])}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>a,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>s,d3:()=>o,jx:()=>l,sl:()=>f,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",s="resource",o="-start",a="-end",c="fn"+o,d="fn"+a,u="pushState",l=1e3,f=3e4},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),o=r(3969),a=r(993);function c(e,t,r={},c=a.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(o.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)(a.ET,[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(a.p_).some(t=>t===e.toUpperCase().trim())}},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 s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>l,OV:()=>s,Qu:()=>f,TZ:()=>c,ih:()=>h,pP:()=>a,t1:()=>u,tC:()=>i,wD:()=>d});var n=r(860);const i=["click","keydown","submit"],s="popstate",o="api",a="initialPageLoad",c=n.K7.softNav,d=5e3,u=500,l={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},f={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},h={IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>a,rs:()=>i,xV:()=>o,z_:()=>s});const n=r(860).K7.metrics,i="sm",s="cm",o="storeSupportabilityMetrics",a="storeEventMetrics"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},4261:(e,t,r)=>{"use strict";r.d(t,{$9:()=>u,BL:()=>c,CH:()=>p,Dl:()=>R,Fw:()=>w,PA:()=>v,Pl:()=>n,Pv:()=>x,Tb:()=>f,U2:()=>o,V1:()=>A,Wb:()=>T,bt:()=>b,cD:()=>y,d3:()=>E,dT:()=>d,eY:()=>g,fF:()=>h,hG:()=>s,hw:()=>i,k6:()=>a,nb:()=>m,o5:()=>l});const n="api-",i=n+"ixn-",s="addPageAction",o="addToTrace",a="addRelease",c="finished",d="interaction",u="log",l="noticeError",f="pauseReplay",h="recordCustomEvent",p="recordReplay",g="register",m="setApplicationVersion",v="setCurrentRouteName",y="setCustomAttribute",b="setErrorHandler",w="setPageViewName",R="setUserId",E="start",T="wrapLogger",A="measure",x="consent"},5205:(e,t,r)=>{"use strict";r.d(t,{j:()=>x});var n=r(384),i=r(1741);var s=r(2555),o=r(3333);const a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(2614),d=r(944),u=r(8122);const l="[data-nr-mask]",f=e=>(0,u.a)(e,(()=>{const e={feature_flags:[],experimental:{allow_registered_children:!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},api:{get allow_registered_children(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.allow_registered_children},set allow_registered_children(t){e.experimental.allow_registered_children=t},duplicate_registered_data:!1},browser_consent_mode:{enabled:!1},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},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:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$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:c.wk,inactiveMs:c.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){a(t)?e.mask_selector="".concat(t,",").concat(l):""===t||null===t?e.mask_selector=l:(0,d.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){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,d.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,d.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}})());var h=r(6154),p=r(9324);let g=0;const m={buildEnv:p.F3,distMethod:p.Xs,version:p.xv,originTime:h.WN},v={consented:!1},y={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||v.consented},set consented(e){v.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,harvester:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++g}},b=e=>{const t=(0,u.a)(e,y),r=Object.keys(m).reduce((e,t)=>(e[t]={value:m[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)},w=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var R=r(7836),E=r(3241);const T={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A=e=>(0,u.a)(e,T);function x(e,t={},r,o){let{init:a,info:c,loader_config:d,runtime:u={},exposed:l=!0}=t;if(!c){const e=(0,n.pV)();a=e.init,c=e.info,d=e.loader_config}e.init=f(a||{}),e.loader_config=A(d||{}),c.jsAttributes??={},h.bv&&(c.jsAttributes.isWorker=!0),e.info=(0,s.D)(c);const p=e.init;e.runtime??=b(u),p.proxy.assets&&w(p.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,n.pV)();Object.getOwnPropertyNames(i.W.prototype).forEach(r=>{const n=i.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let s=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return s?s(...t):n})})}(e),e.runtime.loaderType=r,e.ee=R.ee.get(e.agentIdentifier),e.exposed=l,(0,E.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.runtime.configured=!0)}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>o,SR:()=>s,rF:()=>a});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function o(e){return!0===e?.session_replay.preload&&s(e)}function a(e,t){try{if("string"==typeof t?.type){if("password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,Qr:()=>c,sB:()=>a});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(s())return e();const r=(0,i.J)(e),o=setInterval(()=>{s()&&(clearInterval(o),r())},500);(0,n.sp)("load",r,t)}function a(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},5871:(e,t,r)=>{"use strict";r.d(t,{AZ:()=>u,QL:()=>l,Qr:()=>f});var n=r(6154),i=r(1863),s=r(9119),o=r(7866);let a;try{a=u(l())[0]}catch(e){a=u(e)[0]}const c=new Set;let d=[];if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&e.name.endsWith(".js"))(e)){c.size>250&&c.delete(c.values().next().value),c.add(e);const t=[];d.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),d=d.filter((e,r)=>!t.includes(r))}})}).observe({type:"resource",buffered:!0})}function u(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(o.cn)||e.match(o.hB)||e.match(o.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function l(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function f(){const e={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,asset:void 0,type:"unknown"},t=l();if(!t)return e;const r=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const o=u(t),f=(o.length>1?o.filter(e=>!a.endsWith(e)&&!e.endsWith(a)):o)[0];if(!f)return e;if(r.includes(f))return e.asset=(0,s.L)(r),e.type="inline",e;const h=performance.getEntriesByType("resource").find(p)||[...c].find(p);function p(e){const t=(0,s.L)(e.name);return t.endsWith(f)||f.endsWith(t)}function g(t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}h?g(h):function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1}(f)&&(e.asset=f,e.type="preload",d.push({addedAt:(0,i.t)(),test:e=>!!p(e)&&(g(e),!0)}))}catch(m){}return e}},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>s,gm:()=>o,lR:()=>l,m:()=>c,mw:()=>a,sb:()=>u,zk:()=>h});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),c=""+o?.location,d=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)(),h=()=>{const e=o?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<o.performance.now())return e}},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,Qb:()=>l,TZ:()=>i,Ug:()=>o,Vh:()=>s,_s:()=>a,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,s="errorDuringReplay",o=.12,a={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},d={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"}},u=5e3,l={API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"}},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})},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>o,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function o(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,o;i>0?(s=r.substring(0,i),o=r.substring(i)):(s=r,o="*");let[c]=s.split(":");n.push({hostname:a(c),pathname:a(o,!0)})}}function a(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},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{}}}},7699:(e,t,r)=>{"use strict";r.d(t,{It:()=>s,KC:()=>a,No:()=>i,qh:()=>o});var n=r(860);const i=16e3,s=1e6,o="SESSION_ERROR",a={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>i});var n=r(6154);const i=e=>n.RI&&!0===e?.privacy.cookies_enabled},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>a,ee:()=>c});var n=r(384),i=r(8990),s=r(2646),o=r(5607);const a="nr@context:".concat(o.W),c=function e(t,r){var n={},o={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.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,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var a=h(n);g(e).forEach(e=>{e.apply(a,r)});var d=v()[o[e]];d&&d.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])=>{o[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()[o[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 s.y?e:e?(0,i.I)(e,a,()=>new s.y(a)):new s.y(a)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c)},7866:(e,t,r)=>{"use strict";r.d(t,{Nc:()=>s,cn:()=>a,fL:()=>i,h3:()=>n,hB:()=>o});const n=/function (.+?)\s*\(/,i=/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,s=/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,o=/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i,a=/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i},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)),s=0===Object.keys(r).length?e:r;for(let o in s)if(void 0!==e[o])try{if(null===e[o]){r[o]=null;continue}Array.isArray(e[o])&&Array.isArray(t[o])?r[o]=Array.from(new Set([...e[o],...t[o]])):e[o]instanceof Map||e[o]instanceof Set||e[o]instanceof Date||e[o]instanceof RegExp?r[o]=e[o]:"object"==typeof e[o]&&"object"==typeof t[o]?r[o]=i(e[o],t[o]):r[o]=e[o]}catch(e){r[o]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),o=r(6154);const a={},c=o.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(a[t.debugId]++)return t;a[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(o.RI&&h(document,f),c&&h(c.prototype,f),h(o.gm,f)),t.on(d+"-start",function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)&&"newrelic"!==e[0]){var i=(0,s.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(u+"-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,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},8362:(e,t,r)=>{"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},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}},9119:(e,t,r)=>{"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},9324:(e,t,r)=>{"use strict";r.d(t,{AJ:()=>o,F3:()=>i,Xs:()=>s,Yq:()=>a,xv:()=>n});const n="1.312.1",i="PROD",s="CDN",o="@newrelic/rrweb",a="1.1.0"},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>a,ZF:()=>c,bz:()=>o,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function s(e,t){return e?15&e[t]:16*Math.random()|0}function o(){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?s(t,r++).toString(16):"y"===e?(3&s()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const o=[];for(var a=0;a<e;a++)o.push(s(r,i++).toString(16));return o.join("")}function c(){return a(16)}function d(){return a(32)}},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,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,i),s.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.312.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.312.1.PROD:",i.l=(r,n,s,o)=>{if(e[r])e[r].push(n);else{var a,c;if(void 0!==s)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+s){a=l;break}}if(!a){c=!0;var f={478:"sha512-dZhtzLTOyIsYHGHWAipD4+6jjzEIycTqL1F9NwinUiYL8cf0kIXf7WUbskVMB7p/nhDF+zJ9Bfd6LU9PMn0Yhw==",249:"sha512-SJV3E/3SdEyaahYm8FHEFwhJvDQy/nRJJV/o+18MgXENJWR/8tfvIKfc4LE1xV9RniczXT7eQLcZi2G99UlugA==",212:"sha512-dRFaJY5mEo/nxzPqxS/sHnvU66fpkTff91nWUFOafyPR61R+r2GZiy81lT47BWA4MouemCj4tvhHmn8Ofh/UOg=="};(a=document.createElement("script")).charset="utf-8",i.nc&&a.setAttribute("nonce",i.nc),a.setAttribute("data-webpack",t+s),a.src=r,0!==a.src.indexOf(window.location.origin+"/")&&(a.crossOrigin="anonymous"),f[o]&&(a.integrity=f[o])}e[r]=[n];var h=(t,n)=>{a.onerror=a.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(n)),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),c&&document.head.appendChild(a)}},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 s=new Promise((r,i)=>n=e[t]=[r,i]);r.push(n[2]=s);var o=i.p+i.u(t),a=new Error;i.l(o,r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;a.message="Loading chunk "+t+" failed: ("+s+": "+o+")",a.name="ChunkLoadError",a.type=s,a.request=o,n[1](a)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,s,[o,a,c]=r,d=0;if(o.some(t=>0!==e[t])){for(n in a)i.o(a,n)&&(i.m[n]=a[n]);if(c)c(i)}for(t&&t(r);d<o.length;d++)s=o[d],i.o(e,s)&&e[s]&&e[s][0](),e[s]=0},r=self["webpackChunk:NRBA-1.312.1.PROD"]=self["webpackChunk:NRBA-1.312.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(8362),t=i(860);const r=Object.values(t.K7);var n=i(5205);var s=i(9908),o=i(1863),a=i(4261),c=i(1738);var d=i(1687),u=i(4234),l=i(5289),f=i(6154),h=i(944),p=i(5270),g=i(7767),m=i(6389),v=i(7699);class y extends u.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,m.J)(()=>{(0,d.Ak)(e,this.featureName),t()}))}):(0,d.Ak)(e,t)}importAggregator(e,t,r={}){if(this.featAggregate)return;const n=async()=>{let n;await this.deferred;try{if((0,g.V)(e.init)){const{setupAgentSession:t}=await i.e(478).then(i.bind(i,8766));n=t(e)}}catch(e){(0,h.R)(20,e),this.ee.emit("internal-error",[e]),(0,s.p)(v.qh,[e],void 0,this.featureName,this.ee)}try{if(!this.#t(this.featureName,n,e.init))return(0,d.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:i}=await t();this.featAggregate=new i(e,r),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,h.R)(34,e),this.abortHandler?.(),(0,d.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1),this.ee&&this.ee.abort()}};f.RI?(0,l.GG)(()=>n(),!0):n()}#t(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,p.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}}var b=i(6630),w=i(2614),R=i(3241);class E extends y{static featureName=b.T;constructor(e){var t;super(e,b.T),this.setupInspectionEvents(),t=e,(0,c.Y)(a.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,s.p)(a.Pl+a.Fw,[(0,o.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>i.e(478).then(i.bind(i,5839)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,R.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,l.sB)(t=>{e(t,"DOMContentLoaded")}),(0,l.GG)(t=>{e(t,"load")}),(0,l.Qr)(t=>{e(t,"navigate")}),this.ee.on(w.tS.UPDATE,(e,t)=>{(0,R.W)({type:"lifecycle",name:"session",data:t})})}}var T=i(384);class A extends e.d{constructor(e){var t;(super(),f.gm)?(this.features={},(0,T.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(E),(0,n.j)(this,e,e.loaderType||"agent"),t=this,(0,c.Y)(a.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,c.U)(t,e,r,a.cD,n);(0,h.R)(40,typeof r)}else(0,h.R)(39,typeof e)},t),function(e){(0,c.Y)(a.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,h.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,s.p)(a.Pl+"setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,c.U)(e,"enduser.id",t,a.Dl,!0)},e)}(this),function(e){(0,c.Y)(a.nb,function(t){if("string"==typeof t||null===t)return(0,c.U)(e,"application.version",t,a.nb,!1);(0,h.R)(42,typeof t)},e)}(this),function(e){(0,c.Y)(a.d3,function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,c.Y)(a.Pv,function(t=!0){if("boolean"==typeof t){if((0,s.p)(a.Pl+a.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum()})}}else(0,h.R)(65,typeof t)},e)}(this),this.run()):(0,h.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return r.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),n=[...this.desiredFeatures];n.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),n.forEach(r=>{if(!e[r.featureName]&&r.featureName!==t.K7.pageViewEvent)return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,h.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,h.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,T.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var x=i(2843),S=i(782);class _ extends y{static featureName=S.T;constructor(e){super(e,S.T),f.RI&&((0,x.u)(()=>(0,s.p)("docHidden",[(0,o.t)()],void 0,S.T,this.ee),!0),(0,x.G)(()=>(0,s.p)("winPagehide",[(0,o.t)()],void 0,S.T,this.ee)),this.importAggregator(e,()=>i.e(478).then(i.bind(i,9917))))}}var O=i(3969);class P extends y{static featureName=O.TZ;constructor(e){super(e,O.TZ),f.RI&&document.addEventListener("securitypolicyviolation",e=>{(0,s.p)(O.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)}),this.importAggregator(e,()=>i.e(478).then(i.bind(i,6555)))}}var k=i(6774),N=i(3878),D=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,D.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return M(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,e?.cause)}function L(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(M(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function I(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,e.cause);return t.name=SyntaxError.name,t}return M(e.error)?e.error:C(e)}function M(e){return e instanceof Error&&!!e.stack}function B(e,r,n,i,a=(0,o.t)()){"string"==typeof e&&(e=new Error(e)),(0,s.p)("err",[e,a,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,s.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var H=i(1541),W=i(993),K=i(3785);function F(e,{customAttributes:t={},level:r=W.p_.INFO}={},n,i,s=(0,o.t)()){(0,K.R)(n.ee,e,t,r,!1,i,s)}function U(e,r,n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.hG,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}function V(e,r,n,i,c=(0,o.t)()){const{start:d,end:u,customAttributes:l}=r||{},f={customAttributes:l||{}};if("object"!=typeof f.customAttributes||"string"!=typeof e||0===e.length)return void(0,h.R)(57);const p=(e,t)=>null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(f.start=p(d,0),f.end=p(u,c),Number.isNaN(f.start)||Number.isNaN(f.end))(0,h.R)(57);else{if(f.duration=f.end-f.start,!(f.duration<0))return(0,s.p)(a.Pl+a.V1,[f,e,i],void 0,t.K7.genericEvents,n.ee),f;(0,h.R)(58)}}function G(e,r={},n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.fF,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}var z=i(5871),Y=i(9566);const Z=["name","id","type"];function q(e){(0,c.Y)(a.eY,function(t){return X(e,t)},e)}function X(e,r,n){(0,h.R)(54,"newrelic.register"),r||={},r.instance=(0,Y.LA)(8),r.type=H.fQ.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent=n||{get id(){return e.runtime.appMetadata.agents[0].entityGuid},type:H.fQ.BA};const i=(0,z.Qr)(),a={};Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||H.fQ.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Z.includes(e)||(a["source.".concat(e)]=t)}),r.isolated??=!0;let c=()=>{};const d=e.runtime.registeredEntities;if(!r.isolated){const e=d.find(({metadata:{target:{id:e}}})=>e===r.id&&!r.isolated);if(e)return e}const u=e=>{r.blocked=!0,c=e};function l(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.allow_registered_children||u((0,m.J)(()=>(0,h.R)(55))),l(r.id)&&l(r.name)||u((0,m.J)(()=>(0,h.R)(48,r)));const f={addPageAction:(t,n={})=>y(U,[t,{...a,...n},e],r),deregister:()=>{g(),u((0,m.J)(()=>(0,h.R)(68)))},log:(t,n={})=>y(F,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>y(V,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>y(B,[t,{...a,...n},e],r),register:(t={})=>y(X,[e,t],f.metadata.target),recordCustomEvent:(t,n={})=>y(G,[t,{...a,...n},e],r),setApplicationVersion:e=>v("application.version",e),setCustomAttribute:(e,t)=>v(e,t),setUserId:e=>v("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:i}},p=()=>(r.blocked&&c(),r.blocked);function g(){i.reportedAt||(i.reportedAt=(0,o.t)(),f.recordCustomEvent("MicroFrontEndTiming",{assetUrl:i.asset,assetType:i.type,timeToLoad:i.registeredAt-i.fetchStart,timeToBeRequested:i.fetchStart,timeToFetch:i.fetchEnd-i.fetchStart,timeToRegister:i.registeredAt-i.fetchEnd,timeAlive:i.reportedAt-i.registeredAt}))}p()||(d.push(f),(0,x.G)(g));const v=(e,t)=>{p()||(a[e]=t)},y=(r,n,i)=>{if(p()&&r!==X)return;const a=(0,o.t)();(0,s.p)(O.xV,["API/register/".concat(r.name,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,a)}catch(e){(0,h.R)(50,e)}};return f}class Q extends y{static featureName=k.T;constructor(e){var t;super(e,k.T),t=e,(0,c.Y)(a.o5,(e,r)=>B(e,r,t),t),function(e){(0,c.Y)(a.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,c.Y)(a.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),q(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,s.p)("ierr",[C(t),(0,o.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),f.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,s.p)("err",[L(t),(0,o.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),f.gm.addEventListener("error",t=>{this.abortHandler&&(0,s.p)("err",[I(t),(0,o.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#r,this.importAggregator(e,()=>i.e(478).then(i.bind(i,2176)))}#r(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var J=i(8990);let ee=1;function te(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===f.gm?0:(0,J.I)(e,"nr@id",function(){return ee++})}function re(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,D.A)(e).length}catch(e){return}}}var ne=i(8139),ie=i(7836),se=i(3434);const oe={},ae=["open","send"];function ce(e,t){var r=e||ie.ee;const n=function(e){return(e||ie.ee).get("xhr")}(r);if(void 0===f.gm.XMLHttpRequest)return n;if(oe[n.debugId]++)return n;oe[n.debugId]=1,(0,ne.u)(r);var i=(0,se.YM)(n),s=f.gm.XMLHttpRequest,o=f.gm.MutationObserver,a=f.gm.Promise,c=f.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],p=f.gm.XMLHttpRequest=function(e){const r=new s(e),o=n.context(r);o.targets=(0,H.$5)(t);try{n.emit("new-xhr",[r],o),r.addEventListener(d,(a=o,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",w)}),(0,N.jT)(!1))}catch(e){(0,h.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var a;return r};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,p),p.prototype=s.prototype,i.inPlace(p.prototype,ae,"-xhr-",w),n.on("send-xhr-start",function(e,t){g(e,t),function(e){l.push(e),o&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",g),o){var m=a&&a.resolve();if(!c&&!a){var v=1,y=document.createTextNode(v);new o(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<l.length;e++)g(0,l[e]);l.length&&(l=[])}function w(e,t){return t}return n}var de="fetch-",ue=de+"body-",le=["arrayBuffer","blob","json","text","formData"],fe=f.gm.Request,he=f.gm.Response,pe="prototype";const ge={};function me(e,t){const r=function(e){return(e||ie.ee).get("fetch")}(e);if(!(fe&&he&&f.gm.fetch))return r;if(ge[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},o=(0,H.$5)(t);var a;r.emit(i+"before-start",[e],n),n[ie.P]&&n[ie.P].dt&&(a=n[ie.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,a],c),c.then(function(e){return r.emit(i+"end",[null,e,o],c),e},function(e){throw r.emit(i+"end",[e,void 0,o],c),e})})}return ge[r.debugId]=1,le.forEach(e=>{n(fe[pe],e,ue),n(he[pe],e,ue)}),n(f.gm,"fetch",de),r.on(de+"end",function(e,t,n){var i=this;if(i.targets=n||[void 0],t){var s=t.headers.get("content-length");null!==s&&(i.rxSize=s),r.emit(de+"done",[null,t],i)}else r.emit(de+"done",[e],i)}),r}var ve=i(7485);class ye{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,Y.ZF)(),o=(0,Y.el)(),a=Date.now(),c={spanId:s,traceId:o,timestamp:a};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,o),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,a,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,o,a,r,n,i)),c}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,s){if(!("function"==typeof f.gm?.btoa))return null;var o={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(o.d.tk=s),btoa((0,D.A)(o))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ve.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var be=i(9300),we=i(7295);function Re(e){return"string"==typeof e?e:e instanceof(0,T.dV)().o.REQ?e.url:f.gm?.URL&&e instanceof URL?e.href:void 0}var Ee=["load","error","abort","timeout"],Te=Ee.length,Ae=(0,T.dV)().o.REQ,xe=(0,T.dV)().o.XHR;const Se="X-NewRelic-App-Data";class _e extends y{static featureName=be.T;constructor(e){super(e,be.T),this.dt=new ye(e),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};f.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};Oe(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}me(this.ee,e),ce(this.ee,e),function(e,r,n,i){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=T,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){x(t,e)},(0,N.jT)(!1)),f.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,N.jT)(!1))}function c(e){this.params={method:e[0]},Oe(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=re(i);a&&(n.txSize=a)}this.startTime=(0,o.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit("internal-error",[e])}catch(e){}}};for(var c=0;c<Te;c++)t.addEventListener(Ee[c],this.listener,(0,N.jT)(!1))}function l(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 h(e,t){var r=""+te(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+te(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function g(){this.endTime=(0,o.t)()}function m(e,t){t instanceof xe&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function v(e,t){t instanceof xe&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function y(e,t,r){t instanceof xe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,o.t)()))}function b(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,o.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&f.RI&&(t=""+f.gm.location.href):e[0]&&e[0].url?t=e[0].url:f.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,ve.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)a(e[0].headers,n)&&(this.dt=n);else{var s={};for(var o in r)s[o]=r[o];s.headers=new Headers(r.headers||{}),a(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function a(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 R(e,t){this.params={},this.metrics={},this.startTime=(0,o.t)(),this.dt=t;let[r,n={}]=e;Oe(this,Re(r));const i=(""+(r&&r instanceof Ae&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.body=n.body,this.txSize=re(n.body)||0}function E(e,t){if(this.endTime=(0,o.t)(),this.params||(this.params={}),(0,we.iW)(this.params))return;let r;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(r=+this.rxSize);const n={txSize:this.txSize,rxSize:r,duration:(0,o.t)()-this.startTime},i=[this.params,n,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>A(i,this,e))}function T(e){const t=this.params,r=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Te;t++)e.removeEventListener(Ee[t],this.listener,!1);if(t.aborted)return;if((0,we.iW)(t))return;r.duration=(0,o.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):x(this,e),r.cbTime=this.cbTime;const n=[t,r,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>A(n,this,e))}function A(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function x(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?re(e.response):"text"===r||""===r||void 0===r?re(e.responseText):void 0}(n,e.lastSize);if(i&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(Se)>=0){var o=n.getResponseHeader(Se);o&&((0,s.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=o.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",c),r.on("open-xhr-end",d),r.on("send-xhr-start",u),r.on("xhr-cb-time",l),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",g),r.on("addEventListener-end",m),r.on("removeEventListener-end",v),r.on("fn-end",b),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",y),r.on("fetch-done",E)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>i.e(478).then(i.bind(i,3845)))}}function Oe(e,t){var r=(0,ve.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 Pe={},ke=["pushState","replaceState"];function Ne(e){const t=function(e){return(e||ie.ee).get("history")}(e);return!f.RI||Pe[t.debugId]++||(Pe[t.debugId]=1,(0,se.YM)(t).inPlace(window.history,ke,"-")),t}var De=i(3738);function je(e){(0,c.Y)(a.BL,function(r=Date.now()){const n=r-f.WN;n<0&&(0,h.R)(62,r),(0,s.p)(O.XG,[a.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:a.BL,start:r,origin:"nr"}),(0,s.p)(a.Pl+a.hG,[n,a.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:Ce,bD:Le,d3:Ie,Kp:Me,TZ:Be,Lc:He,uP:We,Rz:Ke}=De;class Fe extends y{static featureName=Be;constructor(e){var r;super(e,Be),r=e,(0,c.Y)(a.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const n={n:e.name,s:e.start-f.WN,e:(e.end||e.start)-f.WN,o:e.origin||"",t:"api"};n.s<0||n.e<0||n.e<n.s?(0,h.R)(61,{start:n.s,end:n.e}):(0,s.p)("bstApi",[n],void 0,t.K7.sessionTrace,r.ee)},r),je(e);if(!(0,g.V)(e.init))return void this.deregisterDrain();const n=this.ee;let d;Ne(n),this.eventsEE=(0,ne.u)(n),this.eventsEE.on(We,function(e,t){this.bstStart=(0,o.t)()}),this.eventsEE.on(He,function(e,r){(0,s.p)("bst",[e[0],r,this.bstStart,(0,o.t)()],void 0,t.K7.sessionTrace,n)}),n.on(Ke+Ie,function(e){this.time=(0,o.t)(),this.startPath=location.pathname+location.hash}),n.on(Ke+Me,function(e){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,n)});try{d=new PerformanceObserver(e=>{const r=e.getEntries();(0,s.p)(Ce,[r],void 0,t.K7.sessionTrace,n)}),d.observe({type:Le,buffered:!0})}catch(e){}this.importAggregator(e,()=>i.e(478).then(i.bind(i,6974)),{resourceObserver:d})}}var Ue=i(6344);class Ve extends y{static featureName=Ue.TZ;#n;recorder;constructor(e){var r;let n;super(e,Ue.TZ),r=e,(0,c.Y)(a.CH,function(){(0,s.p)(a.CH,[],void 0,t.K7.sessionReplay,r.ee)},r),function(e){(0,c.Y)(a.Tb,function(){(0,s.p)(a.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);try{n=JSON.parse(localStorage.getItem("".concat(w.H3,"_").concat(w.uh)))}catch(e){}(0,p.SR)(e.init)&&this.ee.on(a.CH,()=>this.#i()),this.#s(n)&&this.importRecorder().then(e=>{e.startRecording(Ue.Qb.PRELOAD,n?.sessionReplayMode)}),this.importAggregator(this.agentRef,()=>i.e(478).then(i.bind(i,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,s.p)(Ue.Vh,[e],void 0,this.featureName,this.ee))})}#s(e){return e&&(e.sessionReplayMode===w.g.FULL||e.sessionReplayMode===w.g.ERROR)||(0,p.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#n??=Promise.all([i.e(478),i.e(249)]).then(i.bind(i,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#n)}#i(){this.blocked||(this.featAggregate?this.featAggregate.mode!==w.g.FULL&&this.featAggregate.initializeRecording(w.g.FULL,!0,Ue.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(Ue.Qb.API,w.g.FULL)}))}}var Ge=i(3962);class ze extends y{static featureName=Ge.TZ;constructor(e){if(super(e,Ge.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,c.Y)(a.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var a={},c=this,d="function"==typeof i;return(0,s.p)(O.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((d?"":"no-")+"fn-start",[(0,o.t)(),c,d],a),d)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],a),t}finally{r.emit("fn-end",[(0,o.t)()],a)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{c.Y.apply(this,[r,function(){return(0,s.p)(a.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,c.Y)(a.PA,function(){(0,s.p)(a.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!f.RI||!(0,T.dV)().o.MO)return;const r=Ne(this.ee);try{this.removeOnAbort=new AbortController}catch(e){}Ge.tC.forEach(e=>{(0,N.sp)(e,e=>{l(e)},!0,this.removeOnAbort?.signal)});const n=()=>(0,s.p)("newURL",[(0,o.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n),(0,N.sp)(Ge.OV,e=>{l(e),(0,s.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let d=!1;const u=new((0,T.dV)().o.MO)((e,t)=>{d||(d=!0,requestAnimationFrame(()=>{(0,s.p)("newDom",[(0,o.t)()],void 0,this.featureName,this.ee),d=!1}))}),l=(0,m.s)(e=>{"loading"!==document.readyState&&((0,s.p)("newUIEvent",[e],void 0,this.featureName,this.ee),u.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),u.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>i.e(478).then(i.bind(i,4393)),{domObserver:u})}}var Ye=i(3333),Ze=i(9119);const qe={},Xe=new Set;function $e(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Qe{constructor(e,t){this.timestamp=(0,o.t)(),this.currentUrl=(0,Ze.L)(window.location.href),this.socketId=(0,Y.LA)(8),this.requestedUrl=(0,Ze.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class Je extends y{static featureName=Ye.TZ;constructor(e){super(e,Ye.TZ);const r=e.init.feature_flags.includes("websockets"),n=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,r];var d;let u,l;if(d=e,(0,c.Y)(a.hG,(e,t)=>U(e,t,d),d),function(e){(0,c.Y)(a.fF,(t,r)=>G(t,r,e),e)}(e),je(e),q(e),function(e){(0,c.Y)(a.V1,(t,r)=>V(t,r,e),e)}(e),r&&(l=function(e){if(!(0,T.dV)().o.WS)return e;const t=e.get("websockets");if(qe[t.debugId]++)return t;qe[t.debugId]=1,(0,x.G)(()=>{const e=(0,o.t)();Xe.forEach(r=>{r.nrData.closedAt=e,r.nrData.closeCode=1001,r.nrData.closeReason="Page navigating away",r.nrData.closeWasClean=!1,r.nrData.openedAt&&(r.nrData.connectedDuration=e-r.nrData.openedAt),t.emit("ws",[r.nrData],r)})});class r extends WebSocket{static name="WebSocket";static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return r.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Qe(e[0],e[1]),this.addEventListener("open",()=>{this.nrData.openedAt=(0,o.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Xe.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=$e(e.data);this.nrData.messageOrigin??=(0,Ze.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,o.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Xe.delete(this),t.emit("ws",[this.nrData],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=$e(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return f.gm.WebSocket=r,t}(this.ee)),f.RI){if(me(this.ee,e),ce(this.ee,e),u=Ne(this.ee),e.init.user_actions.enabled){function h(t){const r=(0,ve.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function p(){u.emit("navChange")}Ye.Zp.forEach(e=>(0,N.sp)(e,e=>(0,s.p)("ua",[e],void 0,this.featureName,this.ee),!0)),Ye.qN.forEach(e=>{const t=(0,m.s)(e=>{(0,s.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,N.sp)(e,t)}),f.gm.addEventListener("error",()=>{(0,s.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),this.ee.on("open-xhr-start",(e,r)=>{h(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,s.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)})}),this.ee.on("fetch-start",e=>{e.length>=1&&!h(Re(e[0]))&&(0,s.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),u.on("pushState-end",p),u.on("replaceState-end",p),window.addEventListener("hashchange",p,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",p,(0,N.jT)(!0,this.removeOnAbort?.signal))}if(e.init.performance.resources.enabled&&f.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,s.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}r&&l.on("ws",e=>{(0,s.p)("ws-complete",[e],void 0,this.featureName,this.ee)});try{this.removeOnAbort=new AbortController}catch(g){}this.abortHandler=()=>{this.removeOnAbort?.abort(),this.abortHandler=void 0},n.some(e=>e)?this.importAggregator(e,()=>i.e(478).then(i.bind(i,8019))):this.deregisterDrain()}}var et=i(2646);const tt=new Map;function rt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,h.R)(29);const o=function(e){return(e||ie.ee).get("logger")}(e),a=(0,se.YM)(o,void 0,s),c=new et.y(ie.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[se.Jt]||t[r];return tt.set(d,c),a.inPlace(t,[r],"wrap-logger-",()=>tt.get(d),void 0,!0),o}var nt=i(1910);class it extends y{static featureName=W.TZ;constructor(e){var t;super(e,W.TZ),t=e,(0,c.Y)(a.$9,(e,r)=>F(e,r,t),t),function(e){(0,c.Y)(a.Wb,(t,r,{customAttributes:n={},level:i=W.p_.INFO}={})=>{rt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),q(e);const r=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,nt.i)(f.gm.console[t]),rt(r,f.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([e],t,n,i=[]){const{level:s,customAttributes:o,autoCaptured:a}=this;i.forEach(t=>{(0,K.R)(r,e,o,s,a,t)})}),this.importAggregator(e,()=>i.e(478).then(i.bind(i,5288)))}}new A({features:[_e,E,_,Fe,Ve,P,Q,Je,it,ze],loaderType:"spa"})})()})();</script> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> <script id="vwoCode">window._vwo_code=window._vwo_code||(function(){var d=document,vwoCodeEl=d.querySelector('#vwoCode'),account_id=734041,version=2.1,settings_tolerance=2000,library_tolerance=2500,use_existing_jquery=!1,is_spa=1,hide_element='body',hide_element_style='opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important',f=!1,code={use_existing_jquery:function(){return use_existing_jquery},library_tolerance:function(){return library_tolerance},hide_element_style:function(){return'{'+hide_element_style+'}'},finish:function(){if(!f){f=!0;var e=d.getElementById('_vis_opt_path_hides');if(e)e.parentNode.removeChild(e)}},finished:function(){return f},load:function(e){var t=d.createElement('script');t.fetchPriority='high';t.src=e;t.onerror=function(){_vwo_code.finish()};d.getElementsByTagName('head')[0].appendChild(t)},getVersion:function(){return version},getMatchedCookies:function(e){var t=[];if(document.cookie){t=document.cookie.match(e)||[]} return t},getCombinationCookie:function(){var e=code.getMatchedCookies(/(?:^|;)\s?(_vis_opt_exp_\d+_combi=[^;$]*)/gi);e=e.map(function(e){try{var t=decodeURIComponent(e);if(!/_vis_opt_exp_\d+_combi=(?:\d+,?)+\s*$/.test(t)){return''} return t}catch(e){return''}});var i=[];e.forEach(function(e){var t=e.match(/([\d,]+)/g);t&&i.push(t.join('-'))});return i.join('|')},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;window.settings_timer=setTimeout(function(){_vwo_code.finish()},settings_tolerance);var e=d.createElement('style'),t=hide_element?hide_element+'{'+hide_element_style+'}':'',i=d.getElementsByTagName('head')[0];e.setAttribute('id','_vis_opt_path_hides');vwoCodeEl&&e.setAttribute('nonce',vwoCodeEl.nonce);e.setAttribute('type','text/css');if(e.styleSheet)e.styleSheet.cssText=t;else e.appendChild(d.createTextNode(t));i.appendChild(e);var n=this.getCombinationCookie();this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&f='+ +is_spa+'&vn='+version+(n?'&c='+n:''));return settings_timer}};window._vwo_settings_timer=code.init();return code}());</script> <script async data-ot-ignore src="https://www.googletagmanager.com/gtm.js?id=GTM-5523ZCM" ></script> <script async data-ot-ignore src="https://www.googletagmanager.com/gtm.js?id=GTM-MTN2X7K" ></script><script src="https://loader.bridged.media/bridged-agent.js" async=""></script><script defer="" async="" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v18.0" data-ot-ignore="true"></script><link rel="modulepreload" href="/assets/entry.client-WQ4JFhQx.js"/><link rel="modulepreload" href="/assets/react-BqmUObHr.js"/><link rel="modulepreload" href="/assets/react-dom-B0RQ2kJA.js"/><link rel="modulepreload" href="/assets/jsx-runtime-DBNpHuQp.js"/><link rel="modulepreload" href="/assets/preload-helper-CbI0Klgk.js"/><link rel="modulepreload" href="/assets/root-g1L0_BjN.js"/><link rel="modulepreload" href="/assets/src-Y0ZzoQgU.js"/><link rel="modulepreload" href="/assets/src-CdyytUcs.js"/><link rel="modulepreload" href="/assets/errorBoundary-DmYlG005.js"/><link rel="modulepreload" href="/assets/index.es-_m7mwVXk.js"/><link rel="modulepreload" href="/assets/esm-c-7d8dMx.js"/><link rel="modulepreload" href="/assets/src-ConzfMuK2.js"/><link rel="modulepreload" href="/assets/src-Cl0B-dX-.js"/><link rel="modulepreload" href="/assets/src-C649mUwh.js"/><link rel="modulepreload" href="/assets/src-DhCzO63O.js"/><link rel="modulepreload" href="/assets/src-29dM-DRN.js"/><link rel="modulepreload" href="/assets/meta-CKzx_q_i.js"/><link rel="modulepreload" href="/assets/src-DrUZA_BS.js"/><link rel="modulepreload" href="/assets/striptags-C6Z8qEb3.js"/><link rel="modulepreload" href="/assets/src-DT8pN15R.js"/><link rel="modulepreload" href="/assets/src-gHZs4WkN2.js"/><link rel="modulepreload" href="/assets/src-Cuae8w-Y.js"/><link rel="modulepreload" href="/assets/src-Dk-W56OU2.js"/><link rel="modulepreload" href="/assets/src-B6W36Q0u.js"/><link rel="modulepreload" href="/assets/src-Btvz-lqp.js"/><link rel="modulepreload" href="/assets/src-4sW5lPB1.js"/><link rel="modulepreload" href="/assets/src-BGS4VtPw.js"/><link rel="modulepreload" href="/assets/src-ICN0g-KI.js"/><link rel="modulepreload" href="/assets/src-XrfQbmpM.js"/><link rel="modulepreload" href="/assets/src-CqxX1oo3.js"/><link rel="modulepreload" href="/assets/src-CAAvt38V.js"/><link rel="modulepreload" href="/assets/src-CW1a1kK92.js"/><link rel="modulepreload" href="/assets/src-BB6jB7X3.js"/><link rel="modulepreload" href="/assets/src-Cn3lWZ8t.js"/><link rel="modulepreload" href="/assets/src-CmpySRAv.js"/><link rel="modulepreload" href="/assets/src-BOW2TAy82.js"/><link rel="modulepreload" href="/assets/extends-DQyfp-FM.js"/><link rel="modulepreload" href="/assets/_baseForOwn-5n8zOHco.js"/><link rel="modulepreload" href="/assets/useIsomorphicLayoutEffect-CrpupiLT.js"/><link rel="modulepreload" href="/assets/toNumber-DMNTeGz6.js"/><link rel="modulepreload" href="/assets/_topic._index-CVsWdP1V.js"/><link rel="modulepreload" href="/assets/dist-CVDZOTen.js"/><link rel="modulepreload" href="/assets/src-7rC7uI2M.js"/><link rel="modulepreload" href="/assets/src-BwANJO-C2.js"/><link rel="modulepreload" href="/assets/src-C3iJimQX.js"/><link rel="modulepreload" href="/assets/src-CAnJkWy2.js"/><link rel="modulepreload" href="/assets/src-BTo5HBHy.js"/><link rel="modulepreload" href="/assets/src-D2FAMs-5.js"/><link rel="modulepreload" href="/assets/src-DpWtZdRX2.js"/><link rel="modulepreload" href="/assets/src-CB-kFddY.js"/><link rel="modulepreload" href="/assets/_topic._index-BER9lnXT.js"/><link rel="modulepreload" href="/assets/src-C5UoGtyW.js"/><link rel="modulepreload" href="/assets/string-BCKS3Bc8.js"/></head><body data-version="2.58.0" class="brand-itprotoday "><noscript><iframe title="gtm noscript 0" src="https://www.googletagmanager.com/ns.html?id=GTM-5523ZCM" height="0" width="0" style="display:none;visibility:hidden"></iframe><iframe title="gtm noscript 1" src="https://www.googletagmanager.com/ns.html?id=GTM-MTN2X7K" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="fb-root"></div><main data-theme="theme1" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads ad-banner ad-container" style="top:0;left:0;height:1px;width:1px;position:absolute"></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=""/></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" href="/documents" target="_self" data-discover="true">Documents</a><a class="SecondaryMenu-Link" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar" target="_self" data-discover="true">Online Events</a><a class="SecondaryMenu-Link" href="/advertise" target="_self" data-discover="true">Advertise</a><a class="SecondaryMenu-Link" href="/about-us" target="_self" data-discover="true">About</a></nav></div></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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" href="/" target="_self" data-discover="true"><img data-testid="logo-image" data-component="image" class="NavBase-LogoImage" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="ITPro Today Logo" title="ITPro Today Logo"/></a></div><div class="NavBase-RegisterWrapper"><div data-module="newsletter-signup-promo"><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_small NewsletterSignupPromo-Button_authIsDisabled NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" data-action-type="sign-up" data-name="subscribe-nav" href="/newsletter-signup" target="_self" data-discover="true"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_medium NewsletterSignupPromo-Button_authIsDisabled NewsletterSignupButton"><div data-component="social-share" class="SocialShare SocialShare_variant_layout Layout-SocialShare"><a target="_blank" rel="noreferrer" aria-label="Facebook" class="Layout-SocialLink" href="https://www.facebook.com/ITProToday/"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);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/ITProToday"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);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/itpro-today/"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);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="Youtube" class="Layout-SocialLink" href="https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);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/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a rel="noreferrer" aria-label="RSS" class="Layout-SocialLink" href="/rss.xml" target="_self" 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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);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" data-action-type="sign-up" data-name="subscribe-nav" href="/newsletter-signup" target="_self" data-discover="true"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);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 Cloud"><span class="MainMenu-MainTitle">Cloud<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/cloud-computing/cloud-services" target="_self" data-discover="true">Cloud Services</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/hybrid-cloud" target="_self" data-discover="true">Hybrid Cloud</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/private-cloud" target="_self" data-discover="true">Private Cloud</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/public-cloud" target="_self" data-discover="true">Public Cloud</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="/cloud-computing" target="_self" data-discover="true">Cloud</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/cloud-computing" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">SEE ALL Cloud</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc24f8d94b6143bd5/68d1575742ae229fcf9e9533/cloud_AI_fusion_concept_-_digital_art_showing_interconnected_cloud_icon_with_glowing_AI_circuits.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc24f8d94b6143bd5/68d1575742ae229fcf9e9533/cloud_AI_fusion_concept_-_digital_art_showing_interconnected_cloud_icon_with_glowing_AI_circuits.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="cloud AI fusion concept - digital art showing interconnected cloud icon with glowing AI circuits" title="cloud AI fusion concept - digital art showing interconnected cloud icon with glowing AI circuits"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true">The Pros and Cons of AI Agents for Cloud Administration</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true">The Pros and Cons of AI Agents for Cloud Administration</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/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 22, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">1 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="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt523754e60b684b20/68c33020ac52959a8551774a/digital_art_of_an_artificial_intelligence_computer_processor_unit.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt523754e60b684b20/68c33020ac52959a8551774a/digital_art_of_an_artificial_intelligence_computer_processor_unit.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="digital art of an artificial intelligence computer processor unit" title="digital art of an artificial intelligence computer processor unit"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true">Microsoft, OpenAI Continue To Push Beyond Their Partnership</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true">Microsoft, OpenAI Continue To Push Beyond Their Partnership</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 Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/esther-shittu" target="_self" data-discover="true">Esther Shittu<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/ai-business" target="_self" data-discover="true">AI Business</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">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 OS"><span class="MainMenu-MainTitle">OS<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/operating-systems/microsoft-windows" target="_self" data-discover="true">Microsoft Windows</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/windows-server" target="_self" data-discover="true">Windows Server</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/powershell" target="_self" data-discover="true">PowerShell</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/linux-os" target="_self" data-discover="true">Linux OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/sql-server" target="_self" data-discover="true">SQL Server</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/macos" target="_self" data-discover="true">MacOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/android-os" target="_self" data-discover="true">Android OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/chromeos" target="_self" data-discover="true">ChromeOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/ubuntu" target="_self" data-discover="true">Ubuntu</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/red-hat-os" target="_self" data-discover="true">Red Hat OS</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="/operating-systems" target="_self" data-discover="true">OS</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/operating-systems" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All OS</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-5" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt04700398a9275e3f/68941fb1eed222f599429eb9/cybersecurity-defense-1716x965_-_2025-08-06.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt04700398a9275e3f/68941fb1eed222f599429eb9/cybersecurity-defense-1716x965_-_2025-08-06.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Digital security and cybersecurity defense with hacker protection icon and privacy authentication lock on laptop" title="Digital security and cybersecurity defense with hacker protection icon and privacy authentication lock on laptop"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" href="/operating-systems/powershell" target="_self" data-discover="true">PowerShell</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-5" target="_self" data-discover="true">Securing PowerShell: How to Stop Prompt Injection Attacks, Part 5</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-5" target="_self" data-discover="true">Securing PowerShell: How to Stop Prompt Injection Attacks, Part 5</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/brien-posey" target="_self" data-discover="true">Brien Posey</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 13, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 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="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-4" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf0c83fa41152e43e/6893f7244c8a42107c10eb29/hacker-hand-1716x965_-_2025-08-06.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf0c83fa41152e43e/6893f7244c8a42107c10eb29/hacker-hand-1716x965_-_2025-08-06.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="hand coming through laptop screen to type on keyboard" title="hand coming through laptop screen to type on keyboard"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" href="/operating-systems/powershell" target="_self" data-discover="true">PowerShell</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-4" target="_self" data-discover="true">Securing PowerShell: How to Stop Prompt Injection Attacks, Part 4</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-4" target="_self" data-discover="true">Securing PowerShell: How to Stop Prompt Injection Attacks, Part 4</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/brien-posey" target="_self" data-discover="true">Brien Posey</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 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 IT Mgmt"><span class="MainMenu-MainTitle">IT Mgmt<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/it-management/it-operations" target="_self" data-discover="true">IT Operations</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/devops" target="_self" data-discover="true">DevOps</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/ops-and-more" target="_self" data-discover="true">Ops and More</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/it-sustainability" target="_self" data-discover="true">IT Sustainability</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/it-automation" target="_self" data-discover="true">IT Automation</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="/it-management" target="_self" data-discover="true">IT Mgmt</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-management" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All IT Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/it-sustainability/the-truth-about-renewable-energy-in-data-centers" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteb9af36fea299c7f/68c0715feaa12e2a44308cab/windup_lightbulb_contains_green_gears_surrounded_by_barren_landscape.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteb9af36fea299c7f/68c0715feaa12e2a44308cab/windup_lightbulb_contains_green_gears_surrounded_by_barren_landscape.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="windup lightbulb contains green gears surrounded by barren landscape" title="windup lightbulb contains green gears surrounded by barren landscape"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itSustainability ContentPreview-Category" href="/it-management/it-sustainability" target="_self" data-discover="true">IT Sustainability</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-sustainability/the-truth-about-renewable-energy-in-data-centers" target="_self" data-discover="true">The Truth About Renewable Energy in Data Centers</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-sustainability/the-truth-about-renewable-energy-in-data-centers" target="_self" data-discover="true">The Truth About Renewable Energy in Data Centers</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 Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/data-center-knowledge" target="_self" data-discover="true">Data Center Knowledge</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 9, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">1 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="/it-management/to-survive-server-crashes-it-needs-a-black-box-" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd034740155f1bbae/68b0789e04a44432f52d4b08/black-box-1716x965_-_2025-08-28.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd034740155f1bbae/68b0789e04a44432f52d4b08/black-box-1716x965_-_2025-08-28.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="black box" title="black box"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itManagement ContentPreview-Category" href="/it-management" target="_self" data-discover="true">IT Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-management/to-survive-server-crashes-it-needs-a-black-box-" target="_self" data-discover="true">To Survive Server Crashes, IT Needs a 'Black Box'</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-management/to-survive-server-crashes-it-needs-a-black-box-" target="_self" data-discover="true">To Survive Server Crashes, IT Needs a 'Black Box'</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 3, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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 Career"><span class="MainMenu-MainTitle">Career<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/career-management/career-tips" target="_self" data-discover="true">Career Tips</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/career-management/certifications" target="_self" data-discover="true">Certifications</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/career-management/training" target="_self" data-discover="true">Training</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="/career-management" target="_self" data-discover="true">Career</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/career-management" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All Career Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/career-management/ai-s-career-ladder-crisis-entry-level-tech-jobs-are-vanishing" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88934dedf7c63e13/68b034dd3a179376acba490c/AI-1716x965_-_2025-06-02.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88934dedf7c63e13/68b034dd3a179376acba490c/AI-1716x965_-_2025-06-02.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="finger pressing AI button" title="finger pressing AI button"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_careerManagement ContentPreview-Category" href="/career-management" target="_self" data-discover="true">Career Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/career-management/ai-s-career-ladder-crisis-entry-level-tech-jobs-are-vanishing" target="_self" data-discover="true">AI's Career Ladder Crisis: Entry-Level Tech Jobs Are Vanishing</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/career-management/ai-s-career-ladder-crisis-entry-level-tech-jobs-are-vanishing" target="_self" data-discover="true">AI's Career Ladder Crisis: Entry-Level Tech Jobs Are Vanishing</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 29, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 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="/it-management/why-dei-won-t-die-the-benefits-of-a-diverse-it-workforce" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta2d6b81219014e04/68ad90e70b71a91f9834e4f1/diverse-1716x965_-_2025-08-26T064649.865.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta2d6b81219014e04/68ad90e70b71a91f9834e4f1/diverse-1716x965_-_2025-08-26T064649.865.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="hands of diverse people clasping" title="hands of diverse people clasping"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itManagement ContentPreview-Category" href="/it-management" target="_self" data-discover="true">IT Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-management/why-dei-won-t-die-the-benefits-of-a-diverse-it-workforce" target="_self" data-discover="true">Why DEI Won't Die: The Benefits of a Diverse IT Workforce</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-management/why-dei-won-t-die-the-benefits-of-a-diverse-it-workforce" target="_self" data-discover="true">Why DEI Won't Die: The Benefits of a Diverse IT Workforce</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/nathan-eddy" target="_self" data-discover="true">Nathan Eddy</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 26, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 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 Storage"><span class="MainMenu-MainTitle">Storage<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/data-storage/cloud-storage" target="_self" data-discover="true">Cloud Storage</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/high-speed-storage" target="_self" data-discover="true">High Speed Storage</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/data-backup" target="_self" data-discover="true">Data Backup</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/disaster-recovery" target="_self" data-discover="true">Disaster Recovery</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="/data-storage" target="_self" data-discover="true">Storage</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/data-storage" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All Data Storage</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/data-backup/you-backed-up-your-data-but-can-you-bring-it-back-" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca26714d3ed57466/68b074fcb07f45be523a7492/data-1716x965_-_2025-01-18.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca26714d3ed57466/68b074fcb07f45be523a7492/data-1716x965_-_2025-01-18.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="data" title="data"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_dataBackup ContentPreview-Category" href="/data-storage/data-backup" target="_self" data-discover="true">Data Backup</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/data-backup/you-backed-up-your-data-but-can-you-bring-it-back-" target="_self" data-discover="true">You Backed Up Your Data, but Can You Bring It Back?</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/data-backup/you-backed-up-your-data-but-can-you-bring-it-back-" target="_self" data-discover="true">You Backed Up Your Data, but Can You Bring It Back?</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 1, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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="/data-storage/why-cohort-analysis-is-the-key-to-better-product-marketing-decisions" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cf52f98a7e4f716/6881352a9756bbacdc706398/cohort-analysis.jpg-1716x965_-_2025-07-23.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cf52f98a7e4f716/6881352a9756bbacdc706398/cohort-analysis.jpg-1716x965_-_2025-07-23.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="cohort analysis on cogwheels" title="cohort analysis on cogwheels"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_dataStorage ContentPreview-Category" href="/data-storage" target="_self" data-discover="true">Data Storage</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/data-storage/why-cohort-analysis-is-the-key-to-better-product-marketing-decisions" target="_self" data-discover="true">Why Cohort Analysis Is the Key to Better Product Marketing Decisions</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/data-storage/why-cohort-analysis-is-the-key-to-better-product-marketing-decisions" target="_self" data-discover="true">Why Cohort Analysis Is the Key to Better Product Marketing Decisions</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Jul 23, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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 Security"><span class="MainMenu-MainTitle">Security<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/it-security/vulnerabilities-threats" target="_self" data-discover="true">Vulnerabilities &amp; Threats</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/attacks-breaches" target="_self" data-discover="true">Attacks &amp; Breaches</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/regulatory-compliance" target="_self" data-discover="true">Regulatory Compliance</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/data-privacy" target="_self" data-discover="true">Data Privacy</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/cloud-security" target="_self" data-discover="true">Cloud Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/endpoint-security" target="_self" data-discover="true">Endpoint Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/identity-management-access-control" target="_self" data-discover="true">Identity Mgmt &amp; Access Control</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="/it-security" target="_self" data-discover="true">Security</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-security" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All IT Security</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/it-security/forrester-study-shows-pivotal-role-ai-orchestration" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0140c52dcec68230/68c08781d6892e48410204db/ITPro_Today_1_-_1280x720.png?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0140c52dcec68230/68c08781d6892e48410204db/ITPro_Today_1_-_1280x720.png?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Remote control on a green background" title="Remote control on a green background"/></div></a><span data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_sponsoredContent Keyword_disabled ContentPreview-Category">Sponsored Content</span><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-security/forrester-study-shows-pivotal-role-ai-orchestration" target="_self" data-discover="true">Forrester Study Shows IT's Pivotal Role in AI Orchestration</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-security/forrester-study-shows-pivotal-role-ai-orchestration" target="_self" data-discover="true">Forrester Study Shows IT's Pivotal Role in AI Orchestration</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/brad-rumph" target="_self" data-discover="true">Brad Rumph</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 15, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 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="/ai-machine-learning/ai-inferencing-will-outpace-ai-training-oracle-cto" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta6cf0a61629707ee/68c32b452aa7ebbead8a9f7c/exterior_shot_of_Oracle_headquarters.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta6cf0a61629707ee/68c32b452aa7ebbead8a9f7c/exterior_shot_of_Oracle_headquarters.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="exterior shot of Oracle headquarters" title="exterior shot of Oracle headquarters"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/ai-inferencing-will-outpace-ai-training-oracle-cto" target="_self" data-discover="true">AI Inferencing Will Outpace AI Training -- Oracle CTO</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/ai-inferencing-will-outpace-ai-training-oracle-cto" target="_self" data-discover="true">AI Inferencing Will Outpace AI Training -- Oracle CTO</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 Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/kelsey-ziser" target="_self" data-discover="true">Kelsey Ziser<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/informationweek" target="_self" data-discover="true">InformationWeek</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">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 Dev"><span class="MainMenu-MainTitle">Dev<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/software-development/cloud-native" target="_self" data-discover="true">Cloud Native</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/programming-languages" target="_self" data-discover="true">Programming Languages</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/no-code-low-code" target="_self" data-discover="true">No-Code/Low-Code</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</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="/software-development" target="_self" data-discover="true">Dev</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/software-development" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All Software Dev</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="arrow pointing to the left" title="arrow pointing to the left"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itSecurity ContentPreview-Category" href="/it-security" target="_self" data-discover="true">IT Security</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true">How to Shift Security Left in Complex Multi-Cloud Environments</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true">How to Shift Security Left in Complex Multi-Cloud Environments</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 28, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt39838373a6c03ee5/68ae81e0ef3486c36b54a68b/open-source-1716x965_-_2025-08-26T235536.270.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt39838373a6c03ee5/68ae81e0ef3486c36b54a68b/open-source-1716x965_-_2025-08-26T235536.270.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="paper stamped with open source" title="paper stamped with open source"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopment ContentPreview-Category" href="/software-development" target="_self" data-discover="true">Software Development</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true">New Research Debunks Open Source Business Model Myths</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true">New Research Debunks Open Source Business Model Myths</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/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Aug 27, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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 DX"><span class="MainMenu-MainTitle">DX<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/digital-transformation/edge-computing" target="_self" data-discover="true">Edge Computing</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/digital-transformation/iot" target="_self" data-discover="true">IoT</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="/digital-transformation" target="_self" data-discover="true">DX</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/digital-transformation" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All Digital Transformation</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc24f8d94b6143bd5/68d1575742ae229fcf9e9533/cloud_AI_fusion_concept_-_digital_art_showing_interconnected_cloud_icon_with_glowing_AI_circuits.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc24f8d94b6143bd5/68d1575742ae229fcf9e9533/cloud_AI_fusion_concept_-_digital_art_showing_interconnected_cloud_icon_with_glowing_AI_circuits.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="cloud AI fusion concept - digital art showing interconnected cloud icon with glowing AI circuits" title="cloud AI fusion concept - digital art showing interconnected cloud icon with glowing AI circuits"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true">The Pros and Cons of AI Agents for Cloud Administration</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration" target="_self" data-discover="true">The Pros and Cons of AI Agents for Cloud Administration</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/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 22, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">1 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="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt523754e60b684b20/68c33020ac52959a8551774a/digital_art_of_an_artificial_intelligence_computer_processor_unit.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt523754e60b684b20/68c33020ac52959a8551774a/digital_art_of_an_artificial_intelligence_computer_processor_unit.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="digital art of an artificial intelligence computer processor unit" title="digital art of an artificial intelligence computer processor unit"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true">Microsoft, OpenAI Continue To Push Beyond Their Partnership</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership" target="_self" data-discover="true">Microsoft, OpenAI Continue To Push Beyond Their Partnership</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 Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/esther-shittu" target="_self" data-discover="true">Esther Shittu<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/ai-business" target="_self" data-discover="true">AI Business</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">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 Infrastructure"><span class="MainMenu-MainTitle">Infrastructure<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/it-infrastructure/high-performance-computing" target="_self" data-discover="true">High Performance Computing</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-infrastructure/containerization" target="_self" data-discover="true">Containerization</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-infrastructure/server-virtualization" target="_self" data-discover="true">Server Virtualization</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="/it-infrastructure" target="_self" data-discover="true">Infrastructure</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-infrastructure" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">See All Infrastructure</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/cloud-computing/how-to-optimize-resource-utilization-with-kubernetes-pod-scaling" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaa291e1b4f1a191/68c1e69b4b4236ec6a189770/two_Kubernetes_style_containers_and_cloud_show_software_infrastructure_operations_concept.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaa291e1b4f1a191/68c1e69b4b4236ec6a189770/two_Kubernetes_style_containers_and_cloud_show_software_infrastructure_operations_concept.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="two Kubernetes style containers and cloud show software infrastructure operations concept" title="two Kubernetes style containers and cloud show software infrastructure operations concept"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/how-to-optimize-resource-utilization-with-kubernetes-pod-scaling" target="_self" data-discover="true">How To Optimize Resource Utilization With Kubernetes Pod Scaling</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/how-to-optimize-resource-utilization-with-kubernetes-pod-scaling" target="_self" data-discover="true">How To Optimize Resource Utilization With Kubernetes Pod Scaling</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 Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/data-center-knowledge" target="_self" data-discover="true">Data Center Knowledge</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 10, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">1 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="/ai-machine-learning/agentic-ai-starts-with-infrastructure-that-can-act" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt58ebd97d6ec98d25/68b085c70e77dd3fd2c04dda/ai-data-center-1716x965_-_2025-01-29.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt58ebd97d6ec98d25/68b085c70e77dd3fd2c04dda/ai-data-center-1716x965_-_2025-01-29.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="AI in data center" title="AI in data center"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/agentic-ai-starts-with-infrastructure-that-can-act" target="_self" data-discover="true">Agentic AI Starts with Infrastructure That Can Act</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/agentic-ai-starts-with-infrastructure-that-can-act" target="_self" data-discover="true">Agentic AI Starts with Infrastructure That Can Act</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/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 2, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 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 More"><span class="MainMenu-MainTitle">More<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);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="/newsletter-signup" target="_self" data-discover="true">Newsletters</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/latest-how-to" target="_self" data-discover="true">How To…?</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/program/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources" target="_self" data-discover="true">Business Resources</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?types=Survey+Report&amp;page=1" target="_self" data-discover="true">Reports/Research</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar" target="_self" data-discover="true">Online Events</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/events" target="_self" data-discover="true">Live Events</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/videos" target="_self" data-discover="true">Videos</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?page=1&amp;types=White+Paper" target="_self" data-discover="true">White Papers</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/advertise" target="_self" data-discover="true">Advertise With Us</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/about-us" target="_self" data-discover="true">About Us</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="/resources" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">Resource Library</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div></div></nav><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div data-template="topic-list" class="TopicList TopicList_variant_primary"><div data-template="list-content" class="ListContent"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="TopicList-Head"><ul data-component="breadcrumb" class="Breadcrumb TopicList-Breadcrumbs"><li class="Breadcrumb-ListItem"><span data-component="icon" data-name="ChevronLeft" class="Breadcrumb-DividerIcon Breadcrumb-PrevIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-left&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(13%2021)%20rotate(180)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-left&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(13%2021)%20rotate(180)&#x27;/%3e%3c/svg%3e&quot;);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="/" target="_self" data-discover="true">Home</a><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-NextIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);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="/software-development" target="_self" data-discover="true">Software Development</a></li></ul><div data-module="category-header" class="CategoryHeader CategoryHeader_primaryTitle"><div class="CategoryHeader-TitleWrapper CategoryHeader-TitleWrapper_primaryTitle"><div class="CategoryHeader-TitleContent"><h1 class="CategoryHeader-Title CategoryHeader-Title_primary CategoryHeader-Title_underlined" data-testid="category-header-title">Software Development</h1></div><div class="CategoryHeader-SponsorAdsWrapper" data-testid="category-header-sponsor-ads"></div></div><div class="CategoryHeader-ShowMoreWrapper"><span class="CategoryHeader-ShowMore" tabindex="0" role="button" aria-label="Show more topics" data-testid="category-header-show-more-button">More Topics<span class="CategoryHeader-ShowMoreIconWrapper"><span data-component="icon" data-name="ChevronDown" class="CategoryHeader-ShowMoreIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></span></div><div class="CategoryHeader-SubCategoriesWrapper" data-testid="category-header-sub-categories"><ul class="CategoryHeader-SubCategories"><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" href="/software-development/cloud-native" target="_self" data-discover="true">Cloud Native</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" href="/software-development/programming-languages" target="_self" data-discover="true">Programming Languages</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" href="/software-development/no-code-low-code" target="_self" data-discover="true">No-Code/Low-Code</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></li></ul></div></div></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ListContent-Body" data-testid="list-content-body"><div class="ContentPreview ListContent-Content ListContent-Content_featured" data-module="content-preview" data-variant="summary"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_summary"><a data-testid="thumbnail" href="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="arrow pointing to the left" title="arrow pointing to the left"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itSecurity ContentPreview-Category" href="/it-security" target="_self" data-discover="true">IT Security</a><div class="ArticlePreview"><div class="ArticlePreview-Body"><a class="ArticlePreview-Title ArticlePreview-Title_displayOption_default" data-testid="preview-default-title" href="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true">How to Shift Security Left in Complex Multi-Cloud Environments</a><a class="ArticlePreview-Title ArticlePreview-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments" target="_self" data-discover="true">How to Shift Security Left in Complex Multi-Cloud Environments</a><p data-testid="preview-card-summary" class="ArticlePreview-Summary">As organizations scale across hybrid and multi-cloud environments, success depends on embedding security at design, enforcing policy-as-code, and democratizing responsibility.</p><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_summary Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="ArticlePreview-Footer"><span class="ArticlePreview-Date">Aug 28, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div></div><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="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt39838373a6c03ee5/68ae81e0ef3486c36b54a68b/open-source-1716x965_-_2025-08-26T235536.270.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt39838373a6c03ee5/68ae81e0ef3486c36b54a68b/open-source-1716x965_-_2025-08-26T235536.270.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="paper stamped with open source" title="paper stamped with open source"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopment ContentPreview-Category" href="/software-development" target="_self" data-discover="true">Software Development</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true">New Research Debunks Open Source Business Model Myths</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/software-development/new-research-debunks-open-source-business-model-myths" target="_self" data-discover="true">New Research Debunks Open Source Business Model Myths</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" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Aug 27, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div></div><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="/devops/ai-code-generation-creates-blind-spots-in-devsecops-security" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltae231ba5e8a66634/68ac719a4503c3f10af9f513/blind-spot-1716x965_-_2025-08-25.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltae231ba5e8a66634/68ac719a4503c3f10af9f513/blind-spot-1716x965_-_2025-08-25.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="warning sign that there is a blind spot ahead" title="warning sign that there is a blind spot ahead"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_devOps ContentPreview-Category" href="/it-management/devops" target="_self" data-discover="true">DevOps</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/devops/ai-code-generation-creates-blind-spots-in-devsecops-security" target="_self" data-discover="true">AI Code Generation Creates Blind Spots in DevSecOps Security</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/devops/ai-code-generation-creates-blind-spots-in-devsecops-security" target="_self" data-discover="true">AI Code Generation Creates Blind Spots in DevSecOps Security</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" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Aug 25, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div></div></div><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_small"><a data-testid="thumbnail" href="/devops/devsecops-2-0-how-security-first-devops-is-redefining-software-delivery" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt16770dd8f38bb663/68973c958bc2f32a26aa89da/DevSecOps-1716x965_-_2025-08-09.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt16770dd8f38bb663/68973c958bc2f32a26aa89da/DevSecOps-1716x965_-_2025-08-09.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="DevSecOps concept art" title="DevSecOps concept art"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_devOps ContentPreview-Category" href="/it-management/devops" target="_self" data-discover="true">DevOps</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/devops/devsecops-2-0-how-security-first-devops-is-redefining-software-delivery" target="_self" data-discover="true">DevSecOps 2.0: How Security-First DevOps Is Redefining Software Delivery</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/devops/devsecops-2-0-how-security-first-devops-is-redefining-software-delivery" target="_self" data-discover="true">DevSecOps 2.0: How Security-First DevOps Is Redefining Software Delivery</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" data-testid="contributor-name" href="/author/grant-knoetze" target="_self" data-discover="true">Grant Knoetze</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Aug 14, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">9 Min Read</span></div></div></div></div></div></div><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_small"><a data-testid="thumbnail" href="/software-development-techniques/coding-agent-teams-the-next-frontier-in-ai-assisted-software-development" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt069f53f2f0cdc2bc/68910f64d3b074160e7d1614/robots-working-puzzle-1716x965_-_2025-08-04.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt069f53f2f0cdc2bc/68910f64d3b074160e7d1614/robots-working-puzzle-1716x965_-_2025-08-04.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="4 robots holding up zigsaw pieces" title="4 robots holding up zigsaw pieces"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopmentTechniques ContentPreview-Category" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/software-development-techniques/coding-agent-teams-the-next-frontier-in-ai-assisted-software-development" target="_self" data-discover="true">Coding Agent Teams: The Next Frontier in AI-Assisted Software Development</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/software-development-techniques/coding-agent-teams-the-next-frontier-in-ai-assisted-software-development" target="_self" data-discover="true">Coding Agent Teams: The Next Frontier in AI-Assisted Software Development</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" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Aug 13, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div></div><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_small"><a data-testid="thumbnail" href="/programming-languages/what-s-the-best-programming-language-for-game-development-" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8185ca8fb9370ed1/68979bf74af7fb7bae0faf63/game-development.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8185ca8fb9370ed1/68979bf74af7fb7bae0faf63/game-development.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="programmer developing a game" title="programmer developing a game"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_programmingLanguages ContentPreview-Category" href="/software-development/programming-languages" target="_self" data-discover="true">Programming Languages</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/programming-languages/what-s-the-best-programming-language-for-game-development-" target="_self" data-discover="true">What's the Best Programming Language for Game Development?</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/programming-languages/what-s-the-best-programming-language-for-game-development-" target="_self" data-discover="true">What's the Best Programming Language for Game Development?</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" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Aug 12, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: software developer looking at his screen" class="ListPreview-ImageLink" href="/software-development/navigating-security-debt-in-the-citizen-developer-era" target="_self" data-discover="true"><div title="software developer looking at his screen" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2817eea831dc215f/6898d0643dfe74c9b9b31335/software-developer-1716x965_-_2025-01-13-25.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2817eea831dc215f/6898d0643dfe74c9b9b31335/software-developer-1716x965_-_2025-01-13-25.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="software developer looking at his screen" title="software developer looking at his screen"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/navigating-security-debt-in-the-citizen-developer-era" target="_self" data-discover="true">Navigating Security Debt in the Citizen Developer Era</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/navigating-security-debt-in-the-citizen-developer-era" target="_self" data-discover="true">Navigating Security Debt in the Citizen Developer Era</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 12, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: set of colored balls with programming language names in each one" class="ListPreview-ImageLink" href="/programming-languages/the-myth-of-legacy-programming-languages-age-doesn-t-define-value" target="_self" data-discover="true"><div title="set of colored balls with programming language names in each one" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2804894ab9be10e2/689389e42ad8b23b76cd283c/programming-languages-1716x965_-_2025-08-06.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2804894ab9be10e2/689389e42ad8b23b76cd283c/programming-languages-1716x965_-_2025-08-06.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="set of colored balls with programming language names in each one" title="set of colored balls with programming language names in each one"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programmingLanguages ListPreview-Keyword" href="/software-development/programming-languages" target="_self" data-discover="true">Programming Languages</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/programming-languages/the-myth-of-legacy-programming-languages-age-doesn-t-define-value" target="_self" data-discover="true">The Myth of Legacy Programming Languages: Age Doesn't Define Value</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/programming-languages/the-myth-of-legacy-programming-languages-age-doesn-t-define-value" target="_self" data-discover="true">The Myth of Legacy Programming Languages: Age Doesn't Define Value</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 11, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: developer typing on a keyboard with AI above " class="ListPreview-ImageLink" href="/software-development/cognitive-load-in-the-age-of-ai-rethinking-developer-workflows" target="_self" data-discover="true"><div title="developer typing on a keyboard with AI above " class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt61a50d38cdfd56a5/689507df8bc2f36c81aa8345/AI-keyboard-1716x965_-_2024-11-25.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt61a50d38cdfd56a5/689507df8bc2f36c81aa8345/AI-keyboard-1716x965_-_2024-11-25.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="developer typing on a keyboard with AI above " title="developer typing on a keyboard with AI above "/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/cognitive-load-in-the-age-of-ai-rethinking-developer-workflows" target="_self" data-discover="true">Cognitive Load in the Age of AI: Rethinking Developer Workflows</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/cognitive-load-in-the-age-of-ai-rethinking-developer-workflows" target="_self" data-discover="true">Cognitive Load in the Age of AI: Rethinking Developer Workflows</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 7, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: robots sitting at desks writing code" class="ListPreview-ImageLink" href="/software-development/appgen-a-software-development-revolution-that-won-t-happen" target="_self" data-discover="true"><div title="robots sitting at desks writing code" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt061b965d09d03130/688b3f3f5315b326453ebf87/AI-robots-1716x965_-_2025-07-31.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt061b965d09d03130/688b3f3f5315b326453ebf87/AI-robots-1716x965_-_2025-07-31.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="robots sitting at desks writing code" title="robots sitting at desks writing code"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/appgen-a-software-development-revolution-that-won-t-happen" target="_self" data-discover="true">AppGen: A Software Development Revolution That Won't Happen</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/appgen-a-software-development-revolution-that-won-t-happen" target="_self" data-discover="true">AppGen: A Software Development Revolution That Won't Happen</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 31, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: clouds isolated against a black background" class="ListPreview-ImageLink" href="/cloud-computing/decoding-cloud-terminology-what-cloud-native-really-means" target="_self" data-discover="true"><div title="clouds isolated against a black background" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt640042cd7e059cb5/6881b34559dec53629c23812/clouds-1716x965_-_2025-07-24.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt640042cd7e059cb5/6881b34559dec53629c23812/clouds-1716x965_-_2025-07-24.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="clouds isolated against a black background" title="clouds isolated against a black background"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cloudComputing ListPreview-Keyword" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/cloud-computing/decoding-cloud-terminology-what-cloud-native-really-means" target="_self" data-discover="true">Decoding Cloud Terminology: What 'Cloud-Native' Really Means</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/cloud-computing/decoding-cloud-terminology-what-cloud-native-really-means" target="_self" data-discover="true">Decoding Cloud Terminology: What 'Cloud-Native' Really Means</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 24, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Swami Sivasubramanian, VP of Agentic AI at AWS" class="ListPreview-ImageLink" href="/cloud-computing/aws-summit-nyc-suite-of-production-ready-ai-agent-tools-debut" target="_self" data-discover="true"><div title="Swami Sivasubramanian, VP of Agentic AI at AWS" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt594194da6dcf5b0f/6879a28844d583259170bd1a/Swami-1716x965_-_2025-07-17.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt594194da6dcf5b0f/6879a28844d583259170bd1a/Swami-1716x965_-_2025-07-17.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Swami Sivasubramanian, VP of Agentic AI at AWS" title="Swami Sivasubramanian, VP of Agentic AI at AWS"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cloudComputing ListPreview-Keyword" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/cloud-computing/aws-summit-nyc-suite-of-production-ready-ai-agent-tools-debut" target="_self" data-discover="true">AWS Summit NYC: Suite of Production-Ready AI Agent Tools Debut</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/cloud-computing/aws-summit-nyc-suite-of-production-ready-ai-agent-tools-debut" target="_self" data-discover="true">AWS Summit NYC: Suite of Production-Ready AI Agent Tools Debut</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 18, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: credit card and dollar bills on top of a laptop" class="ListPreview-ImageLink" href="/it-management/gartner-forecast-it-spending-surges-7-9-amid-infrastructure-revolution" target="_self" data-discover="true"><div title="credit card and dollar bills on top of a laptop" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0a6ba3c830b50ea7/687867bc89f8b73e562a9eb1/spending-1716x965_-_2025-07-16.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0a6ba3c830b50ea7/687867bc89f8b73e562a9eb1/spending-1716x965_-_2025-07-16.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="credit card and dollar bills on top of a laptop" title="credit card and dollar bills on top of a laptop"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itManagement ListPreview-Keyword" href="/it-management" target="_self" data-discover="true">IT Management</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/it-management/gartner-forecast-it-spending-surges-7-9-amid-infrastructure-revolution" target="_self" data-discover="true">Gartner Forecast: IT Spending Surges 7.9% Amid Infrastructure Revolution</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/it-management/gartner-forecast-it-spending-surges-7-9-amid-infrastructure-revolution" target="_self" data-discover="true">Gartner Forecast: IT Spending Surges 7.9% Amid Infrastructure Revolution</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 17, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">3 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/it-management/the-seventh-wave-how-ai-will-change-the-technology-industry" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt471bb35a9ceb701d/6877934030f3c530c995a6b5/AI-Data-Center.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt471bb35a9ceb701d/6877934030f3c530c995a6b5/AI-Data-Center.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itManagement ListPreview-Keyword" href="/it-management" target="_self" data-discover="true">IT Management</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/it-management/the-seventh-wave-how-ai-will-change-the-technology-industry" target="_self" data-discover="true">The Seventh Wave: How AI Will Change the Technology Industry</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/it-management/the-seventh-wave-how-ai-will-change-the-technology-industry" target="_self" data-discover="true">The Seventh Wave: How AI Will Change the Technology Industry</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 15, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">9 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Forrester Blog Network" href="/author/forrester-blog-network" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Forrester Blog Network" title="Picture of Forrester Blog Network"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/forrester-blog-network" target="_self" data-discover="true">Forrester Blog Network</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: developer presentation about coding software data with DevOps team in office" class="ListPreview-ImageLink" href="/devops/guide-to-devops-topologies" target="_self" data-discover="true"><div title="developer presentation about coding software data with DevOps team in office" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb9ad16b0fe4d6705/686ce7807a697d62f1993909/DevOps-1716x965_-_2025-07-08.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb9ad16b0fe4d6705/686ce7807a697d62f1993909/DevOps-1716x965_-_2025-07-08.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="developer presentation about coding software data with DevOps team in office" title="developer presentation about coding software data with DevOps team in office"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_devOps ListPreview-Keyword" href="/it-management/devops" target="_self" data-discover="true">DevOps</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/devops/guide-to-devops-topologies" target="_self" data-discover="true">Guide to DevOps Topologies</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/devops/guide-to-devops-topologies" target="_self" data-discover="true">Guide to DevOps Topologies</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 8, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: app dashboard with code and UI elements" class="ListPreview-ImageLink" href="/software-development/how-to-create-a-standout-software-development-portfolio-five-key-steps" target="_self" data-discover="true"><div title="app dashboard with code and UI elements" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1a081dd26467df78/6862f16dd8db1d456bd651d6/software-dev-1716x965_-_2025-06-30.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1a081dd26467df78/6862f16dd8db1d456bd651d6/software-dev-1716x965_-_2025-06-30.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="app dashboard with code and UI elements" title="app dashboard with code and UI elements"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/how-to-create-a-standout-software-development-portfolio-five-key-steps" target="_self" data-discover="true">How to Create a Standout Software Development Portfolio: Five Key Steps</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/how-to-create-a-standout-software-development-portfolio-five-key-steps" target="_self" data-discover="true">How to Create a Standout Software Development Portfolio: Five Key Steps</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 1, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: software development word cloud" class="ListPreview-ImageLink" href="/software-development/appgen-is-here-say-goodbye-to-software-development-as-you-know-it" target="_self" data-discover="true"><div title="software development word cloud" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt107b78768453a813/685b66efd4d5a77bb7d0a90e/software-development-word-cloud-1716x965_-_2025-03-05.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt107b78768453a813/685b66efd4d5a77bb7d0a90e/software-development-word-cloud-1716x965_-_2025-03-05.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="software development word cloud" title="software development word cloud"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/appgen-is-here-say-goodbye-to-software-development-as-you-know-it" target="_self" data-discover="true">AppGen Is Here: Say Goodbye to Software Development as You Know It</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/appgen-is-here-say-goodbye-to-software-development-as-you-know-it" target="_self" data-discover="true">AppGen Is Here: Say Goodbye to Software Development as You Know It</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 25, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">3 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Forrester Blog Network" href="/author/forrester-blog-network" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Forrester Blog Network" title="Picture of Forrester Blog Network"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/forrester-blog-network" target="_self" data-discover="true">Forrester Blog Network</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: AI and brain connected by a gear" class="ListPreview-ImageLink" href="/software-development-techniques/why-agentic-ai-is-a-developer-s-new-ally-not-adversary" target="_self" data-discover="true"><div title="AI and brain connected by a gear" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc852926230dddcde/6858fc5498644f8e5183a1b1/agentic-AI-1716x965_-_2025-06-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc852926230dddcde/6858fc5498644f8e5183a1b1/agentic-AI-1716x965_-_2025-06-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="AI and brain connected by a gear" title="AI and brain connected by a gear"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/why-agentic-ai-is-a-developer-s-new-ally-not-adversary" target="_self" data-discover="true">Why Agentic AI Is a Developer's New Ally, Not Adversary</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/why-agentic-ai-is-a-developer-s-new-ally-not-adversary" target="_self" data-discover="true">Why Agentic AI Is a Developer's New Ally, Not Adversary</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 23, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Llama site on smartphone" class="ListPreview-ImageLink" href="/it-operations/meta-s-llama-llms-spark-debate-over-open-source-ai" target="_self" data-discover="true"><div title="Llama site on smartphone" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8dc1e5f392ec960a/685183abe7f8c557637cf176/LLama-1716x965_-_2025-06-17.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8dc1e5f392ec960a/685183abe7f8c557637cf176/LLama-1716x965_-_2025-06-17.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Llama site on smartphone" title="Llama site on smartphone"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itOperations ListPreview-Keyword" href="/it-management/it-operations" target="_self" data-discover="true">IT Operations</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/it-operations/meta-s-llama-llms-spark-debate-over-open-source-ai" target="_self" data-discover="true">Meta's Llama LLMs Spark Debate Over Open Source AI</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/it-operations/meta-s-llama-llms-spark-debate-over-open-source-ai" target="_self" data-discover="true">Meta's Llama LLMs Spark Debate Over Open Source AI</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 18, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: rubber penguin on a keyboard" class="ListPreview-ImageLink" href="/linux-os/linux-kernel-6-x-powering-the-future-of-open-source-computing" target="_self" data-discover="true"><div title="rubber penguin on a keyboard" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteaf49037cb4b22a0/6850e16fa7bc83371d79b5ec/Linux-penguin-1716x965_-_2025-06-16.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteaf49037cb4b22a0/6850e16fa7bc83371d79b5ec/Linux-penguin-1716x965_-_2025-06-16.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="rubber penguin on a keyboard" title="rubber penguin on a keyboard"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" href="/operating-systems/linux-os" target="_self" data-discover="true">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/linux-os/linux-kernel-6-x-powering-the-future-of-open-source-computing" target="_self" data-discover="true">Linux Kernel 6.x: Powering the Future of Open Source Computing</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/linux-os/linux-kernel-6-x-powering-the-future-of-open-source-computing" target="_self" data-discover="true">Linux Kernel 6.x: Powering the Future of Open Source Computing</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 17, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" href="/author/grant-knoetze" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/grant-knoetze" target="_self" data-discover="true">Grant Knoetze<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology Analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: IT technician fixing equipment in a server room" class="ListPreview-ImageLink" href="/it-operations/beyond-the-paycheck-why-it-operations-careers-outshine-software-development" target="_self" data-discover="true"><div title="IT technician fixing equipment in a server room" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6d2af3e0bf9f2c43/68487db682c1a69cac5f6c9e/IT-technician-1716x965_-_2025-06-10.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6d2af3e0bf9f2c43/68487db682c1a69cac5f6c9e/IT-technician-1716x965_-_2025-06-10.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="IT technician fixing equipment in a server room" title="IT technician fixing equipment in a server room"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itOperations ListPreview-Keyword" href="/it-management/it-operations" target="_self" data-discover="true">IT Operations</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/it-operations/beyond-the-paycheck-why-it-operations-careers-outshine-software-development" target="_self" data-discover="true">Beyond the Paycheck: Where IT Operations Careers Outshine Software Development</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/it-operations/beyond-the-paycheck-why-it-operations-careers-outshine-software-development" target="_self" data-discover="true">Beyond the Paycheck: Where IT Operations Careers Outshine Software Development</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 11, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: software development" class="ListPreview-ImageLink" href="/software-development-techniques/how-to-integrate-quality-throughout-the-software-development-process" target="_self" data-discover="true"><div title="software development" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt406dfcd0400de0e0/68497d203943afbb050291a5/software-development-1716x965_-_2025-06-11.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt406dfcd0400de0e0/68497d203943afbb050291a5/software-development-1716x965_-_2025-06-11.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="software development" title="software development"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/how-to-integrate-quality-throughout-the-software-development-process" target="_self" data-discover="true">How to Integrate Quality Throughout the Software Development Process</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/how-to-integrate-quality-throughout-the-software-development-process" target="_self" data-discover="true">How to Integrate Quality Throughout the Software Development Process</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 11, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: finger pressing software testing keys on a keyboard" class="ListPreview-ImageLink" href="/it-management/ai-boosts-dev-but-qa-lags-testing-automation-gap-persists" target="_self" data-discover="true"><div title="finger pressing software testing keys on a keyboard" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt631ec77866e6adc4/6841e073a1b672678f932fe8/software-testing-1716x965_-_2025-06-05.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt631ec77866e6adc4/6841e073a1b672678f932fe8/software-testing-1716x965_-_2025-06-05.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="finger pressing software testing keys on a keyboard" title="finger pressing software testing keys on a keyboard"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itManagement ListPreview-Keyword" href="/it-management" target="_self" data-discover="true">IT Management</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/it-management/ai-boosts-dev-but-qa-lags-testing-automation-gap-persists" target="_self" data-discover="true">Software Testing Is at a Crossroads</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/it-management/ai-boosts-dev-but-qa-lags-testing-automation-gap-persists" target="_self" data-discover="true">Software Testing Is at a Crossroads</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 6, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: GitHub Copilot logo on smartphone screen on top of a keyboard and mouse" class="ListPreview-ImageLink" href="/devops/how-github-copilot-is-revolutionizing-devops-devsecops" target="_self" data-discover="true"><div title="GitHub Copilot logo on smartphone screen on top of a keyboard and mouse" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1e33491087a62888/6840a4fddcc1f0a3ff707b18/GitHub-Copilot-1716x965_-_2025-06-04.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1e33491087a62888/6840a4fddcc1f0a3ff707b18/GitHub-Copilot-1716x965_-_2025-06-04.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="GitHub Copilot logo on smartphone screen on top of a keyboard and mouse" title="GitHub Copilot logo on smartphone screen on top of a keyboard and mouse"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_devOps ListPreview-Keyword" href="/it-management/devops" target="_self" data-discover="true">DevOps</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/devops/how-github-copilot-is-revolutionizing-devops-devsecops" target="_self" data-discover="true">How GitHub Copilot Is Revolutionizing DevOps &amp; DevSecOps</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/devops/how-github-copilot-is-revolutionizing-devops-devsecops" target="_self" data-discover="true">How GitHub Copilot Is Revolutionizing DevOps &amp; DevSecOps</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 5, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" href="/author/grant-knoetze" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/grant-knoetze" target="_self" data-discover="true">Grant Knoetze<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology Analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: lock among code" class="ListPreview-ImageLink" href="/software-development-techniques/beyond-devsecops-the-rise-of-security-first-development" target="_self" data-discover="true"><div title="lock among code" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte9c4d2a521756e2b/68401d6857e25e8c055b4cc2/security-digital-locks-1716x965_-_2025-01-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte9c4d2a521756e2b/68401d6857e25e8c055b4cc2/security-digital-locks-1716x965_-_2025-01-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="lock among code" title="lock among code"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/beyond-devsecops-the-rise-of-security-first-development" target="_self" data-discover="true">Beyond DevSecOps: The Rise of Security-First Development</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/beyond-devsecops-the-rise-of-security-first-development" target="_self" data-discover="true">Beyond DevSecOps: The Rise of Security-First Development</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jun 4, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: 5 stacks of coins of differing heights with figures on top of each one" class="ListPreview-ImageLink" href="/career-management/tech-leadership-commands-premium-top-it-roles-exceed-200k" target="_self" data-discover="true"><div title="5 stacks of coins of differing heights with figures on top of each one" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb140a0628e71dbd2/6837d679cb4559426da42e5d/wages-1716x965_-_2025-05-28.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb140a0628e71dbd2/6837d679cb4559426da42e5d/wages-1716x965_-_2025-05-28.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="5 stacks of coins of differing heights with figures on top of each one" title="5 stacks of coins of differing heights with figures on top of each one"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_careerManagement ListPreview-Keyword" href="/career-management" target="_self" data-discover="true">Career Management</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/career-management/tech-leadership-commands-premium-top-it-roles-exceed-200k" target="_self" data-discover="true">Tech Leadership Commands Premium: Top IT Roles Exceed $200K</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/career-management/tech-leadership-commands-premium-top-it-roles-exceed-200k" target="_self" data-discover="true">Tech Leadership Commands Premium: Top IT Roles Exceed $200K</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 29, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Nathan Eddy" href="/author/nathan-eddy" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Nathan Eddy" title="Picture of Nathan Eddy"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/nathan-eddy" target="_self" data-discover="true">Nathan Eddy<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: programmer using 2 screens" class="ListPreview-ImageLink" href="/software-development-techniques/vibe-coding-revolution-or-rebranding-of-ai-assisted-development-" target="_self" data-discover="true"><div title="programmer using 2 screens" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71067dc7e00e2dc/6836ef3d4041bd6aaf9bb0d9/programmer-1716x965_-_2025-05-28.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71067dc7e00e2dc/6836ef3d4041bd6aaf9bb0d9/programmer-1716x965_-_2025-05-28.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="programmer using 2 screens" title="programmer using 2 screens"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/vibe-coding-revolution-or-rebranding-of-ai-assisted-development-" target="_self" data-discover="true">Vibe Coding: Revolution or Rebranding of AI-Assisted Development?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/vibe-coding-revolution-or-rebranding-of-ai-assisted-development-" target="_self" data-discover="true">Vibe Coding: Revolution or Rebranding of AI-Assisted Development?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 28, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Microsoft CEO Satya Nadella at Build 2025" class="ListPreview-ImageLink" href="/azure-cloud/microsoft-build-2025-infrastructure-meets-intelligence" target="_self" data-discover="true"><div title="Microsoft CEO Satya Nadella at Build 2025" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e1cbb31bf74dd24/68307a3d74a05a0e622e981b/Nadella-1716x965_-_2025-05-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e1cbb31bf74dd24/68307a3d74a05a0e622e981b/Nadella-1716x965_-_2025-05-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Microsoft CEO Satya Nadella at Build 2025" title="Microsoft CEO Satya Nadella at Build 2025"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_azureCloud ListPreview-Keyword" href="/cloud-computing/public-cloud/azure-cloud" target="_self" data-discover="true">Azure Cloud</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/azure-cloud/microsoft-build-2025-infrastructure-meets-intelligence" target="_self" data-discover="true">Microsoft Build 2025: Infrastructure Meets Intelligence</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/azure-cloud/microsoft-build-2025-infrastructure-meets-intelligence" target="_self" data-discover="true">Microsoft Build 2025: Infrastructure Meets Intelligence</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 23, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Google CEO Sundar Pichai delivering the opening Google I/O 2025 keynote" class="ListPreview-ImageLink" href="/software-development/google-i-o-2025-delivers-production-ready-ai-tools-for-developers" target="_self" data-discover="true"><div title="Google CEO Sundar Pichai delivering the opening Google I/O 2025 keynote" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt115637491541e28c/6830718f766592c92128b85f/pichai-google-1716x965_-_2025-05-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt115637491541e28c/6830718f766592c92128b85f/pichai-google-1716x965_-_2025-05-23.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Google CEO Sundar Pichai delivering the opening Google I/O 2025 keynote" title="Google CEO Sundar Pichai delivering the opening Google I/O 2025 keynote"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/google-i-o-2025-delivers-production-ready-ai-tools-for-developers" target="_self" data-discover="true">Google I/O 2025 Delivers Production-Ready AI Tools for Developers</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/google-i-o-2025-delivers-production-ready-ai-tools-for-developers" target="_self" data-discover="true">Google I/O 2025 Delivers Production-Ready AI Tools for Developers</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 23, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: &quot;AI programming&quot; seen through a magnifying glass in front of a laptop" class="ListPreview-ImageLink" href="/ai-machine-learning/which-language-should-you-learn-for-ai-programming-" target="_self" data-discover="true"><div title="&quot;AI programming&quot; seen through a magnifying glass in front of a laptop" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd2566ea7659af382/682cc29386cb0255d414c0d2/AI-programming-1716x965_-_2025-05-20.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd2566ea7659af382/682cc29386cb0255d414c0d2/AI-programming-1716x965_-_2025-05-20.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="&quot;AI programming&quot; seen through a magnifying glass in front of a laptop" title="&quot;AI programming&quot; seen through a magnifying glass in front of a laptop"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_aiMachineLearning ListPreview-Keyword" href="/digital-transformation/ai-machine-learning" target="_self" data-discover="true">AI &amp; Machine Learning</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/ai-machine-learning/which-language-should-you-learn-for-ai-programming-" target="_self" data-discover="true">Which Language Should You Learn for AI Programming?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/ai-machine-learning/which-language-should-you-learn-for-ai-programming-" target="_self" data-discover="true">Which Language Should You Learn for AI Programming?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 21, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: software developer working at a workstation" class="ListPreview-ImageLink" href="/software-development-techniques/scalability-and-flexibility-every-software-architect-s-challenge" target="_self" data-discover="true"><div title="software developer working at a workstation" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2a19203af8b460b5/682c62ebd18d76907b515640/software-developer-1716x965_-_2024-11-08.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2a19203af8b460b5/682c62ebd18d76907b515640/software-developer-1716x965_-_2024-11-08.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="software developer working at a workstation" title="software developer working at a workstation"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/scalability-and-flexibility-every-software-architect-s-challenge" target="_self" data-discover="true">Scalability and Flexibility: Every Software Architect's Challenge</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/scalability-and-flexibility-every-software-architect-s-challenge" target="_self" data-discover="true">Scalability and Flexibility: Every Software Architect's Challenge</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 20, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: developer writing code on a laptop" class="ListPreview-ImageLink" href="/software-development/software-quality-gaps-cost-organizations-millions-study-finds" target="_self" data-discover="true"><div title="developer writing code on a laptop" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3a2a3eb99e43e504/68276107126551139e00919d/software-developer-code-1716x965_-_2024-10-18.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3a2a3eb99e43e504/68276107126551139e00919d/software-developer-code-1716x965_-_2024-10-18.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="developer writing code on a laptop" title="developer writing code on a laptop"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/software-quality-gaps-cost-organizations-millions-study-finds" target="_self" data-discover="true">Software Quality Gaps Cost Organizations Millions, Study Finds</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/software-quality-gaps-cost-organizations-millions-study-finds" target="_self" data-discover="true">Software Quality Gaps Cost Organizations Millions, Study Finds</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 19, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Sean Michael Kerner" href="/author/sean-michael-kerner" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Sean Michael Kerner" title="Picture of Sean Michael Kerner"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/sean-michael-kerner" target="_self" data-discover="true">Sean Michael Kerner<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Contributor</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: two developers writing code on a laptop" class="ListPreview-ImageLink" href="/software-development/microsoft-layoffs-hit-coders-hardest-with-ai-costs-on-the-rise" target="_self" data-discover="true"><div title="two developers writing code on a laptop" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbe3f99ccefd43ecc/6825b5e26cb6c96a4099b896/software-developers-1716x965_-_2025-05-15.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbe3f99ccefd43ecc/6825b5e26cb6c96a4099b896/software-developers-1716x965_-_2025-05-15.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="two developers writing code on a laptop" title="two developers writing code on a laptop"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopment ListPreview-Keyword" href="/software-development" target="_self" data-discover="true">Software Development</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development/microsoft-layoffs-hit-coders-hardest-with-ai-costs-on-the-rise" target="_self" data-discover="true">Microsoft Layoffs Hit Coders Hardest With AI Costs on the Rise</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development/microsoft-layoffs-hit-coders-hardest-with-ai-costs-on-the-rise" target="_self" data-discover="true">Microsoft Layoffs Hit Coders Hardest With AI Costs on the Rise</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 15, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">2 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Bloomberg News" href="/author/bloomberg-news" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Bloomberg News" title="Picture of Bloomberg News"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bloomberg-news" target="_self" data-discover="true">Bloomberg News</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: cloud-native concept art" class="ListPreview-ImageLink" href="/cloud-native/cloud-native-architect-s-cheat-sheet-selecting-data-layer-technologies" target="_self" data-discover="true"><div title="cloud-native concept art" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta7ed73275b7a4b40/682488783f0a31b5bce17e38/cloud-native-1716x965_(29).jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta7ed73275b7a4b40/682488783f0a31b5bce17e38/cloud-native-1716x965_(29).jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="cloud-native concept art" title="cloud-native concept art"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cloudNative ListPreview-Keyword" href="/software-development/cloud-native" target="_self" data-discover="true">Cloud Native</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/cloud-native/cloud-native-architect-s-cheat-sheet-selecting-data-layer-technologies" target="_self" data-discover="true">Cloud-Native Architect's Cheat Sheet: Selecting Data Layer Technologies</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/cloud-native/cloud-native-architect-s-cheat-sheet-selecting-data-layer-technologies" target="_self" data-discover="true">Cloud-Native Architect's Cheat Sheet: Selecting Data Layer Technologies</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 14, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Industry Perspectives" href="/author/industry-perspectives" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Industry Perspectives" title="Picture of Industry Perspectives"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" target="_self" data-discover="true">Industry Perspectives</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Bitbucket home page" class="ListPreview-ImageLink" href="/software-development-techniques/untitled" target="_self" data-discover="true"><div title="Bitbucket home page" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd8244ff1fe67480/682257a12f276f3ea64586ad/Bitbucket.jpg-1716x965_-_2025-05-12.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd8244ff1fe67480/682257a12f276f3ea64586ad/Bitbucket.jpg-1716x965_-_2025-05-12.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Bitbucket home page" title="Bitbucket home page"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_softwareDevelopmentTechniques ListPreview-Keyword" href="/software-development/software-development-techniques" target="_self" data-discover="true">Software Development Techniques</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/software-development-techniques/untitled" target="_self" data-discover="true">Atlassian's Bitbucket: How It Stacks Up Against GitHub and GitLab</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/software-development-techniques/untitled" target="_self" data-discover="true">Atlassian's Bitbucket: How It Stacks Up Against GitHub and GitLab</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">May 14, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" href="/author/christopher-tozzi" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" target="_self" data-discover="true">Christopher Tozzi<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Technology analyst</span></div></div></div></div></div><nav role="navigation" aria-label="Pagination Navigation" data-component="pagination" class="ListContent-Pagination"><ul class="Pagination-Wrapper"><li><a tabindex="-1" aria-label="Cannot go to Previous page" class="Pagination-Link Pagination-Link_disabled" href="/software-development" target="_self" data-discover="true"><span class="Pagination-PageWrapper"><span class="Pagination-ArrowIconWrapper Pagination-ArrowIconWrapper_disabled"><span data-component="icon" data-name="ArrowLeft" class="Pagination-ArrowIcon Pagination-ArrowIcon_disabled DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;31.504&#x27;%20height=&#x27;30.705&#x27;%20viewBox=&#x27;0%200%2031.504%2030.705&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-arrow-left&#x27;%20data-name=&#x27;Icon%20awesome-arrow-left&#x27;%20d=&#x27;M18.105,31.3l-1.561,1.561a1.681,1.681,0,0,1-2.384,0L.492,19.2a1.681,1.681,0,0,1,0-2.384L14.161,3.143a1.681,1.681,0,0,1,2.384,0L18.105,4.7a1.689,1.689,0,0,1-.028,2.412L9.6,15.188H29.813A1.683,1.683,0,0,1,31.5,16.875v2.25a1.683,1.683,0,0,1-1.687,1.688H9.6l8.473,8.072A1.677,1.677,0,0,1,18.105,31.3Z&#x27;%20transform=&#x27;translate(0.004%20-2.647)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;31.504&#x27;%20height=&#x27;30.705&#x27;%20viewBox=&#x27;0%200%2031.504%2030.705&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-arrow-left&#x27;%20data-name=&#x27;Icon%20awesome-arrow-left&#x27;%20d=&#x27;M18.105,31.3l-1.561,1.561a1.681,1.681,0,0,1-2.384,0L.492,19.2a1.681,1.681,0,0,1,0-2.384L14.161,3.143a1.681,1.681,0,0,1,2.384,0L18.105,4.7a1.689,1.689,0,0,1-.028,2.412L9.6,15.188H29.813A1.683,1.683,0,0,1,31.5,16.875v2.25a1.683,1.683,0,0,1-1.687,1.688H9.6l8.473,8.072A1.677,1.677,0,0,1,18.105,31.3Z&#x27;%20transform=&#x27;translate(0.004%20-2.647)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span><span data-testid="labelText" class="Pagination-Move">Previous</span></span></a></li><li><a tabindex="-1" aria-label="Current page, page 1" class="Pagination-PageNumber Pagination-PageNumber_current" href="/software-development" target="_self" data-discover="true">1</a></li><li><a tabindex="0" aria-label="Go to page 2" class="Pagination-PageNumber" href="/software-development?page=2" target="_self" data-discover="true">2</a></li><li><a tabindex="0" aria-label="Go to page 3" class="Pagination-PageNumber" href="/software-development?page=3" target="_self" data-discover="true">3</a></li><li><a tabindex="0" aria-label="Go to page 4" class="Pagination-PageNumber" href="/software-development?page=4" target="_self" data-discover="true">4</a></li><li><a tabindex="0" aria-label="Go to page 5" class="Pagination-PageNumber" href="/software-development?page=5" target="_self" data-discover="true">5</a></li><li class="Pagination-Dots">…</li><li><a tabindex="0" aria-label="Go to page 52" class="Pagination-PageNumber Pagination-PageNumber_desktop" href="/software-development?page=52" target="_self" data-discover="true">52</a></li><li><a tabindex="0" aria-label="Go to Next page 2" class="Pagination-Link" href="/software-development?page=2" target="_self" data-discover="true"><span class="Pagination-PageWrapper"><span data-testid="labelText" class="Pagination-Move">Next</span><span class="Pagination-ArrowIconWrapper"><span data-component="icon" data-name="ArrowRight" class="Pagination-ArrowIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;31.504&#x27;%20height=&#x27;30.705&#x27;%20viewBox=&#x27;0%200%2031.504%2030.705&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-arrow-right&#x27;%20data-name=&#x27;Icon%20awesome-arrow-right&#x27;%20d=&#x27;M13.395,4.7l1.561-1.561a1.681,1.681,0,0,1,2.384,0L31.008,16.8a1.681,1.681,0,0,1,0,2.384L17.339,32.857a1.681,1.681,0,0,1-2.384,0L13.395,31.3a1.689,1.689,0,0,1,.028-2.412L21.9,20.813H1.688A1.683,1.683,0,0,1,0,19.125v-2.25a1.683,1.683,0,0,1,1.688-1.687H21.9L13.423,7.116A1.677,1.677,0,0,1,13.395,4.7Z&#x27;%20transform=&#x27;translate(0%20-2.647)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;31.504&#x27;%20height=&#x27;30.705&#x27;%20viewBox=&#x27;0%200%2031.504%2030.705&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-arrow-right&#x27;%20data-name=&#x27;Icon%20awesome-arrow-right&#x27;%20d=&#x27;M13.395,4.7l1.561-1.561a1.681,1.681,0,0,1,2.384,0L31.008,16.8a1.681,1.681,0,0,1,0,2.384L17.339,32.857a1.681,1.681,0,0,1-2.384,0L13.395,31.3a1.689,1.689,0,0,1,.028-2.412L21.9,20.813H1.688A1.683,1.683,0,0,1,0,19.125v-2.25a1.683,1.683,0,0,1,1.688-1.687H21.9L13.423,7.116A1.677,1.677,0,0,1,13.395,4.7Z&#x27;%20transform=&#x27;translate(0%20-2.647)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></span></a></li></ul></nav></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div class="EventsPromotions EventsPromotions_isSidebar" data-module="events-promotions-module" style="background-color:#fdb714"><div data-testid="events-promotions-logo-section" class="EventsPromotions-LogoSection EventsPromotions-LogoSection_isSidebar"><a data-testid="events-promotions-logo-link" aria-label="Visit undefined link" href="/about-us" target="_self" data-discover="true"><img data-component="image" class="EventsPromotions-Logo" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaca47a5530210e35/69039af7d27f993559042555/ITP23_Graphics_Logos-SCM.png?width=800&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaca47a5530210e35/69039af7d27f993559042555/ITP23_Graphics_Logos-SCM.png?width=800&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="ITPro Today" title="ITPro Today"/></a></div><div class="EventsPromotions-ContentSection EventsPromotions-ContentSection_isSidebar"><p class="EventsPromotions-Title" data-testid="events-promotions-title">Important Update</p><h2 class="EventsPromotions-Description EventsPromotions-Description_isSidebar" data-testid="events-promotions-description">ITPro Today ended publication on September 30, 2025.</h2><a data-component="button" data-testid="button_button" class="Button Button_size_medium Button_variant_darkOutlined EventsPromotions-CtaButton" href="/about-us" target="_self" data-discover="true"><span class="Button-ContentWrapper">Learn More</span></a></div></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_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Editor's Choice</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="/c-programming-language/c-in-2025-how-the-language-is-adapting-to-a-shifting-tech-landscape" target="_self" data-discover="true"><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltad0d02f71caafd81/681baa99f1a1b0d941601ffa/C_-1716x965_-_2025-05-07.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltad0d02f71caafd81/681baa99f1a1b0d941601ffa/C_-1716x965_-_2025-05-07.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="C++ printed on top of code" title="C++ printed on top of code"/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cCC HorizontalCard-Keyword" href="/software-development/programming-languages/c-programming-language" target="_self" data-discover="true">C/C++/C#</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/c-programming-language/c-in-2025-how-the-language-is-adapting-to-a-shifting-tech-landscape" target="_self" data-discover="true">C++ in 2025: How the Language Is Adapting to a Shifting Tech Landscape</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/c-programming-language/c-in-2025-how-the-language-is-adapting-to-a-shifting-tech-landscape" target="_self" data-discover="true">C++ in 2025: How the Language Is Adapting to a Shifting Tech Landscape</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">May 8, 2025</p></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"><div class="ContentList-IconWrapper"><span data-component="icon" data-name="Document" class="ContentList-Icon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></div><span class="ContentList-Title" data-testid="content-list-title">Exclusive ITPro Resources</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itManagement ContentList-SponsoredContent" href="/it-management" target="_self" data-discover="true">IT Management</a><a data-testid="content-list-item-title" href="/it-management/itpro-today-s-2025-it-priorities-report" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">ITPro Today's 2025 IT Priorities Report</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 8, 2025</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_itManagement ContentList-SponsoredContent" href="/it-management" target="_self" data-discover="true">IT Management</a><a data-testid="content-list-item-title" href="/it-management/edge-computing-trends-adoption-challenges-and-future-outlook" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">Edge Computing Trends: Adoption, Challenges, and Future Outlook</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Jul 15, 2025</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_devOps ContentList-SponsoredContent" href="/it-management/devops" target="_self" data-discover="true">DevOps</a><a data-testid="content-list-item-title" href="/devops/itpro-today-s-2024-state-of-devops-report" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">ITPro Today’s 2024 State of DevOps Report</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Dec 16, 2024</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_disasterRecovery ContentList-SponsoredContent" href="/data-storage/disaster-recovery" target="_self" data-discover="true">Disaster Recovery</a><a data-testid="content-list-item-title" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">BCDR Basics: A Quick Reference Guide for Business Continuity &amp; Disaster Recovery</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Oct 10, 2024</span></li></ul><div class="ContentList-CTAButton"><a data-component="button" data-testid="button_a" class="Button Button_size_medium Button_variant_textLink" href="/documents" target="_self" data-discover="true"><span class="Button-ContentWrapper">See all ITPro Resources</span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></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">Recent What Is</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/latest-what-is" target="_self" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">Explore more What Is</span><span data-component="icon" data-name="ChevronRight" class="ContentCards-LinkIcon DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></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="/it-infrastructure/legacy-it-infrastructure-not-the-villain-we-make-it-out-to-be" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt96810c3cdc7bd80c/68a2bdae3719f82bec2434c3/legacy-system-1716x965_-_2025-08-18.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt96810c3cdc7bd80c/68a2bdae3719f82bec2434c3/legacy-system-1716x965_-_2025-08-18.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="&quot;legacy system&quot; keyboard keys" title="&quot;legacy system&quot; keyboard keys"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itInfrastructure ContentPreview-Category" href="/it-infrastructure" target="_self" data-discover="true">IT Infrastructure</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-infrastructure/legacy-it-infrastructure-not-the-villain-we-make-it-out-to-be" target="_self" data-discover="true">Legacy IT Infrastructure: Not the Villain We Make It Out to Be</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-infrastructure/legacy-it-infrastructure-not-the-villain-we-make-it-out-to-be" target="_self" data-discover="true">Legacy IT Infrastructure: Not the Villain We Make It Out to Be</a></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="/cloud-computing/what-are-tpus-a-guide-to-tensor-processing-units" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte8baef3e47ae1621/688a08c8638635f9ab49dea8/Google-TPU.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte8baef3e47ae1621/688a08c8638635f9ab49dea8/Google-TPU.jpg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Google TPU pod" title="Google TPU pod"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" target="_self" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/what-are-tpus-a-guide-to-tensor-processing-units" target="_self" data-discover="true">What Are TPUs? A Guide to Tensor Processing Units</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/what-are-tpus-a-guide-to-tensor-processing-units" target="_self" data-discover="true">What Are TPUs? A Guide to Tensor Processing Units</a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer Footer_length_2 Footer_withoutBrandSection"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a href="/" target="_self" data-discover="true"><img title="ITPro Today Logo" data-component="image" class="Footer-LogoImage Footer-LogoImage_length_2" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="ITPro Today Logo"/></a></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Discover More</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.datacenterknowledge.com/">Data Center Knowledge</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.informationweek.com/">InformationWeek</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.networkcomputing.com/">Network Computing</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.nojitter.com/">No Jitter</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://afcom.com/">AFCOM</a></div></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Working With Us</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" rel="noreferrer" href="/about-us" target="_self" data-discover="true">About Us</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://info.wrightsmedia.com/informa-licensing-reprints-request">Reprints</a><a class="LinkSection-Link" rel="noreferrer" href="/advertise" target="_self" data-discover="true">Advertise</a><a class="LinkSection-Link" rel="noreferrer" href="/contact-us" target="_self" 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" data-action-type="sign-up" data-name="subscribe-footer" href="/newsletter-signup" target="_self" data-discover="true"><span class="Button-ContentWrapper">Newsletter Sign-Up</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 target="_blank" rel="noreferrer" aria-label="Facebook" href="https://www.facebook.com/ITProToday/"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);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/ITProToday"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);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/itpro-today/"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);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="Youtube" href="https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);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/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB"><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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a rel="noreferrer" aria-label="RSS" href="/rss.xml" target="_self" 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 DefaultIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></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" rel="noreferrer" 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/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png?width=1280&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2026 TechTarget, Inc. d/b/a Informa TechTarget. 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.techtarget.com/">Home<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html">CCPA: Do not sell my personal info<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatechtarget.com/privacy-policy/#cookies">Cookies<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatechtarget.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatechtarget.com/terms-and-conditions/">Terms</a></div></div></div><div class="PrivacyChoices"><button id="cpra_button" class="PrivacyChoices-Button" aria-label="Your Privacy Choices" disabled=""><img class="PrivacyChoices-Image" src="data:image/svg+xml,%3csvg%20width=&#x27;30&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2030%2014&#x27;%20fill=&#x27;none&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%20clip-path=&#x27;url(%23clip0_4001_1792)&#x27;%3e%3cpath%20fill-rule=&#x27;evenodd&#x27;%20clip-rule=&#x27;evenodd&#x27;%20d=&#x27;M7.39998%2012.8H14.2L17.3%201.20001H7.39998C4.19998%201.20001%201.59998%203.80001%201.59998%207.00001C1.59998%2010.2%204.19998%2012.8%207.39998%2012.8Z&#x27;%20fill=&#x27;white&#x27;/%3e%3cpath%20fill-rule=&#x27;evenodd&#x27;%20clip-rule=&#x27;evenodd&#x27;%20d=&#x27;M22.6%200H7.40002C3.50002%200%200.400024%203.1%200.400024%207C0.400024%2010.9%203.50002%2014%207.40002%2014H22.6C26.5%2014%2029.6%2010.9%2029.6%207C29.6%203.1%2026.4%200%2022.6%200ZM1.60002%207C1.60002%203.8%204.20002%201.2%207.40002%201.2H17.3L14.2%2012.8H7.40002C4.20002%2012.8%201.60002%2010.2%201.60002%207Z&#x27;%20fill=&#x27;%230066FF&#x27;/%3e%3cpath%20d=&#x27;M24.6%203.99998C24.8%204.19998%2024.8%204.59998%2024.6%204.79998L22.5%206.99998L24.7%209.19998C24.9%209.39998%2024.9%209.79998%2024.7%209.99998C24.5%2010.2%2024.1%2010.2%2023.9%209.99998L21.7%207.79998L19.5%209.99998C19.3%2010.2%2018.9%2010.2%2018.7%209.99998C18.5%209.79998%2018.5%209.39998%2018.7%209.19998L20.8%206.99998L18.6%204.79998C18.4%204.59998%2018.4%204.19998%2018.6%203.99998C18.8%203.79998%2019.2%203.79998%2019.4%203.99998L21.6%206.19998L23.8%203.99998C24%203.79998%2024.4%203.79998%2024.6%203.99998Z&#x27;%20fill=&#x27;white&#x27;/%3e%3cpath%20d=&#x27;M12.7%204.10001C12.9%204.30001%2013%204.70001%2012.8%204.90001L8.6%209.80001C8.5%209.90001%208.4%2010%208.3%2010C8.1%2010.1%207.8%2010.1%207.6%209.90001L5.4%207.70001C5.2%207.50001%205.2%207.10001%205.4%206.90001C5.6%206.70001%206%206.70001%206.2%206.90001L8%208.60001L11.8%204.10001C12%203.90001%2012.4%203.90001%2012.7%204.10001Z&#x27;%20fill=&#x27;%230066FF&#x27;/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=&#x27;clip0_4001_1792&#x27;%3e%3crect%20width=&#x27;30&#x27;%20height=&#x27;14&#x27;%20fill=&#x27;white&#x27;/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e" alt=""/><span class="PrivacyChoices-ButtonText">Your Privacy Choices</span></button></div></div></footer></div></main><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,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"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-g1L0_BjN.js";
import * as route1 from "/assets/_topic._index-CVsWdP1V.js";
  window.__reactRouterManifest = {
  "entry": {
    "module": "/assets/entry.client-WQ4JFhQx.js",
    "imports": [
      "/assets/react-BqmUObHr.js",
      "/assets/react-dom-B0RQ2kJA.js",
      "/assets/jsx-runtime-DBNpHuQp.js",
      "/assets/preload-helper-CbI0Klgk.js"
    ],
    "css": []
  },
  "routes": {
    "root": {
      "id": "root",
      "path": "",
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasErrorBoundary": true,
      "module": "/assets/root-g1L0_BjN.js",
      "imports": [
        "/assets/react-BqmUObHr.js",
        "/assets/react-dom-B0RQ2kJA.js",
        "/assets/jsx-runtime-DBNpHuQp.js",
        "/assets/preload-helper-CbI0Klgk.js",
        "/assets/src-Y0ZzoQgU.js",
        "/assets/src-CdyytUcs.js",
        "/assets/errorBoundary-DmYlG005.js",
        "/assets/index.es-_m7mwVXk.js",
        "/assets/esm-c-7d8dMx.js",
        "/assets/src-ConzfMuK2.js",
        "/assets/src-Cl0B-dX-.js",
        "/assets/src-C649mUwh.js",
        "/assets/src-DhCzO63O.js",
        "/assets/src-29dM-DRN.js",
        "/assets/meta-CKzx_q_i.js",
        "/assets/src-DrUZA_BS.js",
        "/assets/striptags-C6Z8qEb3.js",
        "/assets/src-DT8pN15R.js",
        "/assets/src-gHZs4WkN2.js",
        "/assets/src-Cuae8w-Y.js",
        "/assets/src-Dk-W56OU2.js",
        "/assets/src-B6W36Q0u.js",
        "/assets/src-Btvz-lqp.js",
        "/assets/src-4sW5lPB1.js",
        "/assets/src-BGS4VtPw.js",
        "/assets/src-ICN0g-KI.js",
        "/assets/src-XrfQbmpM.js",
        "/assets/src-CqxX1oo3.js",
        "/assets/src-CAAvt38V.js",
        "/assets/src-CW1a1kK92.js",
        "/assets/src-BB6jB7X3.js",
        "/assets/src-Cn3lWZ8t.js",
        "/assets/src-CmpySRAv.js",
        "/assets/src-BOW2TAy82.js",
        "/assets/extends-DQyfp-FM.js",
        "/assets/_baseForOwn-5n8zOHco.js",
        "/assets/useIsomorphicLayoutEffect-CrpupiLT.js",
        "/assets/toNumber-DMNTeGz6.js"
      ],
      "css": []
    },
    "routes/$topic._index": {
      "id": "routes/$topic._index",
      "parentId": "root",
      "path": ":topic",
      "index": true,
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasErrorBoundary": true,
      "module": "/assets/_topic._index-CVsWdP1V.js",
      "imports": [
        "/assets/react-BqmUObHr.js",
        "/assets/src-Y0ZzoQgU.js",
        "/assets/src-CdyytUcs.js",
        "/assets/errorBoundary-DmYlG005.js",
        "/assets/dist-CVDZOTen.js",
        "/assets/index.es-_m7mwVXk.js",
        "/assets/esm-c-7d8dMx.js",
        "/assets/src-ConzfMuK2.js",
        "/assets/src-Cl0B-dX-.js",
        "/assets/src-C649mUwh.js",
        "/assets/src-DhCzO63O.js",
        "/assets/src-7rC7uI2M.js",
        "/assets/src-29dM-DRN.js",
        "/assets/react-dom-B0RQ2kJA.js",
        "/assets/jsx-runtime-DBNpHuQp.js",
        "/assets/striptags-C6Z8qEb3.js",
        "/assets/src-BwANJO-C2.js",
        "/assets/src-DT8pN15R.js",
        "/assets/src-gHZs4WkN2.js",
        "/assets/src-C3iJimQX.js",
        "/assets/src-Cuae8w-Y.js",
        "/assets/src-Dk-W56OU2.js",
        "/assets/src-B6W36Q0u.js",
        "/assets/src-CAnJkWy2.js",
        "/assets/src-Btvz-lqp.js",
        "/assets/src-4sW5lPB1.js",
        "/assets/src-BTo5HBHy.js",
        "/assets/src-BGS4VtPw.js",
        "/assets/src-ICN0g-KI.js",
        "/assets/src-XrfQbmpM.js",
        "/assets/src-D2FAMs-5.js",
        "/assets/src-CqxX1oo3.js",
        "/assets/src-DpWtZdRX2.js",
        "/assets/src-CAAvt38V.js",
        "/assets/src-CW1a1kK92.js",
        "/assets/src-BB6jB7X3.js",
        "/assets/src-Cn3lWZ8t.js",
        "/assets/src-CB-kFddY.js",
        "/assets/src-CmpySRAv.js",
        "/assets/src-BOW2TAy82.js",
        "/assets/_topic._index-BER9lnXT.js",
        "/assets/src-C5UoGtyW.js",
        "/assets/extends-DQyfp-FM.js",
        "/assets/preload-helper-CbI0Klgk.js",
        "/assets/_baseForOwn-5n8zOHco.js",
        "/assets/meta-CKzx_q_i.js",
        "/assets/useIsomorphicLayoutEffect-CrpupiLT.js",
        "/assets/toNumber-DMNTeGz6.js",
        "/assets/string-BCKS3Bc8.js"
      ],
      "css": []
    },
    "routes/_index": {
      "id": "routes/_index",
      "parentId": "root",
      "index": true,
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasClientMiddleware": false,
      "hasErrorBoundary": true,
      "module": "/assets/_index-CLAo13lX.js",
      "imports": [
        "/assets/react-BqmUObHr.js",
        "/assets/src-Y0ZzoQgU.js",
        "/assets/src-CdyytUcs.js",
        "/assets/errorBoundary-DmYlG005.js",
        "/assets/index.es-_m7mwVXk.js",
        "/assets/src-C649mUwh.js",
        "/assets/src-29dM-DRN.js",
        "/assets/react-dom-B0RQ2kJA.js",
        "/assets/jsx-runtime-DBNpHuQp.js",
        "/assets/src-BwANJO-C2.js",
        "/assets/src-DT8pN15R.js",
        "/assets/src-gHZs4WkN2.js",
        "/assets/src-Cuae8w-Y.js",
        "/assets/src-Dk-W56OU2.js",
        "/assets/src-Btvz-lqp.js",
        "/assets/src-ICN0g-KI.js",
        "/assets/src-XrfQbmpM.js",
        "/assets/src-D2FAMs-5.js",
        "/assets/src-CW1a1kK92.js",
        "/assets/src-CmpySRAv.js",
        "/assets/src-BOW2TAy82.js",
        "/assets/_index-BtWT53_V.js",
        "/assets/extends-DQyfp-FM.js",
        "/assets/preload-helper-CbI0Klgk.js",
        "/assets/toNumber-DMNTeGz6.js",
        "/assets/meta-CKzx_q_i.js"
      ],
      "css": []
    }
  },
  "url": "/assets/manifest-a04e9d93.js",
  "version": "a04e9d93"
};
  window.__reactRouterRouteModules = {"root":route0,"routes/$topic._index":route1};

import("/assets/entry.client-WQ4JFhQx.js");</script><script defer="" src="https://www.instagram.com/embed.js"></script><!--$--><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_1794\":-5,\"_1795\":-5},\"loaderData\",{\"_3\":4,\"_1025\":1026},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_22\":23,\"_24\":18,\"_25\":26,\"_52\":53,\"_66\":67,\"_68\":69,\"_91\":92,\"_810\":811,\"_812\":-7,\"_813\":814,\"_828\":829,\"_921\":922,\"_1021\":1022,\"_1023\":1024},\"href\",\"https://www.itprotoday.com/software-development\",\"brand\",\"itprotoday\",\"domainUrl\",\"https://www.itprotoday.com\",\"authenticationStatus\",\"anonymous\",\"siteName\",\"ITPro Today\",\"authConfig\",{\"_17\":18,\"_19\":-7,\"_20\":-7,\"_21\":18},\"enabled\",false,\"authenticationConfigId\",\"standaloneRegistrationPage\",\"disableCaptcha\",\"favicons\",[],\"isDctsTurnOn\",\"cookieBanner\",{\"_27\":28,\"_29\":28,\"_30\":31,\"_49\":50,\"_51\":28},\"stub\",true,\"advancedConsentOverride\",\"settings\",{\"_32\":33,\"_34\":35,\"_36\":37,\"_38\":39,\"_40\":41,\"_42\":41,\"_43\":44,\"_45\":46,\"_47\":48},\"data-cfasync\",\"false\",\"data-local-sync\",\"allow-network-observable\",\"data-prompt\",\"1\",\"data-report-only\",\"off\",\"data-dismissed-view-state\",\"Collapsed\",\"data-tcf-ui-dismissed-view-state\",\"data-ui-shadow-root\",\"open\",\"data-privacy-policy\",\"https://www.techtarget.com/privacy-policy/\",\"src\",\"https://transcend-cdn.com/cm/ef49a3f1-d8c1-47d6-88fc-50e41130631f/airgap.js\",\"props\",{\"_32\":33,\"_34\":35,\"_36\":37,\"_38\":39,\"_40\":41,\"_42\":41,\"_43\":44,\"_45\":46,\"_47\":48},\"transcend\",\"ui\",{\"_7\":8,\"_54\":55,\"_56\":57},\"theme\",\"theme1\",\"font\",{\"_58\":59,\"_64\":65},\"primary\",{\"_60\":61,\"_62\":63},\"name\",\"Inter\",\"url\",\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap\",\"secondary\",{\"_60\":61,\"_62\":63},\"environment\",\"prod\",\"featureToggles\",{\"_70\":18,\"_71\":18,\"_72\":18,\"_73\":18,\"_74\":18,\"_75\":18,\"_76\":18,\"_77\":18,\"_78\":28,\"_79\":18,\"_80\":81,\"_82\":18,\"_83\":28,\"_84\":28,\"_85\":18,\"_86\":28,\"_87\":28,\"_88\":28,\"_89\":28,\"_90\":28},\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"useContentApiVersion2\",\"cloudflareCachingEnabled\",\"oneTrustEnabled\",\"transcendEnabled\",\"disablePaymentServiceHealthCheck\",\"useTechInformaBar\",\"useNewEventResolver\",\"useMassRedirectsEngine\",\"layout\",{\"_93\":94,\"_114\":115,\"_138\":139,\"_615\":616,\"_737\":738,\"_744\":745},\"socialLinks\",[95,99,102,105,108,111],{\"_96\":97,\"_62\":98},\"type\",\"Facebook\",\"https://www.facebook.com/ITProToday/\",{\"_96\":100,\"_62\":101},\"Twitter\",\"https://twitter.com/ITProToday\",{\"_96\":103,\"_62\":104},\"Linkedin\",\"https://www.linkedin.com/company/itpro-today/\",{\"_96\":106,\"_62\":107},\"Youtube\",\"https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA\",{\"_96\":109,\"_62\":110},\"GoogleNews\",\"https://news.google.com/publications/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB\",{\"_96\":112,\"_62\":113},\"RSS\",\"https://www.itprotoday.com/rss.xml\",\"informaBar\",{\"_17\":28,\"_116\":117,\"_135\":136},\"leftSection\",{\"_118\":119,\"_120\":121},\"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\",[122,126,129,132],{\"_123\":124,\"_62\":125},\"title\",\"INFORMA PLC\",\"https://informa.com/\",{\"_123\":127,\"_62\":128},\"ABOUT US\",\"https://informa.com/about-us/\",{\"_123\":130,\"_62\":131},\"INVESTOR RELATIONS\",\"https://informa.com/investors/\",{\"_123\":133,\"_62\":134},\"TALENT\",\"https://informa.com/talent/\",\"rightSection\",{\"_118\":137},\"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\",{\"_140\":141,\"_605\":606},\"mainMenuItems\",[142,220,280,330,371,410,467,510,532,568],{\"_123\":143,\"_62\":144,\"_145\":146,\"_147\":144,\"_148\":28,\"_120\":149,\"_162\":163},\"Cloud\",\"/cloud-computing\",\"seeAllLink\",\"SEE ALL Cloud\",\"seeAllLinkUrl\",\"hasSubMenu\",[150,153,156,159],{\"_123\":151,\"_62\":152},\"Cloud Services\",\"/cloud-computing/cloud-services\",{\"_123\":154,\"_62\":155},\"Hybrid Cloud\",\"/cloud-computing/hybrid-cloud\",{\"_123\":157,\"_62\":158},\"Private Cloud\",\"/cloud-computing/private-cloud\",{\"_123\":160,\"_62\":161},\"Public Cloud\",\"/cloud-computing/public-cloud\",\"recentContents\",[164,201],{\"_165\":166,\"_170\":171,\"_172\":171,\"_173\":174,\"_175\":176,\"_177\":178,\"_179\":180,\"_181\":178,\"_182\":183,\"_184\":144,\"_185\":186,\"_187\":188,\"_195\":196,\"_197\":198,\"_199\":200},\"thumbnail\",{\"_47\":167,\"_168\":169},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc24f8d94b6143bd5/68d1575742ae229fcf9e9533/cloud_AI_fusion_concept_-_digital_art_showing_interconnected_cloud_icon_with_glowing_AI_circuits.jpg\",\"alt\",\"cloud AI fusion concept - digital art showing interconnected cloud icon with glowing AI circuits\",\"articleName\",\"The Pros and Cons of AI Agents for Cloud Administration\",\"mobileHeadline\",\"articleSummary\",\"Agentic AI could revolutionize cloud management. Examine AI agents’ pros and cons to determine when they are appropriate for cloud administration.\",\"articleUrl\",\"/cloud-computing/the-pros-and-cons-of-ai-agents-for-cloud-administration\",\"listPageUrl\",\"\",\"date\",\"Sep 22, 2025\",\"webinarStartTime\",\"categoryName\",\"Cloud Computing\",\"categoryUrl\",\"contentType\",\"Article\",\"contributors\",[189],{\"_60\":190,\"_191\":192,\"_193\":194},\"Christopher Tozzi\",\"link\",\"/author/christopher-tozzi\",\"avatar\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg\",\"timeRead\",1,\"variant\",\"card-vertical\",\"layoutVariant\",\"vertical\",{\"_165\":202,\"_170\":205,\"_172\":205,\"_173\":206,\"_175\":207,\"_177\":178,\"_179\":208,\"_181\":178,\"_182\":209,\"_184\":210,\"_185\":186,\"_187\":211,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":203,\"_168\":204},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt523754e60b684b20/68c33020ac52959a8551774a/digital_art_of_an_artificial_intelligence_computer_processor_unit.jpg\",\"digital art of an artificial intelligence computer processor unit\",\"Microsoft, OpenAI Continue To Push Beyond Their Partnership\",\"OpenAI and Microsoft appear to be moving in distinct directions.\",\"/ai-machine-learning/microsoft-openai-continue-to-push-beyond-their-partnership\",\"Sep 11, 2025\",\"AI \u0026 Machine Learning\",\"/digital-transformation/ai-machine-learning\",[212,216],{\"_60\":213,\"_191\":214,\"_193\":215},\"Esther Shittu\",\"/author/esther-shittu\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7cf762a285d146fa/68c32ea69685bc8c6b9c2412/shittu_esther.webp\",{\"_60\":217,\"_191\":218,\"_193\":219},\"AI Business\",\"/author/ai-business\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5d5796e24048bea2/6675c3977ab673b5f8549c58/aibusiness-DR2ONH7U.ico\",{\"_123\":221,\"_62\":222,\"_145\":223,\"_147\":222,\"_148\":28,\"_120\":224,\"_162\":255},\"OS\",\"/operating-systems\",\"See All OS\",[225,228,231,234,237,240,243,246,249,252],{\"_123\":226,\"_62\":227},\"Microsoft Windows\",\"/operating-systems/microsoft-windows\",{\"_123\":229,\"_62\":230},\"Windows Server\",\"/operating-systems/windows-server\",{\"_123\":232,\"_62\":233},\"PowerShell\",\"/operating-systems/powershell\",{\"_123\":235,\"_62\":236},\"Linux OS\",\"/operating-systems/linux-os\",{\"_123\":238,\"_62\":239},\"SQL Server\",\"/operating-systems/sql-server\",{\"_123\":241,\"_62\":242},\"MacOS\",\"/operating-systems/macos\",{\"_123\":244,\"_62\":245},\"Android OS\",\"/operating-systems/android-os\",{\"_123\":247,\"_62\":248},\"ChromeOS\",\"/operating-systems/chromeos\",{\"_123\":250,\"_62\":251},\"Ubuntu\",\"/operating-systems/ubuntu\",{\"_123\":253,\"_62\":254},\"Red Hat OS\",\"/operating-systems/red-hat-os\",[256,270],{\"_165\":257,\"_170\":260,\"_172\":260,\"_173\":261,\"_175\":262,\"_177\":178,\"_179\":263,\"_181\":178,\"_182\":232,\"_184\":233,\"_185\":186,\"_187\":264,\"_195\":269,\"_197\":198,\"_199\":200},{\"_47\":258,\"_168\":259},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt04700398a9275e3f/68941fb1eed222f599429eb9/cybersecurity-defense-1716x965_-_2025-08-06.jpg\",\"Digital security and cybersecurity defense with hacker protection icon and privacy authentication lock on laptop\",\"Securing PowerShell: How to Stop Prompt Injection Attacks, Part 5\",\"The final part of this five-part series explains how to defend against a prompt injection attack. \",\"/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-5\",\"Aug 13, 2025\",[265],{\"_60\":266,\"_191\":267,\"_193\":268},\"Brien Posey\",\"/author/brien-posey\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg\",4,{\"_165\":271,\"_170\":274,\"_172\":274,\"_173\":275,\"_175\":276,\"_177\":178,\"_179\":277,\"_181\":178,\"_182\":232,\"_184\":233,\"_185\":186,\"_187\":278,\"_195\":269,\"_197\":198,\"_199\":200},{\"_47\":272,\"_168\":273},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf0c83fa41152e43e/6893f7244c8a42107c10eb29/hacker-hand-1716x965_-_2025-08-06.jpg\",\"hand coming through laptop screen to type on keyboard\",\"Securing PowerShell: How to Stop Prompt Injection Attacks, Part 4\",\"The fourth part of this five-part series on stopping prompt injection attacks describes how dangerous such attacks can be.\",\"/powershell/securing-powershell-how-to-stop-prompt-injection-attacks-part-4\",\"Aug 11, 2025\",[279],{\"_60\":266,\"_191\":267,\"_193\":268},{\"_123\":281,\"_62\":282,\"_145\":283,\"_147\":282,\"_148\":28,\"_120\":284,\"_162\":300},\"IT Mgmt\",\"/it-management\",\"See All IT Mgmt\",[285,288,291,294,297],{\"_123\":286,\"_62\":287},\"IT Operations\",\"/it-management/it-operations\",{\"_123\":289,\"_62\":290},\"DevOps\",\"/it-management/devops\",{\"_123\":292,\"_62\":293},\"Ops and More\",\"/it-management/ops-and-more\",{\"_123\":295,\"_62\":296},\"IT Sustainability\",\"/it-management/it-sustainability\",{\"_123\":298,\"_62\":299},\"IT Automation\",\"/it-management/it-automation\",[301,315],{\"_165\":302,\"_170\":305,\"_172\":305,\"_173\":306,\"_175\":307,\"_177\":178,\"_179\":308,\"_181\":178,\"_182\":295,\"_184\":296,\"_185\":186,\"_187\":309,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":303,\"_168\":304},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteb9af36fea299c7f/68c0715feaa12e2a44308cab/windup_lightbulb_contains_green_gears_surrounded_by_barren_landscape.jpg\",\"windup lightbulb contains green gears surrounded by barren landscape\",\"The Truth About Renewable Energy in Data Centers\",\"While many data center operators claim full renewable coverage, most rely on energy credits and offsets rather than direct sourcing.\",\"/it-sustainability/the-truth-about-renewable-energy-in-data-centers\",\"Sep 9, 2025\",[310,311],{\"_60\":190,\"_191\":192,\"_193\":194},{\"_60\":312,\"_191\":313,\"_193\":314},\"Data Center Knowledge\",\"/author/data-center-knowledge\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbfc1cdb5b46a19b7/6647115632777426bbc9b8b0/DCK_Favicon_RGB_512x512.png\",{\"_165\":316,\"_170\":319,\"_172\":319,\"_173\":320,\"_175\":321,\"_177\":178,\"_179\":322,\"_181\":178,\"_182\":323,\"_184\":282,\"_185\":186,\"_187\":324,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":317,\"_168\":318},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd034740155f1bbae/68b0789e04a44432f52d4b08/black-box-1716x965_-_2025-08-28.jpg\",\"black box\",\"To Survive Server Crashes, IT Needs a 'Black Box'\",\"While aviation relies on comprehensive black box data for incident investigation, IT organizations struggle to accurately reconstruct what happened after outages.\",\"/it-management/to-survive-server-crashes-it-needs-a-black-box-\",\"Sep 3, 2025\",\"IT Management\",[325],{\"_60\":326,\"_191\":327,\"_193\":328},\"Industry Perspectives\",\"/author/industry-perspectives\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png\",5,{\"_123\":331,\"_62\":332,\"_145\":333,\"_147\":332,\"_148\":28,\"_120\":334,\"_162\":344},\"Career\",\"/career-management\",\"See All Career Mgmt\",[335,338,341],{\"_123\":336,\"_62\":337},\"Career Tips\",\"/career-management/career-tips\",{\"_123\":339,\"_62\":340},\"Certifications\",\"/career-management/certifications\",{\"_123\":342,\"_62\":343},\"Training\",\"/career-management/training\",[345,357],{\"_165\":346,\"_170\":349,\"_172\":349,\"_173\":350,\"_175\":351,\"_177\":178,\"_179\":352,\"_181\":178,\"_182\":353,\"_184\":332,\"_185\":186,\"_187\":354,\"_195\":356,\"_197\":198,\"_199\":200},{\"_47\":347,\"_168\":348},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88934dedf7c63e13/68b034dd3a179376acba490c/AI-1716x965_-_2025-06-02.jpg\",\"finger pressing AI button\",\"AI's Career Ladder Crisis: Entry-Level Tech Jobs Are Vanishing\",\"Recent college graduates face unprecedented unemployment as AI increasingly performs tasks once reserved for entry-level positions, fundamentally altering the traditional path to professional success.\",\"/career-management/ai-s-career-ladder-crisis-entry-level-tech-jobs-are-vanishing\",\"Aug 29, 2025\",\"Career Management\",[355],{\"_60\":326,\"_191\":327,\"_193\":328},7,{\"_165\":358,\"_170\":361,\"_172\":361,\"_173\":362,\"_175\":363,\"_177\":178,\"_179\":364,\"_181\":178,\"_182\":323,\"_184\":282,\"_185\":186,\"_187\":365,\"_195\":370,\"_197\":198,\"_199\":200},{\"_47\":359,\"_168\":360},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta2d6b81219014e04/68ad90e70b71a91f9834e4f1/diverse-1716x965_-_2025-08-26T064649.865.jpg\",\"hands of diverse people clasping\",\"Why DEI Won't Die: The Benefits of a Diverse IT Workforce\",\"Here are best practices for building a diverse workforce to boost revenue and gain a competitive edge.\",\"/it-management/why-dei-won-t-die-the-benefits-of-a-diverse-it-workforce\",\"Aug 26, 2025\",[366],{\"_60\":367,\"_191\":368,\"_193\":369},\"Nathan Eddy\",\"/author/nathan-eddy\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp\",6,{\"_123\":372,\"_62\":373,\"_145\":374,\"_147\":373,\"_148\":28,\"_120\":375,\"_162\":388},\"Storage\",\"/data-storage\",\"See All Data Storage\",[376,379,382,385],{\"_123\":377,\"_62\":378},\"Cloud Storage\",\"/data-storage/cloud-storage\",{\"_123\":380,\"_62\":381},\"High Speed Storage\",\"/data-storage/high-speed-storage\",{\"_123\":383,\"_62\":384},\"Data Backup\",\"/data-storage/data-backup\",{\"_123\":386,\"_62\":387},\"Disaster Recovery\",\"/data-storage/disaster-recovery\",[389,399],{\"_165\":390,\"_170\":393,\"_172\":393,\"_173\":394,\"_175\":395,\"_177\":178,\"_179\":396,\"_181\":178,\"_182\":383,\"_184\":384,\"_185\":186,\"_187\":397,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":391,\"_168\":392},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca26714d3ed57466/68b074fcb07f45be523a7492/data-1716x965_-_2025-01-18.jpg\",\"data\",\"You Backed Up Your Data, but Can You Bring It Back?\",\"Despite investing in backup solutions, organizations struggle with complex recovery processes. Here are seven practices that strengthen backup and recovery.\",\"/data-backup/you-backed-up-your-data-but-can-you-bring-it-back-\",\"Sep 1, 2025\",[398],{\"_60\":326,\"_191\":327,\"_193\":328},{\"_165\":400,\"_170\":403,\"_172\":403,\"_173\":404,\"_175\":405,\"_177\":178,\"_179\":406,\"_181\":178,\"_182\":407,\"_184\":373,\"_185\":186,\"_187\":408,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":401,\"_168\":402},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cf52f98a7e4f716/6881352a9756bbacdc706398/cohort-analysis.jpg-1716x965_-_2025-07-23.jpg\",\"cohort analysis on cogwheels\",\"Why Cohort Analysis Is the Key to Better Product Marketing Decisions\",\"In this Q\u0026A, data scientist Arun Prem Sanker explains the benefits of segmenting customers into cohorts based on behavior patterns. \",\"/data-storage/why-cohort-analysis-is-the-key-to-better-product-marketing-decisions\",\"Jul 23, 2025\",\"Data Storage\",[409],{\"_60\":326,\"_191\":327,\"_193\":328},{\"_123\":411,\"_62\":412,\"_145\":413,\"_147\":412,\"_148\":28,\"_120\":414,\"_162\":436},\"Security\",\"/it-security\",\"See All IT Security\",[415,418,421,424,427,430,433],{\"_123\":416,\"_62\":417},\"Vulnerabilities \u0026 Threats\",\"/it-security/vulnerabilities-threats\",{\"_123\":419,\"_62\":420},\"Attacks \u0026 Breaches\",\"/it-security/attacks-breaches\",{\"_123\":422,\"_62\":423},\"Regulatory Compliance\",\"/it-security/regulatory-compliance\",{\"_123\":425,\"_62\":426},\"Data Privacy\",\"/it-security/data-privacy\",{\"_123\":428,\"_62\":429},\"Cloud Security\",\"/it-security/cloud-security\",{\"_123\":431,\"_62\":432},\"Endpoint Security\",\"/it-security/endpoint-security\",{\"_123\":434,\"_62\":435},\"Identity Mgmt \u0026 Access Control\",\"/it-security/identity-management-access-control\",[437,451],{\"_165\":438,\"_170\":441,\"_172\":441,\"_173\":442,\"_175\":443,\"_177\":178,\"_179\":444,\"_181\":178,\"_182\":445,\"_184\":412,\"_185\":186,\"_187\":446,\"_195\":269,\"_197\":198,\"_199\":200},{\"_47\":439,\"_168\":440},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0140c52dcec68230/68c08781d6892e48410204db/ITPro_Today_1_-_1280x720.png\",\"Remote control on a green background\",\"Forrester Study Shows IT's Pivotal Role in AI Orchestration\",\"New Forrester study shows IT is best placed to drive responsible AI adoption through orchestration. But first, they must overcome organizational barriers.\",\"/it-security/forrester-study-shows-pivotal-role-ai-orchestration\",\"Sep 15, 2025\",\"Sponsored Content\",[447],{\"_60\":448,\"_191\":449,\"_193\":450},\"Brad Rumph\",\"/author/brad-rumph\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd06c68c6e18ac301/68c0872dac5295429251730a/brad_rumph_headshot_150x125_1.png\",{\"_165\":452,\"_170\":455,\"_172\":455,\"_173\":456,\"_175\":457,\"_177\":178,\"_179\":208,\"_181\":178,\"_182\":209,\"_184\":210,\"_185\":186,\"_187\":458,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":453,\"_168\":454},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta6cf0a61629707ee/68c32b452aa7ebbead8a9f7c/exterior_shot_of_Oracle_headquarters.jpg\",\"exterior shot of Oracle headquarters\",\"AI Inferencing Will Outpace AI Training -- Oracle CTO\",\"Larry Ellison was bullish about the potential for AI inferencing to shape enterprise operations during Oracle's fiscal Q1 2026 earnings call this week.\",\"/ai-machine-learning/ai-inferencing-will-outpace-ai-training-oracle-cto\",[459,463],{\"_60\":460,\"_191\":461,\"_193\":462},\"Kelsey Ziser\",\"/author/kelsey-ziser\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt03d9f7ca211df8fb/68c32c5be1c3b552a163698a/Kelsey_2025_2.webp\",{\"_60\":464,\"_191\":465,\"_193\":466},\"InformationWeek\",\"/author/informationweek\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfe700963d293545b/662c186ab6e73c2096cb1da7/251403_Favicon_512x512.png\",{\"_123\":468,\"_62\":469,\"_145\":470,\"_147\":469,\"_148\":28,\"_120\":471,\"_162\":484},\"Dev\",\"/software-development\",\"See All Software Dev\",[472,475,478,481],{\"_123\":473,\"_62\":474},\"Cloud Native\",\"/software-development/cloud-native\",{\"_123\":476,\"_62\":477},\"Programming Languages\",\"/software-development/programming-languages\",{\"_123\":479,\"_62\":480},\"No-Code/Low-Code\",\"/software-development/no-code-low-code\",{\"_123\":482,\"_62\":483},\"Software Development Techniques\",\"/software-development/software-development-techniques\",[485,496],{\"_165\":486,\"_170\":489,\"_172\":489,\"_173\":490,\"_175\":491,\"_177\":178,\"_179\":492,\"_181\":178,\"_182\":493,\"_184\":412,\"_185\":186,\"_187\":494,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":487,\"_168\":488},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltddf57d6af18e1a97/68b0410be3b77f757a1400f1/shift-left-1716x965_-_2025-04-15.jpg\",\"arrow pointing to the left\",\"How to Shift Security Left in Complex Multi-Cloud Environments\",\"As organizations scale across hybrid and multi-cloud environments, success depends on embedding security at design, enforcing policy-as-code, and democratizing responsibility.\",\"/it-security/how-to-shift-security-left-in-complex-multi-cloud-environments\",\"Aug 28, 2025\",\"IT Security\",[495],{\"_60\":326,\"_191\":327,\"_193\":328},{\"_165\":497,\"_170\":500,\"_172\":500,\"_173\":501,\"_175\":502,\"_177\":178,\"_179\":503,\"_181\":178,\"_182\":504,\"_184\":469,\"_185\":186,\"_187\":505,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":498,\"_168\":499},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt39838373a6c03ee5/68ae81e0ef3486c36b54a68b/open-source-1716x965_-_2025-08-26T235536.270.jpg\",\"paper stamped with open source\",\"New Research Debunks Open Source Business Model Myths\",\"The study shatters open source business myths: COSS companies achieve 7x higher valuations, proving community and commerce aren't mutually exclusive.\",\"/software-development/new-research-debunks-open-source-business-model-myths\",\"Aug 27, 2025\",\"Software Development\",[506],{\"_60\":507,\"_191\":508,\"_193\":509},\"Sean Michael Kerner\",\"/author/sean-michael-kerner\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png\",{\"_123\":511,\"_62\":512,\"_145\":513,\"_147\":512,\"_148\":28,\"_120\":514,\"_162\":522},\"DX\",\"/digital-transformation\",\"See All Digital Transformation\",[515,516,519],{\"_123\":209,\"_62\":210},{\"_123\":517,\"_62\":518},\"Edge Computing\",\"/digital-transformation/edge-computing\",{\"_123\":520,\"_62\":521},\"IoT\",\"/digital-transformation/iot\",[523,527],{\"_165\":524,\"_170\":171,\"_172\":171,\"_173\":174,\"_175\":176,\"_177\":178,\"_179\":180,\"_181\":178,\"_182\":183,\"_184\":144,\"_185\":186,\"_187\":525,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":167,\"_168\":169},[526],{\"_60\":190,\"_191\":192,\"_193\":194},{\"_165\":528,\"_170\":205,\"_172\":205,\"_173\":206,\"_175\":207,\"_177\":178,\"_179\":208,\"_181\":178,\"_182\":209,\"_184\":210,\"_185\":186,\"_187\":529,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":203,\"_168\":204},[530,531],{\"_60\":213,\"_191\":214,\"_193\":215},{\"_60\":217,\"_191\":218,\"_193\":219},{\"_123\":533,\"_62\":534,\"_145\":535,\"_147\":534,\"_148\":28,\"_120\":536,\"_162\":546},\"Infrastructure\",\"/it-infrastructure\",\"See All Infrastructure\",[537,540,543],{\"_123\":538,\"_62\":539},\"High Performance Computing\",\"/it-infrastructure/high-performance-computing\",{\"_123\":541,\"_62\":542},\"Containerization\",\"/it-infrastructure/containerization\",{\"_123\":544,\"_62\":545},\"Server Virtualization\",\"/it-infrastructure/server-virtualization\",[547,558],{\"_165\":548,\"_170\":551,\"_172\":551,\"_173\":552,\"_175\":553,\"_177\":178,\"_179\":554,\"_181\":178,\"_182\":183,\"_184\":144,\"_185\":186,\"_187\":555,\"_195\":196,\"_197\":198,\"_199\":200},{\"_47\":549,\"_168\":550},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaa291e1b4f1a191/68c1e69b4b4236ec6a189770/two_Kubernetes_style_containers_and_cloud_show_software_infrastructure_operations_concept.jpg\",\"two Kubernetes style containers and cloud show software infrastructure operations concept\",\"How To Optimize Resource Utilization With Kubernetes Pod Scaling\",\"Kubernetes administrators can dynamically scale pod replicas to adapt to changing workloads, ensuring efficient resource use, lower costs, and reliable application performance.\",\"/cloud-computing/how-to-optimize-resource-utilization-with-kubernetes-pod-scaling\",\"Sep 10, 2025\",[556,557],{\"_60\":190,\"_191\":192,\"_193\":194},{\"_60\":312,\"_191\":313,\"_193\":314},{\"_165\":559,\"_170\":562,\"_172\":562,\"_173\":563,\"_175\":564,\"_177\":178,\"_179\":565,\"_181\":178,\"_182\":209,\"_184\":210,\"_185\":186,\"_187\":566,\"_195\":329,\"_197\":198,\"_199\":200},{\"_47\":560,\"_168\":561},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt58ebd97d6ec98d25/68b085c70e77dd3fd2c04dda/ai-data-center-1716x965_-_2025-01-29.jpg\",\"AI in data center\",\"Agentic AI Starts with Infrastructure That Can Act\",\"Outdated network architectures are becoming the critical limitation that prevents AI from delivering on its promise.\",\"/ai-machine-learning/agentic-ai-starts-with-infrastructure-that-can-act\",\"Sep 2, 2025\",[567],{\"_60\":326,\"_191\":327,\"_193\":328},{\"_123\":569,\"_62\":570,\"_145\":571,\"_147\":570,\"_148\":28,\"_120\":572,\"_162\":604},\"More\",\"/resources\",\"Resource Library\",[573,576,579,581,583,586,589,592,595,598,601],{\"_123\":574,\"_62\":575},\"Newsletters\",\"/newsletter-signup\",{\"_123\":577,\"_62\":578},\"How To…?\",\"/latest-how-to\",{\"_123\":326,\"_62\":580},\"/program/industry-perspectives\",{\"_123\":582,\"_62\":570},\"Business Resources\",{\"_123\":584,\"_62\":585},\"Reports/Research\",\"/resources?types=Survey+Report\u0026page=1\",{\"_123\":587,\"_62\":588},\"Online Events\",\"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar\",{\"_123\":590,\"_62\":591},\"Live Events\",\"/events\",{\"_123\":593,\"_62\":594},\"Videos\",\"/videos\",{\"_123\":596,\"_62\":597},\"White Papers\",\"/resources?page=1\u0026types=White+Paper\",{\"_123\":599,\"_62\":600},\"Advertise With Us\",\"/advertise\",{\"_123\":602,\"_62\":603},\"About Us\",\"/about-us\",[],\"secondaryMenu\",[607,610,611,613],{\"_123\":608,\"_62\":609},\"Documents\",\"/documents\",{\"_123\":587,\"_62\":588},{\"_123\":612,\"_62\":600},\"Advertise\",{\"_123\":614,\"_62\":603},\"About\",\"megaMenu\",{\"_617\":618,\"_693\":694,\"_724\":725,\"_733\":734,\"_735\":178,\"_736\":178},\"largeMenu\",[619,625,637,644,649,655,664,670,675,680],{\"_123\":143,\"_62\":144,\"_120\":620,\"_145\":146,\"_147\":144},[621,622,623,624],{\"_123\":151,\"_62\":152},{\"_123\":154,\"_62\":155},{\"_123\":157,\"_62\":158},{\"_123\":160,\"_62\":161},{\"_123\":221,\"_62\":222,\"_120\":626,\"_145\":223,\"_147\":222},[627,628,629,630,631,632,633,634,635,636],{\"_123\":226,\"_62\":227},{\"_123\":229,\"_62\":230},{\"_123\":232,\"_62\":233},{\"_123\":235,\"_62\":236},{\"_123\":238,\"_62\":239},{\"_123\":241,\"_62\":242},{\"_123\":244,\"_62\":245},{\"_123\":247,\"_62\":248},{\"_123\":250,\"_62\":251},{\"_123\":253,\"_62\":254},{\"_123\":281,\"_62\":282,\"_120\":638,\"_145\":283,\"_147\":282},[639,640,641,642,643],{\"_123\":286,\"_62\":287},{\"_123\":289,\"_62\":290},{\"_123\":292,\"_62\":293},{\"_123\":295,\"_62\":296},{\"_123\":298,\"_62\":299},{\"_123\":331,\"_62\":332,\"_120\":645,\"_145\":333,\"_147\":332},[646,647,648],{\"_123\":336,\"_62\":337},{\"_123\":339,\"_62\":340},{\"_123\":342,\"_62\":343},{\"_123\":372,\"_62\":373,\"_120\":650,\"_145\":374,\"_147\":373},[651,652,653,654],{\"_123\":377,\"_62\":378},{\"_123\":380,\"_62\":381},{\"_123\":383,\"_62\":384},{\"_123\":386,\"_62\":387},{\"_123\":411,\"_62\":412,\"_120\":656,\"_145\":413,\"_147\":412},[657,658,659,660,661,662,663],{\"_123\":416,\"_62\":417},{\"_123\":419,\"_62\":420},{\"_123\":422,\"_62\":423},{\"_123\":425,\"_62\":426},{\"_123\":428,\"_62\":429},{\"_123\":431,\"_62\":432},{\"_123\":434,\"_62\":435},{\"_123\":468,\"_62\":469,\"_120\":665,\"_145\":470,\"_147\":469},[666,667,668,669],{\"_123\":473,\"_62\":474},{\"_123\":476,\"_62\":477},{\"_123\":479,\"_62\":480},{\"_123\":482,\"_62\":483},{\"_123\":511,\"_62\":512,\"_120\":671,\"_145\":513,\"_147\":512},[672,673,674],{\"_123\":209,\"_62\":210},{\"_123\":517,\"_62\":518},{\"_123\":520,\"_62\":521},{\"_123\":533,\"_62\":534,\"_120\":676,\"_145\":535,\"_147\":534},[677,678,679],{\"_123\":538,\"_62\":539},{\"_123\":541,\"_62\":542},{\"_123\":544,\"_62\":545},{\"_123\":569,\"_62\":570,\"_120\":681,\"_145\":571,\"_147\":570},[682,683,684,685,686,687,688,689,690,691,692],{\"_123\":574,\"_62\":575},{\"_123\":577,\"_62\":578},{\"_123\":326,\"_62\":580},{\"_123\":582,\"_62\":570},{\"_123\":584,\"_62\":585},{\"_123\":587,\"_62\":588},{\"_123\":590,\"_62\":591},{\"_123\":593,\"_62\":594},{\"_123\":596,\"_62\":597},{\"_123\":599,\"_62\":600},{\"_123\":602,\"_62\":603},\"smallMenu\",[695,704,708],{\"_123\":696,\"_62\":178,\"_120\":697},\"Browse\",[698,699,700,701,702,703],{\"_123\":608,\"_62\":609},{\"_123\":587,\"_62\":588},{\"_123\":590,\"_62\":591},{\"_123\":593,\"_62\":594},{\"_123\":326,\"_62\":580},{\"_123\":582,\"_62\":570},{\"_123\":612,\"_62\":178,\"_120\":705},[706],{\"_123\":707,\"_62\":600},\"Explore Marketing Solutions\",{\"_123\":709,\"_62\":178,\"_120\":710},\"Discover More\",[711,713,715,718,721],{\"_123\":312,\"_62\":712},\"https://www.datacenterknowledge.com/\",{\"_123\":464,\"_62\":714},\"https://www.informationweek.com/\",{\"_123\":716,\"_62\":717},\"Network Computing\",\"https://www.networkcomputing.com/\",{\"_123\":719,\"_62\":720},\"No Jitter\",\"https://www.nojitter.com/\",{\"_123\":722,\"_62\":723},\"AFCOM\",\"https://afcom.com/\",\"sideNavSections\",[726],{\"_123\":727,\"_62\":178,\"_120\":728,\"_145\":178,\"_147\":178},\"Communicate\",[729,730],{\"_123\":602,\"_62\":603},{\"_123\":731,\"_62\":732},\"Contact Us\",\"/contact-us\",\"socialSectionTitle\",\"Follow Us\",\"registrationSectionTitle\",\"registrationStatementText\",\"navBase\",{\"_739\":740},\"logo\",{\"_62\":741,\"_742\":743},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg\",\"altText\",\"ITPro Today Logo\",\"footer\",{\"_739\":746,\"_747\":748,\"_778\":779,\"_780\":781},{\"_62\":741,\"_742\":743},\"linkSections\",[749,765],{\"_750\":751,\"_123\":709,\"_96\":37},\"links\",[752,757,759,761,763],{\"_753\":754,\"_756\":28,\"_123\":312,\"_62\":712},\"image\",{\"_742\":178,\"_62\":755},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png\",\"openInNewTab\",{\"_753\":758,\"_756\":28,\"_123\":464,\"_62\":714},{\"_742\":178,\"_62\":755},{\"_753\":760,\"_756\":28,\"_123\":716,\"_62\":717},{\"_742\":178,\"_62\":755},{\"_753\":762,\"_756\":28,\"_123\":719,\"_62\":720},{\"_742\":178,\"_62\":755},{\"_753\":764,\"_756\":28,\"_123\":722,\"_62\":723},{\"_742\":178,\"_62\":755},{\"_750\":766,\"_123\":777,\"_96\":37},[767,769,773,775],{\"_753\":768,\"_756\":28,\"_123\":602,\"_62\":603},{\"_742\":178,\"_62\":755},{\"_753\":770,\"_756\":28,\"_123\":771,\"_62\":772},{\"_742\":178,\"_62\":755},\"Reprints\",\"https://info.wrightsmedia.com/informa-licensing-reprints-request\",{\"_753\":774,\"_756\":28,\"_123\":612,\"_62\":600},{\"_742\":178,\"_62\":755},{\"_753\":776,\"_756\":28,\"_123\":731,\"_62\":732},{\"_742\":178,\"_62\":755},\"Working With Us\",\"brandLinks\",[],\"copyright\",{\"_782\":783,\"_750\":788,\"_123\":809},\"businessUnit\",{\"_62\":784,\"_60\":785,\"_786\":787},\"https://www.informa.com/\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png\",[789,793,797,801,805],{\"_753\":790,\"_756\":18,\"_123\":791,\"_62\":792},{\"_742\":791,\"_62\":792},\"Home\",\"https://www.techtarget.com/\",{\"_753\":794,\"_756\":28,\"_123\":795,\"_62\":796},{\"_742\":795,\"_62\":796},\"CCPA: Do not sell my personal info\",\"https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html\",{\"_753\":798,\"_756\":28,\"_123\":799,\"_62\":800},{\"_742\":799,\"_62\":800},\"Cookies\",\"https://www.informatechtarget.com/privacy-policy/#cookies\",{\"_753\":802,\"_756\":28,\"_123\":803,\"_62\":804},{\"_742\":803,\"_62\":804},\"Privacy\",\"https://www.informatechtarget.com/privacy-policy/\",{\"_753\":806,\"_756\":28,\"_123\":807,\"_62\":808},{\"_742\":807,\"_62\":808},\"Terms\",\"https://www.informatechtarget.com/terms-and-conditions/\",\" TechTarget, Inc. d/b/a Informa TechTarget. 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.\",\"newRelicJs\",\"window.NREUM||(NREUM={});NREUM.info = {\\\"agent\\\":\\\"\\\",\\\"beacon\\\":\\\"bam.eu01.nr-data.net\\\",\\\"errorBeacon\\\":\\\"bam.eu01.nr-data.net\\\",\\\"licenseKey\\\":\\\"NRJS-26ae6a3b09493bbcc87\\\",\\\"applicationID\\\":\\\"514059305\\\",\\\"agentToken\\\":null,\\\"applicationTime\\\":28.085758,\\\"transactionName\\\":\\\"MhBSZQoZWEEDU0ZaXgtac0QLDFlfTR9BXFcRAlFDHVVSVxRVXlxBCBBeRQ==\\\",\\\"queueTime\\\":0,\\\"ttGuid\\\":\\\"60129f2b23867eb4\\\"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[\\\"bam.eu01.nr-data.net\\\"]},feature_flags:[\\\"soft_nav\\\"],distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:\\\"538480682\\\",accountID:\\\"3936348\\\",trustKey:\\\"3288925\\\",xpid:\\\"Vw8EV1VXABAFVVVSAggEVlE=\\\",licenseKey:\\\"NRJS-26ae6a3b09493bbcc87\\\",applicationID:\\\"514059305\\\",browserID:\\\"538480682\\\"};;/*! For license information please see nr-loader-spa-1.312.1.min.js.LICENSE.txt */\\n(()=\u003e{var e,t,r={384:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{NT:()=\u003ea,Zm:()=\u003ec,bQ:()=\u003eu,dV:()=\u003ed,pV:()=\u003el});var n=r(6154),i=r(1863),s=r(944),o=r(1910);const a={beacon:\\\"bam.nr-data.net\\\",errorBeacon:\\\"bam.nr-data.net\\\"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,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},(0,o.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length\u0026\u0026(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}},782:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},860:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$J:()=\u003eu,K7:()=\u003ec,P3:()=\u003ed,XX:()=\u003ei,Yy:()=\u003ea,df:()=\u003es,qY:()=\u003en,v4:()=\u003eo});const n=\\\"events\\\",i=\\\"jserrors\\\",s=\\\"browser/blobs\\\",o=\\\"rum\\\",a=\\\"browser/logs\\\",c={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\\\"},d={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.softNav]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.sessionReplay]:8,[c.logging]:9,[c.genericEvents]:10},u={[c.pageViewEvent]:o,[c.pageViewTiming]:n,[c.ajax]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:s,[c.sessionReplay]:s,[c.logging]:a,[c.genericEvents]:\\\"ins\\\"}},944:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{R:()=\u003ei});var n=r(3241);function i(e,t){\\\"function\\\"==typeof console.debug\u0026\u0026(console.debug(\\\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\\\".concat(e),t),(0,n.W)({drained:null,type:\\\"data\\\",name:\\\"warn\\\",feature:\\\"warn\\\",data:{code:e,secondary:t}}))}},993:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A$:()=\u003es,ET:()=\u003eo,TZ:()=\u003ea,p_:()=\u003ei});var n=r(860);const i={ERROR:\\\"ERROR\\\",WARN:\\\"WARN\\\",INFO:\\\"INFO\\\",DEBUG:\\\"DEBUG\\\",TRACE:\\\"TRACE\\\"},s={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},o=\\\"log\\\",a=n.K7.logging},1541:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$5:()=\u003ed,B5:()=\u003ec,Ux:()=\u003eo,YA:()=\u003ea,fQ:()=\u003ei});var n=r(5871);const i={MFE:\\\"MFE\\\",BA:\\\"BA\\\"};function s(e,t){if(!e||!t?.init.api.allow_registered_children)return[];const r=t.runtime.registeredEntities;return r?.filter(t=\u003et.metadata.timings?.asset?.endsWith(e)).map(e=\u003ee.metadata.target)||[]}function o(e,t){if(!u(t))return{};const r=t.agentRef.runtime.appMetadata.agents[0].entityGuid;return e?e.attributes:{\\\"entity.guid\\\":r,appId:t.agentRef.info.applicationID}}function a(e,t){return c(e,t)?{\\\"child.id\\\":e.id,\\\"child.type\\\":e.type,...o(void 0,t)}:{}}function c(e,t){return!!e\u0026\u0026!!u(t)\u0026\u0026t.agentRef.init.api.duplicate_registered_data}function d(e){if(!e?.init.api.allow_registered_children)return[void 0];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...s(r[i--],e))}catch(e){}return t.length||t.push(void 0),t}function u(e){return 2===e?.harvestEndpointVersion}},1687:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Ak:()=\u003ea,Ze:()=\u003ed,x3:()=\u003ec});var n=r(3241),i=r(3606),s=r(860),o=r(2646);function a(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r\u0026\u0026(r.get(t)\u0026\u0026r.delete(t),l(e,t,!1),r.size\u0026\u0026u(e))}function d(e,t=\\\"feature\\\",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=\u003et.staged)\u0026\u0026(t.sort((e,t)=\u003ee[1].priority-t[1].priority),t.forEach(([t])=\u003e{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,a=i.i.handlers;if(s\u0026\u0026!s.aborted\u0026\u0026s.backlog\u0026\u0026a){if((0,n.W)({type:\\\"lifecycle\\\",name:\\\"drain\\\",feature:t}),r){const e=s.backlog[t],r=a[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=\u003e{Object.values(t||{}).forEach(t=\u003e{t[0]?.on\u0026\u0026t[0].context()instanceof o.y\u0026\u0026!t[0].listeners(e).includes(t[1])\u0026\u0026t[0].on(e,t[1])})})}}s.isolatedBacklog||delete a[t],s.backlog[t]=null,s.emit(\\\"drain-\\\"+t,[])}}function f(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],s=e[2];n.apply(i,s)}})}},1738:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{U:()=\u003ef,Y:()=\u003el});var n=r(3241),i=r(9908),s=r(1863),o=r(944),a=r(3969),c=r(8362),d=r(860),u=r(4261);function l(e,t,r,s){const l=s||r;!l||l[e]\u0026\u0026l[e]!==c.d.prototype[e]||(l[e]=function(){(0,i.p)(a.xV,[\\\"API/\\\"+e+\\\"/called\\\"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:\\\"data\\\",name:\\\"api\\\",feature:u.Pl+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,o.R)(23,e)}})}function f(e,t,r,n,o){const a=e.info;null===r?delete a.jsAttributes[t]:a.jsAttributes[t]=r,(o||null===r)\u0026\u0026(0,i.p)(u.Pl+n,[(0,s.t)(),t,r],void 0,\\\"session\\\",e.ee)}},1741:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003es});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(i.$9,e,t)}start(){return this.#e(i.d3)}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},1863:(e,t,r)=\u003e{\\\"use strict\\\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},1910:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{i:()=\u003es});var n=r(944);const i=new Map;function s(...e){return e.every(e=\u003e{if(i.has(e))return i.get(e);const t=\\\"function\\\"==typeof e?e.toString():\\\"\\\",r=t.includes(\\\"[native code]\\\"),s=t.includes(\\\"nrWrapper\\\");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},2555:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{D:()=\u003ea,f:()=\u003eo});var n=r(384),i=r(8122);const s={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};function o(e){try{return!!e.licenseKey\u0026\u0026!!e.errorBeacon\u0026\u0026!!e.applicationID}catch(e){return!1}}const a=e=\u003e(0,i.a)(e,s)},2614:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003eo,H3:()=\u003en,g:()=\u003ed,iL:()=\u003ec,tS:()=\u003ea,uh:()=\u003ei,wk:()=\u003es});const n=\\\"NRBA\\\",i=\\\"SESSION\\\",s=144e5,o=18e5,a={STARTED:\\\"session-started\\\",PAUSE:\\\"session-pause\\\",RESET:\\\"session-reset\\\",RESUME:\\\"session-resume\\\",UPDATE:\\\"session-update\\\"},c={SAME_TAB:\\\"same-tab\\\",CROSS_TAB:\\\"cross-tab\\\"},d={OFF:0,FULL:1,ERROR:2}},2646:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},2843:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{G:()=\u003es,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)}function s(e,t,r){(0,n.sp)(\\\"pagehide\\\",e,t,r)}},3241:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003es});var n=r(6154);const i=\\\"newrelic\\\";function s(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},3304:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A:()=\u003es});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 s(e){try{return JSON.stringify(e,i())??\\\"\\\"}catch(e){try{n.ee.emit(\\\"internal-error\\\",[e])}catch(e){}return\\\"\\\"}}},3333:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$v:()=\u003eu,TZ:()=\u003en,Xh:()=\u003ec,Zp:()=\u003ei,kd:()=\u003ed,mq:()=\u003ea,nf:()=\u003eo,qN:()=\u003es});const n=r(860).K7.genericEvents,i=[\\\"auxclick\\\",\\\"click\\\",\\\"copy\\\",\\\"keydown\\\",\\\"paste\\\",\\\"scrollend\\\"],s=[\\\"focus\\\",\\\"blur\\\"],o=4,a=1e3,c=2e3,d=[\\\"PageAction\\\",\\\"UserAction\\\",\\\"BrowserPerformance\\\"],u={RESOURCES:\\\"experimental.resources\\\",REGISTER:\\\"register\\\"}},3434:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Jt:()=\u003eo,YM:()=\u003eu});var n=r(7836),i=r(5607),s=r(1541);const o=\\\"nr@original:\\\".concat(i.W),a=50;var c=Object.prototype.hasOwnProperty,d=!1;function u(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,o){r||(r=\\\"\\\");const a=\\\"-\\\"===r.charAt(0);for(let c=0;c\u003ct.length;c++){const d=t[c],u=e[d];f(u)||(e[d]=i(u,a?d+r:r,n,d,s,o))}},i.flag=o,i;function i(t,n,i,d,h,p){return f(t)?t:(n||(n=\\\"\\\"),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){l([e],r)}for(var n in e)c.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,c,f,g;let m,v;try{c=this,o=[...arguments],v=p?(0,s.$5)(r):[void 0],f=\\\"function\\\"==typeof i?i(o,c):i||{}}catch(t){l([t,\\\"\\\",[o,c,d],f],e)}u(n+\\\"start\\\",[o,c,d,v],f,h);const y=performance.now();let b;try{return g=t.apply(c,o),b=performance.now(),g}catch(e){throw b=performance.now(),u(n+\\\"err\\\",[o,c,e,v],f,h),m=e,m}finally{const e=b-y,t={start:y,end:b,duration:e,isLongTask:e\u003e=a,methodName:d,thrownError:m};t.isLongTask\u0026\u0026u(\\\"long-task\\\",[t,c,v],f,h),u(n+\\\"end\\\",[o,c,g,v],f,h)}}}function u(r,n,i,s){if(!d||t){var o=d;d=!0;try{e.emit(r,n,i,t,s)}catch(t){l([t,r,n,i],e)}d=o}}}function l(e,t){t||(t=n.ee);try{t.emit(\\\"internal-error\\\",e)}catch(e){}}function f(e){return!(e\u0026\u0026\\\"function\\\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},3606:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{i:()=\u003es});var n=r(9908);s.on=o;var i=s.handlers={};function s(e,t,r,s){o(s||n.d,i,e,t,r)}function o(e,t,r,i,s){s||(s=\\\"feature\\\"),e||(e=n.d);var o=t[s]=t[s]||{};(o[r]=o[r]||[]).push([e,i])}},3738:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{He:()=\u003ei,Kp:()=\u003ea,Lc:()=\u003ed,Rz:()=\u003eu,TZ:()=\u003en,bD:()=\u003es,d3:()=\u003eo,jx:()=\u003el,sl:()=\u003ef,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\\\"bstResource\\\",s=\\\"resource\\\",o=\\\"-start\\\",a=\\\"-end\\\",c=\\\"fn\\\"+o,d=\\\"fn\\\"+a,u=\\\"pushState\\\",l=1e3,f=3e4},3785:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{R:()=\u003ec,b:()=\u003ed});var n=r(9908),i=r(1863),s=r(860),o=r(3969),a=r(993);function c(e,t,r={},c=a.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(o.xV,[\\\"API/logging/\\\".concat(c.toLowerCase(),\\\"/called\\\")],void 0,s.K7.metrics,e),(0,n.p)(a.ET,[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return\\\"string\\\"==typeof e\u0026\u0026Object.values(a.p_).some(t=\u003et===e.toUpperCase().trim())}},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 s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003es,jT:()=\u003en,sp:()=\u003ei})},3962:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AM:()=\u003eo,O2:()=\u003el,OV:()=\u003es,Qu:()=\u003ef,TZ:()=\u003ec,ih:()=\u003eh,pP:()=\u003ea,t1:()=\u003eu,tC:()=\u003ei,wD:()=\u003ed});var n=r(860);const i=[\\\"click\\\",\\\"keydown\\\",\\\"submit\\\"],s=\\\"popstate\\\",o=\\\"api\\\",a=\\\"initialPageLoad\\\",c=n.K7.softNav,d=5e3,u=500,l={INITIAL_PAGE_LOAD:\\\"\\\",ROUTE_CHANGE:1,UNSPECIFIED:2},f={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},h={IP:\\\"in progress\\\",PF:\\\"pending finish\\\",FIN:\\\"finished\\\",CAN:\\\"cancelled\\\"}},3969:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{TZ:()=\u003en,XG:()=\u003ea,rs:()=\u003ei,xV:()=\u003eo,z_:()=\u003es});const n=r(860).K7.metrics,i=\\\"sm\\\",s=\\\"cm\\\",o=\\\"storeSupportabilityMetrics\\\",a=\\\"storeEventMetrics\\\"},4234:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003ei});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},4261:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$9:()=\u003eu,BL:()=\u003ec,CH:()=\u003ep,Dl:()=\u003eR,Fw:()=\u003ew,PA:()=\u003ev,Pl:()=\u003en,Pv:()=\u003ex,Tb:()=\u003ef,U2:()=\u003eo,V1:()=\u003eA,Wb:()=\u003eT,bt:()=\u003eb,cD:()=\u003ey,d3:()=\u003eE,dT:()=\u003ed,eY:()=\u003eg,fF:()=\u003eh,hG:()=\u003es,hw:()=\u003ei,k6:()=\u003ea,nb:()=\u003em,o5:()=\u003el});const n=\\\"api-\\\",i=n+\\\"ixn-\\\",s=\\\"addPageAction\\\",o=\\\"addToTrace\\\",a=\\\"addRelease\\\",c=\\\"finished\\\",d=\\\"interaction\\\",u=\\\"log\\\",l=\\\"noticeError\\\",f=\\\"pauseReplay\\\",h=\\\"recordCustomEvent\\\",p=\\\"recordReplay\\\",g=\\\"register\\\",m=\\\"setApplicationVersion\\\",v=\\\"setCurrentRouteName\\\",y=\\\"setCustomAttribute\\\",b=\\\"setErrorHandler\\\",w=\\\"setPageViewName\\\",R=\\\"setUserId\\\",E=\\\"start\\\",T=\\\"wrapLogger\\\",A=\\\"measure\\\",x=\\\"consent\\\"},5205:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{j:()=\u003ex});var n=r(384),i=r(1741);var s=r(2555),o=r(3333);const a=e=\u003e{if(!e||\\\"string\\\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(2614),d=r(944),u=r(8122);const l=\\\"[data-nr-mask]\\\",f=e=\u003e(0,u.a)(e,(()=\u003e{const e={feature_flags:[],experimental:{allow_registered_children:!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},api:{get allow_registered_children(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.allow_registered_children},set allow_registered_children(t){e.experimental.allow_registered_children=t},duplicate_registered_data:!1},browser_consent_mode:{enabled:!1},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},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:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$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:c.wk,inactiveMs:c.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){a(t)?e.mask_selector=\\\"\\\".concat(t,\\\",\\\").concat(l):\\\"\\\"===t||null===t?e.mask_selector=l:(0,d.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){a(t)?e.block_selector+=\\\",\\\".concat(t):\\\"\\\"!==t\u0026\u0026(0,d.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,d.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:[\\\"id\\\",\\\"className\\\",\\\"tagName\\\",\\\"type\\\"]}}})());var h=r(6154),p=r(9324);let g=0;const m={buildEnv:p.F3,distMethod:p.Xs,version:p.xv,originTime:h.WN},v={consented:!1},y={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||v.consented},set consented(e){v.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,harvester:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++g}},b=e=\u003e{const t=(0,u.a)(e,y),r=Object.keys(m).reduce((e,t)=\u003e(e[t]={value:m[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)},w=e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e};var R=r(7836),E=r(3241);const T={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A=e=\u003e(0,u.a)(e,T);function x(e,t={},r,o){let{init:a,info:c,loader_config:d,runtime:u={},exposed:l=!0}=t;if(!c){const e=(0,n.pV)();a=e.init,c=e.info,d=e.loader_config}e.init=f(a||{}),e.loader_config=A(d||{}),c.jsAttributes??={},h.bv\u0026\u0026(c.jsAttributes.isWorker=!0),e.info=(0,s.D)(c);const p=e.init;e.runtime??=b(u),p.proxy.assets\u0026\u0026w(p.proxy.assets),e.runtime.configured||(Object.defineProperty(e,\\\"beacons\\\",{get:()=\u003e[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,\\\"denyList\\\",{get:()=\u003e[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,n.pV)();Object.getOwnPropertyNames(i.W.prototype).forEach(r=\u003e{const n=i.W.prototype[r];if(\\\"function\\\"!=typeof n||\\\"constructor\\\"===n)return;let s=t[r];e[r]\u0026\u0026!1!==e.exposed\u0026\u0026\\\"micro-agent\\\"!==e.runtime?.loaderType\u0026\u0026(t[r]=(...t)=\u003e{const n=e[r](...t);return s?s(...t):n})})}(e),e.runtime.loaderType=r,e.ee=R.ee.get(e.agentIdentifier),e.exposed=l,(0,E.W)({drained:!!e.runtime.activatedFeatures,type:\\\"lifecycle\\\",name:\\\"initialize\\\",feature:void 0,data:e.config}),e.runtime.configured=!0)}},5270:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Aw:()=\u003eo,SR:()=\u003es,rF:()=\u003ea});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,i.V)(e)\u0026\u0026!0===e?.session_trace.enabled}function o(e){return!0===e?.session_replay.preload\u0026\u0026s(e)}function a(e,t){try{if(\\\"string\\\"==typeof t?.type){if(\\\"password\\\"===t.type.toLowerCase())return\\\"*\\\".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains(\\\"nr-unmask\\\"))return e}}catch(e){}return\\\"string\\\"==typeof e?e.replace(/[\\\\S]/g,\\\"*\\\"):\\\"*\\\".repeat(e?.length||0)}},5289:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{GG:()=\u003eo,Qr:()=\u003ec,sB:()=\u003ea});var n=r(3878),i=r(6389);function s(){return\\\"undefined\\\"==typeof document||\\\"complete\\\"===document.readyState}function o(e,t){if(s())return e();const r=(0,i.J)(e),o=setInterval(()=\u003e{s()\u0026\u0026(clearInterval(o),r())},500);(0,n.sp)(\\\"load\\\",r,t)}function a(e){if(s())return e();(0,n.DD)(\\\"DOMContentLoaded\\\",e)}function c(e){if(s())return e();(0,n.sp)(\\\"popstate\\\",e)}},5607:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},5871:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AZ:()=\u003eu,QL:()=\u003el,Qr:()=\u003ef});var n=r(6154),i=r(1863),s=r(9119),o=r(7866);let a;try{a=u(l())[0]}catch(e){a=u(e)[0]}const c=new Set;let d=[];if(n.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\")){new PerformanceObserver(e=\u003e{e.getEntries().forEach(e=\u003e{if((e=\u003e\\\"script\\\"===e.initiatorType||[\\\"link\\\",\\\"fetch\\\"].includes(e.initiatorType)\u0026\u0026e.name.endsWith(\\\".js\\\"))(e)){c.size\u003e250\u0026\u0026c.delete(c.values().next().value),c.add(e);const t=[];d.forEach(({test:r,addedAt:n},s)=\u003e{(r(e)||(0,i.t)()-n\u003e1e4)\u0026\u0026t.push(s)}),d=d.filter((e,r)=\u003e!t.includes(r))}})}).observe({type:\\\"resource\\\",buffered:!0})}function u(e){if(!e||\\\"string\\\"!=typeof e)return[];const t=new Set,r=e.split(\\\"\\\\n\\\");for(const e of r){const r=e.match(o.cn)||e.match(o.hB)||e.match(o.fL);if(r\u0026\u0026r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\\\\(([^)]+\\\\.js):\\\\d+:\\\\d+\\\\)/)||e.match(/^\\\\s+at\\\\s+([^\\\\s(]+\\\\.js):\\\\d+:\\\\d+/);r\u0026\u0026r[1]\u0026\u0026t.add((0,s.L)(r[1]))}}return[...t]}function l(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function f(){const e={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,asset:void 0,type:\\\"unknown\\\"},t=l();if(!t)return e;const r=n.gm.performance?.getEntriesByType(\\\"navigation\\\")?.[0]?.name||\\\"\\\";try{const o=u(t),f=(o.length\u003e1?o.filter(e=\u003e!a.endsWith(e)\u0026\u0026!e.endsWith(a)):o)[0];if(!f)return e;if(r.includes(f))return e.asset=(0,s.L)(r),e.type=\\\"inline\\\",e;const h=performance.getEntriesByType(\\\"resource\\\").find(p)||[...c].find(p);function p(e){const t=(0,s.L)(e.name);return t.endsWith(f)||f.endsWith(t)}function g(t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}h?g(h):function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel=\\\"preload\\\"][as=\\\"script\\\"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1}(f)\u0026\u0026(e.asset=f,e.type=\\\"preload\\\",d.push({addedAt:(0,i.t)(),test:e=\u003e!!p(e)\u0026\u0026(g(e),!0)}))}catch(m){}return e}},6154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003ef,bv:()=\u003es,gm:()=\u003eo,lR:()=\u003el,m:()=\u003ec,mw:()=\u003ea,sb:()=\u003eu,zk:()=\u003eh});var n=r(1863);const i=\\\"undefined\\\"!=typeof window\u0026\u0026!!window.document,s=\\\"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),o=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),a=Boolean(\\\"hidden\\\"===o?.document?.visibilityState),c=\\\"\\\"+o?.location,d=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=d\u0026\u0026\\\"undefined\\\"==typeof SharedWorker,l=(()=\u003e{const e=o.navigator?.userAgent?.match(/Firefox[/\\\\s](\\\\d+\\\\.\\\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),f=Date.now()-(0,n.t)(),h=()=\u003e{const e=o?.performance?.getEntriesByType?.(\\\"navigation\\\")?.[0];if(e\u0026\u0026e.responseStart\u003e0\u0026\u0026e.responseStart\u003co.performance.now())return e}},6344:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003eu,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003eo,Vh:()=\u003es,_s:()=\u003ea,bc:()=\u003ed,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,s=\\\"errorDuringReplay\\\",o=.12,a={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},d={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\\\"}},u=5e3,l={API:\\\"api\\\",RESUME:\\\"resume\\\",SWITCH_TO_FULL:\\\"switchToFull\\\",INITIALIZE:\\\"initialize\\\",PRELOAD:\\\"preload\\\"}},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})},6630:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},6774:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},7295:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Xv:()=\u003eo,gX:()=\u003ei,iW:()=\u003es});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if(\\\"*\\\"===n[0].hostname)return!1;for(var t=0;t\u003cn.length;t++){var r=n[t];if(r.hostname.test(e.hostname)\u0026\u0026r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function o(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;if(\\\"*\\\"===r)return void(n=[{hostname:\\\"*\\\"}]);0===r.indexOf(\\\"http://\\\")?r=r.substring(7):0===r.indexOf(\\\"https://\\\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\\\"/\\\");let s,o;i\u003e0?(s=r.substring(0,i),o=r.substring(i)):(s=r,o=\\\"*\\\");let[c]=s.split(\\\":\\\");n.push({hostname:a(c),pathname:a(o,!0)})}}function a(e,t=!1){const r=e.replace(/[.+?^${}()|[\\\\]\\\\\\\\]/g,e=\u003e\\\"\\\\\\\\\\\"+e).replace(/\\\\*/g,\\\".*?\\\");return new RegExp((t?\\\"^\\\":\\\"\\\")+r+\\\"$\\\")}},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{}}}},7699:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{It:()=\u003es,KC:()=\u003ea,No:()=\u003ei,qh:()=\u003eo});var n=r(860);const i=16e3,s=1e6,o=\\\"SESSION_ERROR\\\",a={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0}},7767:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{V:()=\u003ei});var n=r(6154);const i=e=\u003en.RI\u0026\u0026!0===e?.privacy.cookies_enabled},7836:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{P:()=\u003ea,ee:()=\u003ec});var n=r(384),i=r(8990),s=r(2646),o=r(5607);const a=\\\"nr@context:\\\".concat(o.W),c=function e(t,r){var n={},o={},u={},l=!1;try{l=16===r.length\u0026\u0026d.initializedAgents?.[r]?.runtime.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,s){!1!==s\u0026\u0026(s=!0);if(c.aborted\u0026\u0026!i)return;t\u0026\u0026s\u0026\u0026t.emit(e,r,n);var a=h(n);g(e).forEach(e=\u003e{e.apply(a,r)});var d=v()[o[e]];d\u0026\u0026d.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{o[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()[o[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 s.y?e:e?(0,i.I)(e,a,()=\u003enew s.y(a)):new s.y(a)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,\\\"globalEE\\\"),d=(0,n.Zm)();d.ee||(d.ee=c)},7866:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Nc:()=\u003es,cn:()=\u003ea,fL:()=\u003ei,h3:()=\u003en,hB:()=\u003eo});const n=/function (.+?)\\\\s*\\\\(/,i=/^\\\\s*at .+ \\\\(eval at \\\\S+ \\\\((?:(?:file|http|https):[^)]+)?\\\\)(?:, [^:]*:\\\\d+:\\\\d+)?\\\\)$/i,s=/^\\\\s*at Function code \\\\(Function code:\\\\d+:\\\\d+\\\\)\\\\s*/i,o=/^\\\\s*at (?:((?:\\\\[object object\\\\])?(?:[^(]*\\\\([^)]*\\\\))*[^()]*(?: \\\\[as \\\\S+\\\\])?) )?\\\\(?((?:file|http|https|chrome-extension):.*?)?:(\\\\d+)(?::(\\\\d+))?\\\\)?\\\\s*$/i,a=/^\\\\s*(?:([^@]*)(?:\\\\(.*?\\\\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\\\\d+)(?::(\\\\d+))?\\\\s*$/i},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)),s=0===Object.keys(r).length?e:r;for(let o in s)if(void 0!==e[o])try{if(null===e[o]){r[o]=null;continue}Array.isArray(e[o])\u0026\u0026Array.isArray(t[o])?r[o]=Array.from(new Set([...e[o],...t[o]])):e[o]instanceof Map||e[o]instanceof Set||e[o]instanceof Date||e[o]instanceof RegExp?r[o]=e[o]:\\\"object\\\"==typeof e[o]\u0026\u0026\\\"object\\\"==typeof t[o]?r[o]=i(e[o],t[o]):r[o]=e[o]}catch(e){r[o]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},8139:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),s=r(8990),o=r(6154);const a={},c=o.gm.XMLHttpRequest,d=\\\"addEventListener\\\",u=\\\"removeEventListener\\\",l=\\\"nr@wrapped:\\\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\\\"events\\\")}(e);if(a[t.debugId]++)return t;a[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],\\\"-\\\",p)}function p(e,t){return e[1]}return\\\"getPrototypeOf\\\"in Object\u0026\u0026(o.RI\u0026\u0026h(document,f),c\u0026\u0026h(c.prototype,f),h(o.gm,f)),t.on(d+\\\"-start\\\",function(e,t){var n=e[1];if(null!==n\u0026\u0026(\\\"function\\\"==typeof n||\\\"object\\\"==typeof n)\u0026\u0026\\\"newrelic\\\"!==e[0]){var i=(0,s.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(u+\\\"-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,d);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},8362:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{d:()=\u003es});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\\\"\\\"})()},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}},9119:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{L:()=\u003es});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,\\\"$1$2\\\"):e}},9300:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},9324:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AJ:()=\u003eo,F3:()=\u003ei,Xs:()=\u003es,Yq:()=\u003ea,xv:()=\u003en});const n=\\\"1.312.1\\\",i=\\\"PROD\\\",s=\\\"CDN\\\",o=\\\"@newrelic/rrweb\\\",a=\\\"1.1.0\\\"},9566:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{LA:()=\u003ea,ZF:()=\u003ec,bz:()=\u003eo,el:()=\u003ed});var n=r(6154);const i=\\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\";function s(e,t){return e?15\u0026e[t]:16*Math.random()|0}function o(){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?s(t,r++).toString(16):\\\"y\\\"===e?(3\u0026s()|8).toString(16):e).join(\\\"\\\")}function a(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 o=[];for(var a=0;a\u003ce;a++)o.push(s(r,i++).toString(16));return o.join(\\\"\\\")}function c(){return a(16)}function d(){return a(32)}},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,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,i),s.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.312.1.min.js\\\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\\\"NRBA-1.312.1.PROD:\\\",i.l=(r,n,s,o)=\u003e{if(e[r])e[r].push(n);else{var a,c;if(void 0!==s)for(var d=document.getElementsByTagName(\\\"script\\\"),u=0;u\u003cd.length;u++){var l=d[u];if(l.getAttribute(\\\"src\\\")==r||l.getAttribute(\\\"data-webpack\\\")==t+s){a=l;break}}if(!a){c=!0;var f={478:\\\"sha512-dZhtzLTOyIsYHGHWAipD4+6jjzEIycTqL1F9NwinUiYL8cf0kIXf7WUbskVMB7p/nhDF+zJ9Bfd6LU9PMn0Yhw==\\\",249:\\\"sha512-SJV3E/3SdEyaahYm8FHEFwhJvDQy/nRJJV/o+18MgXENJWR/8tfvIKfc4LE1xV9RniczXT7eQLcZi2G99UlugA==\\\",212:\\\"sha512-dRFaJY5mEo/nxzPqxS/sHnvU66fpkTff91nWUFOafyPR61R+r2GZiy81lT47BWA4MouemCj4tvhHmn8Ofh/UOg==\\\"};(a=document.createElement(\\\"script\\\")).charset=\\\"utf-8\\\",i.nc\u0026\u0026a.setAttribute(\\\"nonce\\\",i.nc),a.setAttribute(\\\"data-webpack\\\",t+s),a.src=r,0!==a.src.indexOf(window.location.origin+\\\"/\\\")\u0026\u0026(a.crossOrigin=\\\"anonymous\\\"),f[o]\u0026\u0026(a.integrity=f[o])}e[r]=[n];var h=(t,n)=\u003e{a.onerror=a.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],a.parentNode\u0026\u0026a.parentNode.removeChild(a),i\u0026\u0026i.forEach(e=\u003ee(n)),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\\\"timeout\\\",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),c\u0026\u0026document.head.appendChild(a)}},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 s=new Promise((r,i)=\u003en=e[t]=[r,i]);r.push(n[2]=s);var o=i.p+i.u(t),a=new Error;i.l(o,r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var s=r\u0026\u0026(\\\"load\\\"===r.type?\\\"missing\\\":r.type),o=r\u0026\u0026r.target\u0026\u0026r.target.src;a.message=\\\"Loading chunk \\\"+t+\\\" failed: (\\\"+s+\\\": \\\"+o+\\\")\\\",a.name=\\\"ChunkLoadError\\\",a.type=s,a.request=o,n[1](a)}},\\\"chunk-\\\"+t,t)}};var t=(t,r)=\u003e{var n,s,[o,a,c]=r,d=0;if(o.some(t=\u003e0!==e[t])){for(n in a)i.o(a,n)\u0026\u0026(i.m[n]=a[n]);if(c)c(i)}for(t\u0026\u0026t(r);d\u003co.length;d++)s=o[d],i.o(e,s)\u0026\u0026e[s]\u0026\u0026e[s][0](),e[s]=0},r=self[\\\"webpackChunk:NRBA-1.312.1.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.312.1.PROD\\\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\\\"use strict\\\";i(8374);var e=i(8362),t=i(860);const r=Object.values(t.K7);var n=i(5205);var s=i(9908),o=i(1863),a=i(4261),c=i(1738);var d=i(1687),u=i(4234),l=i(5289),f=i(6154),h=i(944),p=i(5270),g=i(7767),m=i(6389),v=i(7699);class y extends u.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=\u003e{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=\u003e{this.ee.on(\\\"manual-start-all\\\",(0,m.J)(()=\u003e{(0,d.Ak)(e,this.featureName),t()}))}):(0,d.Ak)(e,t)}importAggregator(e,t,r={}){if(this.featAggregate)return;const n=async()=\u003e{let n;await this.deferred;try{if((0,g.V)(e.init)){const{setupAgentSession:t}=await i.e(478).then(i.bind(i,8766));n=t(e)}}catch(e){(0,h.R)(20,e),this.ee.emit(\\\"internal-error\\\",[e]),(0,s.p)(v.qh,[e],void 0,this.featureName,this.ee)}try{if(!this.#t(this.featureName,n,e.init))return(0,d.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:i}=await t();this.featAggregate=new i(e,r),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,h.R)(34,e),this.abortHandler?.(),(0,d.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1),this.ee\u0026\u0026this.ee.abort()}};f.RI?(0,l.GG)(()=\u003en(),!0):n()}#t(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,p.SR)(n)\u0026\u0026!!r;case t.K7.sessionTrace:return!!r;default:return!0}}}var b=i(6630),w=i(2614),R=i(3241);class E extends y{static featureName=b.T;constructor(e){var t;super(e,b.T),this.setupInspectionEvents(),t=e,(0,c.Y)(a.Fw,function(e,r){\\\"string\\\"==typeof e\u0026\u0026(\\\"/\\\"!==e.charAt(0)\u0026\u0026(e=\\\"/\\\"+e),t.runtime.customTransaction=(r||\\\"http://custom.transaction\\\")+e,(0,s.p)(a.Pl+a.Fw,[(0,o.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,5839)))}setupInspectionEvents(){const e=(e,t)=\u003e{e\u0026\u0026(0,R.W)({timeStamp:e.timeStamp,loaded:\\\"complete\\\"===e.target.readyState,type:\\\"window\\\",name:t,data:e.target.location+\\\"\\\"})};(0,l.sB)(t=\u003e{e(t,\\\"DOMContentLoaded\\\")}),(0,l.GG)(t=\u003e{e(t,\\\"load\\\")}),(0,l.Qr)(t=\u003e{e(t,\\\"navigate\\\")}),this.ee.on(w.tS.UPDATE,(e,t)=\u003e{(0,R.W)({type:\\\"lifecycle\\\",name:\\\"session\\\",data:t})})}}var T=i(384);class A extends e.d{constructor(e){var t;(super(),f.gm)?(this.features={},(0,T.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(E),(0,n.j)(this,e,e.loaderType||\\\"agent\\\"),t=this,(0,c.Y)(a.cD,function(e,r,n=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof r)||null===r)return(0,c.U)(t,e,r,a.cD,n);(0,h.R)(40,typeof r)}else(0,h.R)(39,typeof e)},t),function(e){(0,c.Y)(a.Dl,function(t,r=!1){if(\\\"string\\\"!=typeof t\u0026\u0026null!==t)return void(0,h.R)(41,typeof t);const n=e.info.jsAttributes[\\\"enduser.id\\\"];r\u0026\u0026null!=n\u0026\u0026n!==t?(0,s.p)(a.Pl+\\\"setUserIdAndResetSession\\\",[t],void 0,\\\"session\\\",e.ee):(0,c.U)(e,\\\"enduser.id\\\",t,a.Dl,!0)},e)}(this),function(e){(0,c.Y)(a.nb,function(t){if(\\\"string\\\"==typeof t||null===t)return(0,c.U)(e,\\\"application.version\\\",t,a.nb,!1);(0,h.R)(42,typeof t)},e)}(this),function(e){(0,c.Y)(a.d3,function(){e.ee.emit(\\\"manual-start-all\\\")},e)}(this),function(e){(0,c.Y)(a.Pv,function(t=!0){if(\\\"boolean\\\"==typeof t){if((0,s.p)(a.Pl+a.Pv,[t],void 0,\\\"session\\\",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=\u003e{const r=t.featAggregate;e\u0026\u0026!r.sentRum\u0026\u0026r.sendRum()})}}else(0,h.R)(65,typeof t)},e)}(this),this.run()):(0,h.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return r.forEach(r=\u003e{t[r]=!!e[r]?.enabled}),t}(this.init),n=[...this.desiredFeatures];n.sort((e,r)=\u003et.P3[e.featureName]-t.P3[r.featureName]),n.forEach(r=\u003e{if(!e[r.featureName]\u0026\u0026r.featureName!==t.K7.pageViewEvent)return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=\u003e!(e in this.features));n.length\u003e0\u0026\u0026(0,h.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,h.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,T.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var x=i(2843),S=i(782);class _ extends y{static featureName=S.T;constructor(e){super(e,S.T),f.RI\u0026\u0026((0,x.u)(()=\u003e(0,s.p)(\\\"docHidden\\\",[(0,o.t)()],void 0,S.T,this.ee),!0),(0,x.G)(()=\u003e(0,s.p)(\\\"winPagehide\\\",[(0,o.t)()],void 0,S.T,this.ee)),this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,9917))))}}var O=i(3969);class P extends y{static featureName=O.TZ;constructor(e){super(e,O.TZ),f.RI\u0026\u0026document.addEventListener(\\\"securitypolicyviolation\\\",e=\u003e{(0,s.p)(O.xV,[\\\"Generic/CSPViolation/Detected\\\"],void 0,this.featureName,this.ee)}),this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,6555)))}}var k=i(6774),N=i(3878),D=i(3304);class j{constructor(e,t,r,n,i){this.name=\\\"UncaughtError\\\",this.message=\\\"string\\\"==typeof e?e:(0,D.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return M(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,e?.cause)}function L(e){const t=\\\"Unhandled Promise Rejection: \\\";if(!e?.reason)return;if(M(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||\\\"\\\").startsWith(t)||(r.message=t+r.message),r}function I(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,e.cause);return t.name=SyntaxError.name,t}return M(e.error)?e.error:C(e)}function M(e){return e instanceof Error\u0026\u0026!!e.stack}function B(e,r,n,i,a=(0,o.t)()){\\\"string\\\"==typeof e\u0026\u0026(e=new Error(e)),(0,s.p)(\\\"err\\\",[e,a,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,s.p)(\\\"uaErr\\\",[],void 0,t.K7.genericEvents,n.ee)}var H=i(1541),W=i(993),K=i(3785);function F(e,{customAttributes:t={},level:r=W.p_.INFO}={},n,i,s=(0,o.t)()){(0,K.R)(n.ee,e,t,r,!1,i,s)}function U(e,r,n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.hG,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}function V(e,r,n,i,c=(0,o.t)()){const{start:d,end:u,customAttributes:l}=r||{},f={customAttributes:l||{}};if(\\\"object\\\"!=typeof f.customAttributes||\\\"string\\\"!=typeof e||0===e.length)return void(0,h.R)(57);const p=(e,t)=\u003enull==e?t:\\\"number\\\"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(f.start=p(d,0),f.end=p(u,c),Number.isNaN(f.start)||Number.isNaN(f.end))(0,h.R)(57);else{if(f.duration=f.end-f.start,!(f.duration\u003c0))return(0,s.p)(a.Pl+a.V1,[f,e,i],void 0,t.K7.genericEvents,n.ee),f;(0,h.R)(58)}}function G(e,r={},n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.fF,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}var z=i(5871),Y=i(9566);const Z=[\\\"name\\\",\\\"id\\\",\\\"type\\\"];function q(e){(0,c.Y)(a.eY,function(t){return X(e,t)},e)}function X(e,r,n){(0,h.R)(54,\\\"newrelic.register\\\"),r||={},r.instance=(0,Y.LA)(8),r.type=H.fQ.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,(\\\"object\\\"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))\u0026\u0026(r.tags={}),r.parent=n||{get id(){return e.runtime.appMetadata.agents[0].entityGuid},type:H.fQ.BA};const i=(0,z.Qr)(),a={};Object.defineProperty(r,\\\"attributes\\\",{get:()=\u003e({...a,\\\"source.id\\\":r.id,\\\"source.name\\\":r.name,\\\"source.type\\\":r.type,\\\"parent.type\\\":r.parent?.type||H.fQ.BA,\\\"parent.id\\\":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=\u003e{Z.includes(e)||(a[\\\"source.\\\".concat(e)]=t)}),r.isolated??=!0;let c=()=\u003e{};const d=e.runtime.registeredEntities;if(!r.isolated){const e=d.find(({metadata:{target:{id:e}}})=\u003ee===r.id\u0026\u0026!r.isolated);if(e)return e}const u=e=\u003e{r.blocked=!0,c=e};function l(e){return\\\"string\\\"==typeof e\u0026\u0026!!e.trim()\u0026\u0026e.trim().length\u003c501}e.init.api.allow_registered_children||u((0,m.J)(()=\u003e(0,h.R)(55))),l(r.id)\u0026\u0026l(r.name)||u((0,m.J)(()=\u003e(0,h.R)(48,r)));const f={addPageAction:(t,n={})=\u003ey(U,[t,{...a,...n},e],r),deregister:()=\u003e{g(),u((0,m.J)(()=\u003e(0,h.R)(68)))},log:(t,n={})=\u003ey(F,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=\u003ey(V,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=\u003ey(B,[t,{...a,...n},e],r),register:(t={})=\u003ey(X,[e,t],f.metadata.target),recordCustomEvent:(t,n={})=\u003ey(G,[t,{...a,...n},e],r),setApplicationVersion:e=\u003ev(\\\"application.version\\\",e),setCustomAttribute:(e,t)=\u003ev(e,t),setUserId:e=\u003ev(\\\"enduser.id\\\",e),metadata:{get customAttributes(){return a},target:r,timings:i}},p=()=\u003e(r.blocked\u0026\u0026c(),r.blocked);function g(){i.reportedAt||(i.reportedAt=(0,o.t)(),f.recordCustomEvent(\\\"MicroFrontEndTiming\\\",{assetUrl:i.asset,assetType:i.type,timeToLoad:i.registeredAt-i.fetchStart,timeToBeRequested:i.fetchStart,timeToFetch:i.fetchEnd-i.fetchStart,timeToRegister:i.registeredAt-i.fetchEnd,timeAlive:i.reportedAt-i.registeredAt}))}p()||(d.push(f),(0,x.G)(g));const v=(e,t)=\u003e{p()||(a[e]=t)},y=(r,n,i)=\u003e{if(p()\u0026\u0026r!==X)return;const a=(0,o.t)();(0,s.p)(O.xV,[\\\"API/register/\\\".concat(r.name,\\\"/called\\\")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,a)}catch(e){(0,h.R)(50,e)}};return f}class Q extends y{static featureName=k.T;constructor(e){var t;super(e,k.T),t=e,(0,c.Y)(a.o5,(e,r)=\u003eB(e,r,t),t),function(e){(0,c.Y)(a.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,c.Y)(a.k6,function(e,r){++t\u003e10||(this.runtime.releaseIds[e.slice(-200)]=(\\\"\\\"+r).slice(-200))},e)}(e),q(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\\\"internal-error\\\",(t,r)=\u003e{this.abortHandler\u0026\u0026(0,s.p)(\\\"ierr\\\",[C(t),(0,o.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),f.gm.addEventListener(\\\"unhandledrejection\\\",t=\u003e{this.abortHandler\u0026\u0026(0,s.p)(\\\"err\\\",[L(t),(0,o.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),f.gm.addEventListener(\\\"error\\\",t=\u003e{this.abortHandler\u0026\u0026(0,s.p)(\\\"err\\\",[I(t),(0,o.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#r,this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,2176)))}#r(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var J=i(8990);let ee=1;function te(e){const t=typeof e;return!e||\\\"object\\\"!==t\u0026\u0026\\\"function\\\"!==t?-1:e===f.gm?0:(0,J.I)(e,\\\"nr@id\\\",function(){return ee++})}function re(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,D.A)(e).length}catch(e){return}}}var ne=i(8139),ie=i(7836),se=i(3434);const oe={},ae=[\\\"open\\\",\\\"send\\\"];function ce(e,t){var r=e||ie.ee;const n=function(e){return(e||ie.ee).get(\\\"xhr\\\")}(r);if(void 0===f.gm.XMLHttpRequest)return n;if(oe[n.debugId]++)return n;oe[n.debugId]=1,(0,ne.u)(r);var i=(0,se.YM)(n),s=f.gm.XMLHttpRequest,o=f.gm.MutationObserver,a=f.gm.Promise,c=f.gm.setInterval,d=\\\"readystatechange\\\",u=[\\\"onload\\\",\\\"onerror\\\",\\\"onabort\\\",\\\"onloadstart\\\",\\\"onloadend\\\",\\\"onprogress\\\",\\\"ontimeout\\\"],l=[],p=f.gm.XMLHttpRequest=function(e){const r=new s(e),o=n.context(r);o.targets=(0,H.$5)(t);try{n.emit(\\\"new-xhr\\\",[r],o),r.addEventListener(d,(a=o,function(){var e=this;e.readyState\u003e3\u0026\u0026!a.resolved\u0026\u0026(a.resolved=!0,n.emit(\\\"xhr-resolved\\\",[],e)),i.inPlace(e,u,\\\"fn-\\\",w)}),(0,N.jT)(!1))}catch(e){(0,h.R)(15,e);try{n.emit(\\\"internal-error\\\",[e])}catch(e){}}var a;return r};function g(e,t){i.inPlace(t,[\\\"onreadystatechange\\\"],\\\"fn-\\\",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,p),p.prototype=s.prototype,i.inPlace(p.prototype,ae,\\\"-xhr-\\\",w),n.on(\\\"send-xhr-start\\\",function(e,t){g(e,t),function(e){l.push(e),o\u0026\u0026(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on(\\\"open-xhr-start\\\",g),o){var m=a\u0026\u0026a.resolve();if(!c\u0026\u0026!a){var v=1,y=document.createTextNode(v);new o(b).observe(y,{characterData:!0})}}else r.on(\\\"fn-end\\\",function(e){e[0]\u0026\u0026e[0].type===d||b()});function b(){for(var e=0;e\u003cl.length;e++)g(0,l[e]);l.length\u0026\u0026(l=[])}function w(e,t){return t}return n}var de=\\\"fetch-\\\",ue=de+\\\"body-\\\",le=[\\\"arrayBuffer\\\",\\\"blob\\\",\\\"json\\\",\\\"text\\\",\\\"formData\\\"],fe=f.gm.Request,he=f.gm.Response,pe=\\\"prototype\\\";const ge={};function me(e,t){const r=function(e){return(e||ie.ee).get(\\\"fetch\\\")}(e);if(!(fe\u0026\u0026he\u0026\u0026f.gm.fetch))return r;if(ge[r.debugId]++)return r;function n(e,n,i){var s=e[n];\\\"function\\\"==typeof s\u0026\u0026(e[n]=function(){var e=[...arguments];const n={},o=(0,H.$5)(t);var a;r.emit(i+\\\"before-start\\\",[e],n),n[ie.P]\u0026\u0026n[ie.P].dt\u0026\u0026(a=n[ie.P].dt);var c=s.apply(this,e);return r.emit(i+\\\"start\\\",[e,a],c),c.then(function(e){return r.emit(i+\\\"end\\\",[null,e,o],c),e},function(e){throw r.emit(i+\\\"end\\\",[e,void 0,o],c),e})})}return ge[r.debugId]=1,le.forEach(e=\u003e{n(fe[pe],e,ue),n(he[pe],e,ue)}),n(f.gm,\\\"fetch\\\",de),r.on(de+\\\"end\\\",function(e,t,n){var i=this;if(i.targets=n||[void 0],t){var s=t.headers.get(\\\"content-length\\\");null!==s\u0026\u0026(i.rxSize=s),r.emit(de+\\\"done\\\",[null,t],i)}else r.emit(de+\\\"done\\\",[e],i)}),r}var ve=i(7485);class ye{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||\\\"\\\").toString()||null,n=(t.agentID||\\\"\\\").toString()||null,i=(t.trustKey||\\\"\\\").toString()||null;if(!r||!n)return null;var s=(0,Y.ZF)(),o=(0,Y.el)(),a=Date.now(),c={spanId:s,traceId:o,timestamp:a};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,o),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,a,r,n,i)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(c.newrelicHeader=this.generateTraceHeader(s,o,a,r,n,i)),c}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,s){if(!(\\\"function\\\"==typeof f.gm?.btoa))return null;var o={v:[0,1],d:{ty:\\\"Browser\\\",ac:n,ap:i,id:e,tr:t,ti:r}};return s\u0026\u0026n!==s\u0026\u0026(o.d.tk=s),btoa((0,D.A)(o))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ve.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}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var be=i(9300),we=i(7295);function Re(e){return\\\"string\\\"==typeof e?e:e instanceof(0,T.dV)().o.REQ?e.url:f.gm?.URL\u0026\u0026e instanceof URL?e.href:void 0}var Ee=[\\\"load\\\",\\\"error\\\",\\\"abort\\\",\\\"timeout\\\"],Te=Ee.length,Ae=(0,T.dV)().o.REQ,xe=(0,T.dV)().o.XHR;const Se=\\\"X-NewRelic-App-Data\\\";class _e extends y{static featureName=be.T;constructor(e){super(e,be.T),this.dt=new ye(e),this.handler=(e,t,r,n)=\u003e(0,s.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\\\"xhr\\\",fetch:\\\"fetch\\\",beacon:\\\"beacon\\\"};f.gm?.performance?.getEntriesByType(\\\"resource\\\").forEach(r=\u003e{if(r.initiatorType in e\u0026\u00260!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};Oe(n,r.name),this.handler(\\\"xhr\\\",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}me(this.ee,e),ce(this.ee,e),function(e,r,n,i){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=T,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener(\\\"load\\\",function(r){x(t,e)},(0,N.jT)(!1)),f.lR||e.addEventListener(\\\"progress\\\",function(e){t.lastSize=e.loaded},(0,N.jT)(!1))}function c(e){this.params={method:e[0]},Oe(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\\\"X-NewRelic-ID\\\",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader\u0026\u0026(r.setRequestHeader(\\\"newrelic\\\",n.newrelicHeader),s=!0),n.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\\\"traceparent\\\",n.traceContextParentHeader),n.traceContextStateHeader\u0026\u0026r.setRequestHeader(\\\"tracestate\\\",n.traceContextStateHeader),s=!0),s\u0026\u0026(this.dt=n)}}function u(e,t){var n=this.metrics,i=e[0],s=this;if(n\u0026\u0026i){var a=re(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,o.t)(),this.body=i,this.listener=function(e){try{\\\"abort\\\"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),(\\\"load\\\"!==e.type||s.called===s.totalCbs\u0026\u0026(s.onloadCalled||\\\"function\\\"!=typeof t.onload)\u0026\u0026\\\"function\\\"==typeof s.end)\u0026\u0026s.end(t)}catch(e){try{r.emit(\\\"internal-error\\\",[e])}catch(e){}}};for(var c=0;c\u003cTe;c++)t.addEventListener(Ee[c],this.listener,(0,N.jT)(!1))}function l(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 h(e,t){var r=\\\"\\\"+te(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=\\\"\\\"+te(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function g(){this.endTime=(0,o.t)()}function m(e,t){t instanceof xe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026r.emit(\\\"xhr-load-added\\\",[e[1],e[2]],t)}function v(e,t){t instanceof xe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026r.emit(\\\"xhr-load-removed\\\",[e[1],e[2]],t)}function y(e,t,r){t instanceof xe\u0026\u0026(\\\"onload\\\"===r\u0026\u0026(this.onload=!0),(\\\"load\\\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,o.t)()))}function b(e,t){this.xhrCbStart\u0026\u0026r.emit(\\\"xhr-cb-time\\\",[(0,o.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if(\\\"string\\\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026f.RI\u0026\u0026(t=\\\"\\\"+f.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:f.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,ve.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n\u0026\u0026(n.newrelicHeader||n.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)a(e[0].headers,n)\u0026\u0026(this.dt=n);else{var s={};for(var o in r)s[o]=r[o];s.headers=new Headers(r.headers||{}),a(s.headers,n)\u0026\u0026(this.dt=n),e.length\u003e1?e[1]=s:e.push(s)}}function a(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 R(e,t){this.params={},this.metrics={},this.startTime=(0,o.t)(),this.dt=t;let[r,n={}]=e;Oe(this,Re(r));const i=(\\\"\\\"+(r\u0026\u0026r instanceof Ae\u0026\u0026r.method||n.method||\\\"GET\\\")).toUpperCase();this.params.method=i,this.body=n.body,this.txSize=re(n.body)||0}function E(e,t){if(this.endTime=(0,o.t)(),this.params||(this.params={}),(0,we.iW)(this.params))return;let r;this.params.status=t?t.status:0,\\\"string\\\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(r=+this.rxSize);const n={txSize:this.txSize,rxSize:r,duration:(0,o.t)()-this.startTime},i=[this.params,n,this.startTime,this.endTime,\\\"fetch\\\"];this.targets.forEach(e=\u003eA(i,this,e))}function T(e){const t=this.params,r=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t\u003cTe;t++)e.removeEventListener(Ee[t],this.listener,!1);if(t.aborted)return;if((0,we.iW)(t))return;r.duration=(0,o.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):x(this,e),r.cbTime=this.cbTime;const n=[t,r,this.startTime,this.endTime,\\\"xhr\\\"];this.targets.forEach(e=\u003eA(n,this,e))}function A(e,r,i){n(\\\"xhr\\\",[...e,i],r,t.K7.ajax)}function x(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return\\\"json\\\"===r\u0026\u0026null!==t?t:\\\"arraybuffer\\\"===r||\\\"blob\\\"===r||\\\"json\\\"===r?re(e.response):\\\"text\\\"===r||\\\"\\\"===r||void 0===r?re(e.responseText):void 0}(n,e.lastSize);if(i\u0026\u0026(e.metrics.rxSize=i),e.sameOrigin\u0026\u0026n.getAllResponseHeaders().indexOf(Se)\u003e=0){var o=n.getResponseHeader(Se);o\u0026\u0026((0,s.p)(O.rs,[\\\"Ajax/CrossApplicationTracing/Header/Seen\\\"],void 0,t.K7.metrics,r),e.params.cat=o.split(\\\", \\\").pop())}e.loadCaptureCalled=!0}r.on(\\\"new-xhr\\\",a),r.on(\\\"open-xhr-start\\\",c),r.on(\\\"open-xhr-end\\\",d),r.on(\\\"send-xhr-start\\\",u),r.on(\\\"xhr-cb-time\\\",l),r.on(\\\"xhr-load-added\\\",h),r.on(\\\"xhr-load-removed\\\",p),r.on(\\\"xhr-resolved\\\",g),r.on(\\\"addEventListener-end\\\",m),r.on(\\\"removeEventListener-end\\\",v),r.on(\\\"fn-end\\\",b),r.on(\\\"fetch-before-start\\\",w),r.on(\\\"fetch-start\\\",R),r.on(\\\"fn-start\\\",y),r.on(\\\"fetch-done\\\",E)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,3845)))}}function Oe(e,t){var r=(0,ve.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 Pe={},ke=[\\\"pushState\\\",\\\"replaceState\\\"];function Ne(e){const t=function(e){return(e||ie.ee).get(\\\"history\\\")}(e);return!f.RI||Pe[t.debugId]++||(Pe[t.debugId]=1,(0,se.YM)(t).inPlace(window.history,ke,\\\"-\\\")),t}var De=i(3738);function je(e){(0,c.Y)(a.BL,function(r=Date.now()){const n=r-f.WN;n\u003c0\u0026\u0026(0,h.R)(62,r),(0,s.p)(O.XG,[a.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:a.BL,start:r,origin:\\\"nr\\\"}),(0,s.p)(a.Pl+a.hG,[n,a.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:Ce,bD:Le,d3:Ie,Kp:Me,TZ:Be,Lc:He,uP:We,Rz:Ke}=De;class Fe extends y{static featureName=Be;constructor(e){var r;super(e,Be),r=e,(0,c.Y)(a.U2,function(e){if(!(e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026e.name\u0026\u0026e.start))return;const n={n:e.name,s:e.start-f.WN,e:(e.end||e.start)-f.WN,o:e.origin||\\\"\\\",t:\\\"api\\\"};n.s\u003c0||n.e\u003c0||n.e\u003cn.s?(0,h.R)(61,{start:n.s,end:n.e}):(0,s.p)(\\\"bstApi\\\",[n],void 0,t.K7.sessionTrace,r.ee)},r),je(e);if(!(0,g.V)(e.init))return void this.deregisterDrain();const n=this.ee;let d;Ne(n),this.eventsEE=(0,ne.u)(n),this.eventsEE.on(We,function(e,t){this.bstStart=(0,o.t)()}),this.eventsEE.on(He,function(e,r){(0,s.p)(\\\"bst\\\",[e[0],r,this.bstStart,(0,o.t)()],void 0,t.K7.sessionTrace,n)}),n.on(Ke+Ie,function(e){this.time=(0,o.t)(),this.startPath=location.pathname+location.hash}),n.on(Ke+Me,function(e){(0,s.p)(\\\"bstHist\\\",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,n)});try{d=new PerformanceObserver(e=\u003e{const r=e.getEntries();(0,s.p)(Ce,[r],void 0,t.K7.sessionTrace,n)}),d.observe({type:Le,buffered:!0})}catch(e){}this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,6974)),{resourceObserver:d})}}var Ue=i(6344);class Ve extends y{static featureName=Ue.TZ;#n;recorder;constructor(e){var r;let n;super(e,Ue.TZ),r=e,(0,c.Y)(a.CH,function(){(0,s.p)(a.CH,[],void 0,t.K7.sessionReplay,r.ee)},r),function(e){(0,c.Y)(a.Tb,function(){(0,s.p)(a.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);try{n=JSON.parse(localStorage.getItem(\\\"\\\".concat(w.H3,\\\"_\\\").concat(w.uh)))}catch(e){}(0,p.SR)(e.init)\u0026\u0026this.ee.on(a.CH,()=\u003ethis.#i()),this.#s(n)\u0026\u0026this.importRecorder().then(e=\u003e{e.startRecording(Ue.Qb.PRELOAD,n?.sessionReplayMode)}),this.importAggregator(this.agentRef,()=\u003ei.e(478).then(i.bind(i,6167)),this),this.ee.on(\\\"err\\\",e=\u003e{this.blocked||this.agentRef.runtime.isRecording\u0026\u0026(this.errorNoticed=!0,(0,s.p)(Ue.Vh,[e],void 0,this.featureName,this.ee))})}#s(e){return e\u0026\u0026(e.sessionReplayMode===w.g.FULL||e.sessionReplayMode===w.g.ERROR)||(0,p.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#n??=Promise.all([i.e(478),i.e(249)]).then(i.bind(i,4866)).then(({Recorder:e})=\u003e(this.recorder=new e(this),this.recorder)).catch(e=\u003e{throw this.ee.emit(\\\"internal-error\\\",[e]),this.blocked=!0,e}),this.#n)}#i(){this.blocked||(this.featAggregate?this.featAggregate.mode!==w.g.FULL\u0026\u0026this.featAggregate.initializeRecording(w.g.FULL,!0,Ue.Qb.API):this.importRecorder().then(()=\u003e{this.recorder.startRecording(Ue.Qb.API,w.g.FULL)}))}}var Ge=i(3962);class ze extends y{static featureName=Ge.TZ;constructor(e){if(super(e,Ge.TZ),function(e){const r=e.ee.get(\\\"tracer\\\");function n(){}(0,c.Y)(a.dT,function(e){return(new n).get(\\\"object\\\"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var a={},c=this,d=\\\"function\\\"==typeof i;return(0,s.p)(O.xV,[\\\"API/createTracer/called\\\"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((d?\\\"\\\":\\\"no-\\\")+\\\"fn-start\\\",[(0,o.t)(),c,d],a),d)try{return i.apply(this,arguments)}catch(e){const t=\\\"string\\\"==typeof e?new Error(e):e;throw r.emit(\\\"fn-err\\\",[arguments,this,t],a),t}finally{r.emit(\\\"fn-end\\\",[(0,o.t)()],a)}}}};[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach(r=\u003e{c.Y.apply(this,[r,function(){return(0,s.p)(a.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,c.Y)(a.PA,function(){(0,s.p)(a.hw+\\\"routeName\\\",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!f.RI||!(0,T.dV)().o.MO)return;const r=Ne(this.ee);try{this.removeOnAbort=new AbortController}catch(e){}Ge.tC.forEach(e=\u003e{(0,N.sp)(e,e=\u003e{l(e)},!0,this.removeOnAbort?.signal)});const n=()=\u003e(0,s.p)(\\\"newURL\\\",[(0,o.t)(),\\\"\\\"+window.location],void 0,this.featureName,this.ee);r.on(\\\"pushState-end\\\",n),r.on(\\\"replaceState-end\\\",n),(0,N.sp)(Ge.OV,e=\u003e{l(e),(0,s.p)(\\\"newURL\\\",[e.timeStamp,\\\"\\\"+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let d=!1;const u=new((0,T.dV)().o.MO)((e,t)=\u003e{d||(d=!0,requestAnimationFrame(()=\u003e{(0,s.p)(\\\"newDom\\\",[(0,o.t)()],void 0,this.featureName,this.ee),d=!1}))}),l=(0,m.s)(e=\u003e{\\\"loading\\\"!==document.readyState\u0026\u0026((0,s.p)(\\\"newUIEvent\\\",[e],void 0,this.featureName,this.ee),u.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),u.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,4393)),{domObserver:u})}}var Ye=i(3333),Ze=i(9119);const qe={},Xe=new Set;function $e(e){return\\\"string\\\"==typeof e?{type:\\\"string\\\",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:\\\"ArrayBuffer\\\",size:e.byteLength}:e instanceof Blob?{type:\\\"Blob\\\",size:e.size}:e instanceof DataView?{type:\\\"DataView\\\",size:e.byteLength}:ArrayBuffer.isView(e)?{type:\\\"TypedArray\\\",size:e.byteLength}:{type:\\\"unknown\\\",size:0}}class Qe{constructor(e,t){this.timestamp=(0,o.t)(),this.currentUrl=(0,Ze.L)(window.location.href),this.socketId=(0,Y.LA)(8),this.requestedUrl=(0,Ze.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(\\\",\\\"):t||\\\"\\\",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason=\\\"unknown\\\",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class Je extends y{static featureName=Ye.TZ;constructor(e){super(e,Ye.TZ);const r=e.init.feature_flags.includes(\\\"websockets\\\"),n=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,r];var d;let u,l;if(d=e,(0,c.Y)(a.hG,(e,t)=\u003eU(e,t,d),d),function(e){(0,c.Y)(a.fF,(t,r)=\u003eG(t,r,e),e)}(e),je(e),q(e),function(e){(0,c.Y)(a.V1,(t,r)=\u003eV(t,r,e),e)}(e),r\u0026\u0026(l=function(e){if(!(0,T.dV)().o.WS)return e;const t=e.get(\\\"websockets\\\");if(qe[t.debugId]++)return t;qe[t.debugId]=1,(0,x.G)(()=\u003e{const e=(0,o.t)();Xe.forEach(r=\u003e{r.nrData.closedAt=e,r.nrData.closeCode=1001,r.nrData.closeReason=\\\"Page navigating away\\\",r.nrData.closeWasClean=!1,r.nrData.openedAt\u0026\u0026(r.nrData.connectedDuration=e-r.nrData.openedAt),t.emit(\\\"ws\\\",[r.nrData],r)})});class r extends WebSocket{static name=\\\"WebSocket\\\";static toString(){return\\\"function WebSocket() { [native code] }\\\"}toString(){return\\\"[object WebSocket]\\\"}get[Symbol.toStringTag](){return r.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Qe(e[0],e[1]),this.addEventListener(\\\"open\\\",()=\u003e{this.nrData.openedAt=(0,o.t)(),[\\\"protocol\\\",\\\"extensions\\\",\\\"binaryType\\\"].forEach(e=\u003e{this.nrData[e]=this[e]}),Xe.add(this)}),this.addEventListener(\\\"message\\\",e=\u003e{const{type:t,size:r}=$e(e.data);this.nrData.messageOrigin??=(0,Ze.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??\\\"\\\").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?\\\"\\\".concat(this.nrData.messageTypes,\\\",\\\").concat(t):t)}),this.addEventListener(\\\"close\\\",e=\u003e{this.nrData.closedAt=(0,o.t)(),this.nrData.closeCode=e.code,e.reason\u0026\u0026(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Xe.delete(this),t.emit(\\\"ws\\\",[this.nrData],this)})}addEventListener(e,t,...r){const n=this,i=\\\"function\\\"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=$e(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??\\\"\\\").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?\\\"\\\".concat(this.nrData.sendTypes,\\\",\\\").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return f.gm.WebSocket=r,t}(this.ee)),f.RI){if(me(this.ee,e),ce(this.ee,e),u=Ne(this.ee),e.init.user_actions.enabled){function h(t){const r=(0,ve.D)(t);return e.beacons.includes(r.hostname+\\\":\\\"+r.port)}function p(){u.emit(\\\"navChange\\\")}Ye.Zp.forEach(e=\u003e(0,N.sp)(e,e=\u003e(0,s.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee),!0)),Ye.qN.forEach(e=\u003e{const t=(0,m.s)(e=\u003e{(0,s.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,N.sp)(e,t)}),f.gm.addEventListener(\\\"error\\\",()=\u003e{(0,s.p)(\\\"uaErr\\\",[],void 0,t.K7.genericEvents,this.ee)},(0,N.jT)(!1,this.removeOnAbort?.signal)),this.ee.on(\\\"open-xhr-start\\\",(e,r)=\u003e{h(e[1])||r.addEventListener(\\\"readystatechange\\\",()=\u003e{2===r.readyState\u0026\u0026(0,s.p)(\\\"uaXhr\\\",[],void 0,t.K7.genericEvents,this.ee)})}),this.ee.on(\\\"fetch-start\\\",e=\u003e{e.length\u003e=1\u0026\u0026!h(Re(e[0]))\u0026\u0026(0,s.p)(\\\"uaXhr\\\",[],void 0,t.K7.genericEvents,this.ee)}),u.on(\\\"pushState-end\\\",p),u.on(\\\"replaceState-end\\\",p),window.addEventListener(\\\"hashchange\\\",p,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\\\"popstate\\\",p,(0,N.jT)(!0,this.removeOnAbort?.signal))}if(e.init.performance.resources.enabled\u0026\u0026f.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\")){new PerformanceObserver(e=\u003e{e.getEntries().forEach(e=\u003e{(0,s.p)(\\\"browserPerformance.resource\\\",[e],void 0,this.featureName,this.ee)})}).observe({type:\\\"resource\\\",buffered:!0})}}r\u0026\u0026l.on(\\\"ws\\\",e=\u003e{(0,s.p)(\\\"ws-complete\\\",[e],void 0,this.featureName,this.ee)});try{this.removeOnAbort=new AbortController}catch(g){}this.abortHandler=()=\u003e{this.removeOnAbort?.abort(),this.abortHandler=void 0},n.some(e=\u003ee)?this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,8019))):this.deregisterDrain()}}var et=i(2646);const tt=new Map;function rt(e,t,r,n,i=!0,s){if(\\\"object\\\"!=typeof t||!t||\\\"string\\\"!=typeof r||!r||\\\"function\\\"!=typeof t[r])return(0,h.R)(29);const o=function(e){return(e||ie.ee).get(\\\"logger\\\")}(e),a=(0,se.YM)(o,void 0,s),c=new et.y(ie.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[se.Jt]||t[r];return tt.set(d,c),a.inPlace(t,[r],\\\"wrap-logger-\\\",()=\u003ett.get(d),void 0,!0),o}var nt=i(1910);class it extends y{static featureName=W.TZ;constructor(e){var t;super(e,W.TZ),t=e,(0,c.Y)(a.$9,(e,r)=\u003eF(e,r,t),t),function(e){(0,c.Y)(a.Wb,(t,r,{customAttributes:n={},level:i=W.p_.INFO}={})=\u003e{rt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),q(e);const r=this.ee;[\\\"log\\\",\\\"error\\\",\\\"warn\\\",\\\"info\\\",\\\"debug\\\",\\\"trace\\\"].forEach(t=\u003e{(0,nt.i)(f.gm.console[t]),rt(r,f.gm.console,t,{level:\\\"log\\\"===t?\\\"info\\\":t},void 0,e)}),this.ee.on(\\\"wrap-logger-end\\\",function([e],t,n,i=[]){const{level:s,customAttributes:o,autoCaptured:a}=this;i.forEach(t=\u003e{(0,K.R)(r,e,o,s,a,t)})}),this.importAggregator(e,()=\u003ei.e(478).then(i.bind(i,5288)))}}new A({features:[_e,E,_,Fe,Ve,P,Q,Je,it,ze],loaderType:\\\"spa\\\"})})()})();\",\"google\",\"testAutomationFlags\",{\"_815\":18,\"_816\":18,\"_817\":18,\"_818\":18,\"_819\":18,\"_820\":18,\"_821\":18,\"_822\":18,\"_823\":18,\"_21\":18,\"_824\":18,\"_825\":178,\"_826\":178,\"_827\":18},\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"extendedBreakpointsEnabled\",\"configState\",{\"_56\":57,\"_54\":55,\"_830\":831,\"_840\":8,\"_13\":14,\"_841\":178,\"_842\":-7,\"_843\":-7,\"_753\":844,\"_849\":850,\"_852\":853,\"_866\":867,\"_871\":-7,\"_872\":873,\"_906\":907,\"_920\":-7},\"oneInforma\",{\"_832\":833,\"_834\":835,\"_836\":837,\"_838\":839},\"primaryColorPalette\",\"mint\",\"secondaryColorPalette\",\"saffronxindigo\",\"endorsementLevel\",\"full-endorsement\",\"personality\",\"soft\",\"uiBrand\",\"optimizelyUrl\",\"colors\",\"isMarketsDivision\",{\"_7\":845,\"_846\":847,\"_848\":178},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt06f49c53183e1192/65def48d237abe040a0cdb1b/Placeholder_Image.svg\",\"contributor\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltae99c6600909049d/6582ebe1e746c5040a189f2b/theme1_placeholder_avatar.png\",\"openGraphImage\",\"media\",{\"_851\":178},\"brightcoveAccountId\",\"newsletterSignupPromo\",{\"_854\":-7,\"_855\":856},\"unbounceURL\",\"elnConfig\",{\"_857\":858},\"newsletter\",{\"_859\":860,\"_864\":865},\"subscribeForm\",{\"_123\":861,\"_862\":863},\"Subscribe to Our Newsletters\",\"subtitle\",\"Subtitle\",\"subscribeConfirm\",{\"_123\":861,\"_862\":863},\"newsletterCta\",{\"_868\":869,\"_870\":575},\"newsletterTitle\",\"Newsletter Sign-Up\",\"newsletterUrl\",\"nextgen\",\"iirisRecommendation\",{\"_91\":874,\"_875\":18,\"_876\":18,\"_877\":18,\"_7\":8,\"_878\":879,\"_880\":-7,\"_881\":269,\"_882\":883,\"_884\":885,\"_886\":887,\"_888\":889,\"_890\":891,\"_123\":892,\"_893\":18,\"_894\":445,\"_895\":896,\"_185\":-7,\"_897\":898,\"_899\":900,\"_901\":902},\"combined\",\"disabled\",\"disableSidebar\",\"disableArticleFooter\",\"brandFamily\",\"enterpriseit\",\"by\",\"count\",\"division\",\"it\",\"itemAge\",12,\"recipe\",\"related-items\",\"redirectMode\",\"_self\",\"sponsoredCount\",0,\"You May Also Like\",\"showSponsored\",\"sponsoredTag\",\"sponsoredTitle\",\"Sponsored\",\"articleFooter\",{\"_881\":269,\"_886\":887,\"_884\":885,\"_890\":891,\"_185\":-7},\"sidebar\",{\"_881\":269,\"_886\":887,\"_884\":885,\"_890\":891,\"_185\":-7},\"authorPrefix\",{\"_903\":880,\"_904\":905},\"content\",\"sponsored\",\"Brought to you by\",\"connectMeConfig\",{\"_908\":909,\"_910\":28,\"_911\":28,\"_912\":913,\"_914\":915,\"_916\":917,\"_918\":919},\"eventId\",\"9E89FC22DE131DDBF1AD6DFEDC03EB48\",\"externalConsent\",\"expressAccess\",\"expressType\",\"stage\",\"sandboxBaseUrl\",\"https://sandbox.connectmeinforma.com\",\"fallbackUrl\",\"https://webinar.connectmeinforma.com\",\"seamlessRegistrationEndpoint\",\"/{event_id}/agenda/viewer/{session_id}\",\"excludedPaidProductIdsForConsent\",\"brandConfig\",{\"_923\":67,\"_25\":924,\"_927\":928,\"_945\":946,\"_950\":951,\"_906\":953,\"_954\":955,\"_13\":14,\"_962\":14,\"_963\":10,\"_964\":965,\"_966\":967,\"_969\":970,\"_971\":972,\"_983\":984,\"_851\":178,\"_989\":990,\"_52\":993,\"_994\":995,\"_999\":856,\"_780\":809,\"_872\":1000},\"irisEnvironment\",{\"_925\":51,\"_51\":926},\"active\",{\"_27\":28,\"_29\":28,\"_30\":31},\"ads\",{\"_929\":28,\"_930\":18,\"_931\":932,\"_933\":934,\"_937\":938,\"_939\":940,\"_941\":942,\"_943\":18,\"_944\":28},\"autoSelectPos\",\"destroyEmpty\",\"throttling\",120,\"loadingConfig\",{\"_935\":936},\"base\",300,\"networkId\",3618,\"parentAdUnit\",\"itprotoday.home\",\"enabledAds\",\"none\",\"checkClientIP\",\"disableSponsorBar\",\"iirisAudienceProfileConfig\",{\"_67\":947},{\"_948\":18,\"_62\":949},\"useLegacyIrisEndpoint\",\"/v3/audience/registration/{profileId}/{configId}\",\"iirisBaseUrl\",{\"_67\":952},\"https://api.iiris.com\",{\"_67\":907},\"newRelicEnvConfiguration\",{\"_956\":957,\"_958\":959,\"_960\":961},\"accountId\",\"TSS-SCM_Prod-1D8HF23EQFV80\",\"apiKey\",\"eu01xx8a36195d1e12f7ee86fdb984a6FFFFNRAL\",\"newrelicEndpoint\",\"https://insights-collector.eu01.nr-data.net\",\"siteFullName\",\"siteUrl\",\"siteDivision\",\"Informa Tech\",\"vwo\",{\"_17\":28,\"_956\":968},\"734041\",\"authentication\",{},\"oneTrust\",{\"_973\":974,\"_977\":978,\"_979\":980,\"_67\":982},\"local\",{\"_975\":976},\"siteId\",\"dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e-test\",\"preview\",{\"_975\":976},\"staging\",{\"_975\":981},\"dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e\",{\"_975\":981},\"unbounce\",{\"_973\":985,\"_977\":986,\"_979\":987,\"_67\":988},{},{},{},{},\"gtmIds\",{\"_58\":991,\"_64\":992},\"GTM-5523ZCM\",\"GTM-MTN2X7K\",{\"_7\":8,\"_54\":55,\"_56\":57},\"newsletterSignupPromoContent\",{\"_123\":861,\"_996\":178,\"_997\":998},\"message\",\"buttonText\",\"Sign Me Up\",\"eln\",{\"_1001\":1002,\"_882\":883,\"_878\":879,\"_1003\":1004,\"_1005\":178,\"_1006\":178,\"_1007\":1008,\"_1009\":1010,\"_1011\":1012,\"_1013\":200,\"_1014\":1015,\"_1016\":1017,\"_1018\":1019,\"_888\":1020,\"_886\":887,\"_7\":8},\"id\",\"widget-1717150909887\",\"entityTagBackground\",\"#333333BF\",\"showBy\",\"showTime\",\"borderRadius\",\"4\",\"imageWidth\",\"324\",\"imageHeight\",\"182\",\"imagePosition\",\"dropShadow\",\"#FFEB00\",\"entityTagBorderColor\",\"#333333\",\"borderColor\",\"#e6e6e6\",\"same\",\"releaseVersion\",\"2.58.0\",\"ruid\",\"qb2h8b04euk\",\"routes/$topic._index\",{\"_1027\":1028,\"_1739\":1740,\"_1746\":1747,\"_1760\":1761,\"_1771\":1772,\"_96\":1741,\"_1791\":1741,\"_1023\":1793},\"template\",{\"_96\":1029,\"_123\":504,\"_1030\":1031,\"_1036\":178,\"_197\":58,\"_1037\":1038,\"_1039\":178,\"_1040\":1041,\"_1045\":-7,\"_1046\":1047,\"_1051\":1052,\"_1555\":1556,\"_1738\":-5},\"TopicPrimary\",\"categories\",[1032,1033,1034,1035],{\"_123\":473,\"_62\":474},{\"_123\":476,\"_62\":477},{\"_123\":479,\"_62\":480},{\"_123\":482,\"_62\":483},\"categoryDesc\",\"logoImage\",{\"_62\":178},\"logoImageAltText\",\"breadcrumbs\",[1042,1044],{\"_62\":1043,\"_123\":791},\"/\",{\"_123\":504,\"_62\":469},\"newsletterSignUpPromo\",\"pagination\",{\"_1048\":1049,\"_1050\":196},\"totalCount\",52,\"currentPage\",\"contents\",[1053,1074,1083,1097,1116,1129,1144,1157,1170,1184,1198,1212,1226,1241,1257,1271,1285,1299,1313,1327,1342,1356,1369,1383,1397,1411,1425,1439,1455,1468,1482,1496,1510,1528,1542],{\"_185\":186,\"_165\":1054,\"_187\":1055,\"_170\":489,\"_172\":489,\"_175\":491,\"_1058\":1059,\"_177\":178,\"_179\":492,\"_181\":178,\"_173\":490,\"_1060\":178,\"_197\":1061,\"_182\":493,\"_184\":412,\"_195\":329,\"_1062\":18,\"_1063\":1064,\"_1068\":1069,\"_1072\":1073},{\"_47\":487,\"_168\":488},[1056],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"role\",\"linkAttrs\",{},\"articleBodyJsonSummary\",\"normal\",\"hasActivePaidProduct\",\"paidGating\",{\"_1065\":18,\"_1066\":1067},\"paidContent\",\"paidProductTaxonomy\",[],\"sponsorshipGatingGroup\",{\"_1070\":18,\"_1071\":18},\"sponsorshipGatingSponsorFlag\",\"sponsorshipGatingGateRegFlag\",\"articleSize\",\"big\",{\"_185\":186,\"_165\":1075,\"_187\":1076,\"_170\":500,\"_172\":500,\"_175\":502,\"_1058\":1079,\"_177\":178,\"_179\":503,\"_181\":178,\"_173\":501,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":329,\"_1062\":18,\"_1063\":1080,\"_1068\":1082,\"_1072\":1073},{\"_47\":498,\"_168\":499},[1077],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Contributor\",{},{\"_1065\":18,\"_1066\":1081},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1084,\"_187\":1087,\"_170\":1089,\"_172\":1089,\"_175\":1090,\"_1058\":1091,\"_177\":178,\"_179\":1092,\"_181\":178,\"_173\":1093,\"_1060\":178,\"_197\":1061,\"_182\":289,\"_184\":290,\"_195\":269,\"_1062\":18,\"_1063\":1094,\"_1068\":1096,\"_1072\":1073},{\"_47\":1085,\"_168\":1086},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltae231ba5e8a66634/68ac719a4503c3f10af9f513/blind-spot-1716x965_-_2025-08-25.jpg\",\"warning sign that there is a blind spot ahead\",[1088],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"AI Code Generation Creates Blind Spots in DevSecOps Security\",\"/devops/ai-code-generation-creates-blind-spots-in-devsecops-security\",{},\"Aug 25, 2025\",\"New research reveals 98% of organizations have experienced code-related breaches as AI coding tools generate 60% of code without proper governance, undermining DevSecOps practices.\",{\"_1065\":18,\"_1066\":1095},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1098,\"_187\":1101,\"_170\":1107,\"_172\":1107,\"_175\":1108,\"_1058\":1109,\"_177\":178,\"_179\":1110,\"_181\":178,\"_173\":1111,\"_1060\":178,\"_197\":1061,\"_182\":289,\"_184\":290,\"_195\":1112,\"_1062\":18,\"_1063\":1113,\"_1068\":1115,\"_1072\":1073},{\"_47\":1099,\"_168\":1100},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt16770dd8f38bb663/68973c958bc2f32a26aa89da/DevSecOps-1716x965_-_2025-08-09.jpg\",\"DevSecOps concept art\",[1102],{\"_60\":1103,\"_191\":1104,\"_193\":1105,\"_1057\":1106},\"Grant Knoetze\",\"/author/grant-knoetze\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg\",\"Technology Analyst\",\"DevSecOps 2.0: How Security-First DevOps Is Redefining Software Delivery\",\"/devops/devsecops-2-0-how-security-first-devops-is-redefining-software-delivery\",{},\"Aug 14, 2025\",\"Here's how DevSecOps 2.0 transforms security from a last-minute hurdle into a core enabler of resilient, fast, and compliant software delivery.\",9,{\"_1065\":18,\"_1066\":1114},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1117,\"_187\":1120,\"_170\":1122,\"_172\":1122,\"_175\":1123,\"_1058\":1124,\"_177\":178,\"_179\":263,\"_181\":178,\"_173\":1125,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":329,\"_1062\":18,\"_1063\":1126,\"_1068\":1128,\"_1072\":1073},{\"_47\":1118,\"_168\":1119},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt069f53f2f0cdc2bc/68910f64d3b074160e7d1614/robots-working-puzzle-1716x965_-_2025-08-04.jpg\",\"4 robots holding up zigsaw pieces\",[1121],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Coding Agent Teams: The Next Frontier in AI-Assisted Software Development\",\"/software-development-techniques/coding-agent-teams-the-next-frontier-in-ai-assisted-software-development\",{},\"The software development landscape is evolving from single AI coding assistants to specialized teams of AI agents working in parallel, offering greater efficiency and specialization.\",{\"_1065\":18,\"_1066\":1127},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1130,\"_187\":1133,\"_170\":1136,\"_172\":1136,\"_175\":1137,\"_1058\":1138,\"_177\":178,\"_179\":1139,\"_181\":178,\"_173\":1140,\"_1060\":178,\"_197\":1061,\"_182\":476,\"_184\":477,\"_195\":269,\"_1062\":18,\"_1063\":1141,\"_1068\":1143,\"_1072\":1073},{\"_47\":1131,\"_168\":1132},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8185ca8fb9370ed1/68979bf74af7fb7bae0faf63/game-development.jpg\",\"programmer developing a game\",[1134],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Technology analyst\",\"What's the Best Programming Language for Game Development?\",\"/programming-languages/what-s-the-best-programming-language-for-game-development-\",{},\"Aug 12, 2025\",\"Master the coding languages that align with your gaming vision and take the first crucial step toward building the games you imagine.\",{\"_1065\":18,\"_1066\":1142},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1145,\"_187\":1148,\"_170\":1150,\"_172\":1150,\"_175\":1151,\"_1058\":1152,\"_177\":178,\"_179\":1139,\"_181\":178,\"_173\":1153,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":269,\"_1062\":18,\"_1063\":1154,\"_1068\":1156,\"_1072\":1073},{\"_47\":1146,\"_168\":1147},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2817eea831dc215f/6898d0643dfe74c9b9b31335/software-developer-1716x965_-_2025-01-13-25.jpg\",\"software developer looking at his screen\",[1149],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Navigating Security Debt in the Citizen Developer Era\",\"/software-development/navigating-security-debt-in-the-citizen-developer-era\",{},\"While low-code/no-code platforms democratize app creation, they're silently accumulating security vulnerabilities. Here are tips on managing citizen application developer platform security debt.\",{\"_1065\":18,\"_1066\":1155},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1158,\"_187\":1161,\"_170\":1163,\"_172\":1163,\"_175\":1164,\"_1058\":1165,\"_177\":178,\"_179\":277,\"_181\":178,\"_173\":1166,\"_1060\":178,\"_197\":1061,\"_182\":476,\"_184\":477,\"_195\":329,\"_1062\":18,\"_1063\":1167,\"_1068\":1169,\"_1072\":1073},{\"_47\":1159,\"_168\":1160},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2804894ab9be10e2/689389e42ad8b23b76cd283c/programming-languages-1716x965_-_2025-08-06.jpg\",\"set of colored balls with programming language names in each one\",[1162],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"The Myth of Legacy Programming Languages: Age Doesn't Define Value\",\"/programming-languages/the-myth-of-legacy-programming-languages-age-doesn-t-define-value\",{},\"Despite common assumptions, the distinction between \\\"legacy\\\" and \\\"modern\\\" programming languages is subjective.\",{\"_1065\":18,\"_1066\":1168},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1171,\"_187\":1174,\"_170\":1176,\"_172\":1176,\"_175\":1177,\"_1058\":1178,\"_177\":178,\"_179\":1179,\"_181\":178,\"_173\":1180,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":329,\"_1062\":18,\"_1063\":1181,\"_1068\":1183,\"_1072\":1073},{\"_47\":1172,\"_168\":1173},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt61a50d38cdfd56a5/689507df8bc2f36c81aa8345/AI-keyboard-1716x965_-_2024-11-25.jpg\",\"developer typing on a keyboard with AI above \",[1175],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Cognitive Load in the Age of AI: Rethinking Developer Workflows\",\"/software-development/cognitive-load-in-the-age-of-ai-rethinking-developer-workflows\",{},\"Aug 7, 2025\",\"AI-augmented developer tools can significantly decrease mental workload by automating repetitive tasks, providing context-specific assistance, and externalizing mental models.\",{\"_1065\":18,\"_1066\":1182},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1185,\"_187\":1188,\"_170\":1190,\"_172\":1190,\"_175\":1191,\"_1058\":1192,\"_177\":178,\"_179\":1193,\"_181\":178,\"_173\":1194,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":329,\"_1062\":18,\"_1063\":1195,\"_1068\":1197,\"_1072\":1073},{\"_47\":1186,\"_168\":1187},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt061b965d09d03130/688b3f3f5315b326453ebf87/AI-robots-1716x965_-_2025-07-31.jpg\",\"robots sitting at desks writing code\",[1189],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"AppGen: A Software Development Revolution That Won't Happen\",\"/software-development/appgen-a-software-development-revolution-that-won-t-happen\",{},\"Jul 31, 2025\",\"Here's why AI-powered application generation — AppGen — is just the latest in a long string of overhyped tech buzzwords that will fade in time.\",{\"_1065\":18,\"_1066\":1196},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1199,\"_187\":1202,\"_170\":1204,\"_172\":1204,\"_175\":1205,\"_1058\":1206,\"_177\":178,\"_179\":1207,\"_181\":178,\"_173\":1208,\"_1060\":178,\"_197\":1061,\"_182\":183,\"_184\":144,\"_195\":269,\"_1062\":18,\"_1063\":1209,\"_1068\":1211,\"_1072\":1073},{\"_47\":1200,\"_168\":1201},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt640042cd7e059cb5/6881b34559dec53629c23812/clouds-1716x965_-_2025-07-24.jpg\",\"clouds isolated against a black background\",[1203],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Decoding Cloud Terminology: What 'Cloud-Native' Really Means\",\"/cloud-computing/decoding-cloud-terminology-what-cloud-native-really-means\",{},\"Jul 24, 2025\",\"Here's how cloud-native compares in meaning to cloud-based, cloud-ready, cloud-hosted, and cloud-first.\",{\"_1065\":18,\"_1066\":1210},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1213,\"_187\":1216,\"_170\":1218,\"_172\":1218,\"_175\":1219,\"_1058\":1220,\"_177\":178,\"_179\":1221,\"_181\":178,\"_173\":1222,\"_1060\":178,\"_197\":1061,\"_182\":183,\"_184\":144,\"_195\":269,\"_1062\":18,\"_1063\":1223,\"_1068\":1225,\"_1072\":1073},{\"_47\":1214,\"_168\":1215},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt594194da6dcf5b0f/6879a28844d583259170bd1a/Swami-1716x965_-_2025-07-17.jpg\",\"Swami Sivasubramanian, VP of Agentic AI at AWS\",[1217],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"AWS Summit NYC: Suite of Production-Ready AI Agent Tools Debut\",\"/cloud-computing/aws-summit-nyc-suite-of-production-ready-ai-agent-tools-debut\",{},\"Jul 18, 2025\",\"At its 2025 NYC Summit, AWS launches Amazon Bedrock AgentCore to bridge the gap between agentic AI proof-of-concepts and enterprise-grade deployments.\",{\"_1065\":18,\"_1066\":1224},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1227,\"_187\":1230,\"_170\":1232,\"_172\":1232,\"_175\":1233,\"_1058\":1234,\"_177\":178,\"_179\":1235,\"_181\":178,\"_173\":1236,\"_1060\":178,\"_197\":1061,\"_182\":323,\"_184\":282,\"_195\":1237,\"_1062\":18,\"_1063\":1238,\"_1068\":1240,\"_1072\":1073},{\"_47\":1228,\"_168\":1229},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0a6ba3c830b50ea7/687867bc89f8b73e562a9eb1/spending-1716x965_-_2025-07-16.jpg\",\"credit card and dollar bills on top of a laptop\",[1231],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Gartner Forecast: IT Spending Surges 7.9% Amid Infrastructure Revolution\",\"/it-management/gartner-forecast-it-spending-surges-7-9-amid-infrastructure-revolution\",{},\"Jul 17, 2025\",\"IT spending will reach $5.43 trillion in 2025, with 7.9% growth led by AI infrastructure, though enterprises are pausing new tech initiatives due to uncertainty.\",3,{\"_1065\":18,\"_1066\":1239},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1242,\"_187\":1244,\"_170\":1249,\"_172\":1249,\"_175\":1250,\"_1058\":1251,\"_177\":178,\"_179\":1252,\"_181\":178,\"_173\":1253,\"_1060\":178,\"_197\":1061,\"_182\":323,\"_184\":282,\"_195\":1112,\"_1062\":18,\"_1063\":1254,\"_1068\":1256,\"_1072\":1073},{\"_47\":1243,\"_168\":178},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt471bb35a9ceb701d/6877934030f3c530c995a6b5/AI-Data-Center.jpg\",[1245],{\"_60\":1246,\"_191\":1247,\"_193\":1248,\"_1057\":178},\"Forrester Blog Network\",\"/author/forrester-blog-network\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png\",\"The Seventh Wave: How AI Will Change the Technology Industry\",\"/it-management/the-seventh-wave-how-ai-will-change-the-technology-industry\",{},\"Jul 15, 2025\",\"AI’s seventh wave will reshape tech, threatening legacy software while boosting hardware and services, writes Forrester CEO George Colony.\",{\"_1065\":18,\"_1066\":1255},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1258,\"_187\":1261,\"_170\":1263,\"_172\":1263,\"_175\":1264,\"_1058\":1265,\"_177\":178,\"_179\":1266,\"_181\":178,\"_173\":1267,\"_1060\":178,\"_197\":1061,\"_182\":289,\"_184\":290,\"_195\":329,\"_1062\":18,\"_1063\":1268,\"_1068\":1270,\"_1072\":1073},{\"_47\":1259,\"_168\":1260},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb9ad16b0fe4d6705/686ce7807a697d62f1993909/DevOps-1716x965_-_2025-07-08.jpg\",\"developer presentation about coding software data with DevOps team in office\",[1262],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Guide to DevOps Topologies\",\"/devops/guide-to-devops-topologies\",{},\"Jul 8, 2025\",\"Beyond tools and processes, how you structure your DevOps teams could be the key factor determining your organization's collaborative success.\",{\"_1065\":18,\"_1066\":1269},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1272,\"_187\":1275,\"_170\":1277,\"_172\":1277,\"_175\":1278,\"_1058\":1279,\"_177\":178,\"_179\":1280,\"_181\":178,\"_173\":1281,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":329,\"_1062\":18,\"_1063\":1282,\"_1068\":1284,\"_1072\":1073},{\"_47\":1273,\"_168\":1274},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1a081dd26467df78/6862f16dd8db1d456bd651d6/software-dev-1716x965_-_2025-06-30.jpg\",\"app dashboard with code and UI elements\",[1276],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"How to Create a Standout Software Development Portfolio: Five Key Steps\",\"/software-development/how-to-create-a-standout-software-development-portfolio-five-key-steps\",{},\"Jul 1, 2025\",\"Follow this step-by-step guide to create a portfolio of your coding projects that demonstrates your skills and helps you stand out in a competitive job market.\",{\"_1065\":18,\"_1066\":1283},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1286,\"_187\":1289,\"_170\":1291,\"_172\":1291,\"_175\":1292,\"_1058\":1293,\"_177\":178,\"_179\":1294,\"_181\":178,\"_173\":1295,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":1237,\"_1062\":18,\"_1063\":1296,\"_1068\":1298,\"_1072\":1073},{\"_47\":1287,\"_168\":1288},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt107b78768453a813/685b66efd4d5a77bb7d0a90e/software-development-word-cloud-1716x965_-_2025-03-05.jpg\",\"software development word cloud\",[1290],{\"_60\":1246,\"_191\":1247,\"_193\":1248,\"_1057\":178},\"AppGen Is Here: Say Goodbye to Software Development as You Know It\",\"/software-development/appgen-is-here-say-goodbye-to-software-development-as-you-know-it\",{},\"Jun 25, 2025\",\"Discover how AI-powered AppGen platforms are collapsing the SDLC, democratizing development and disrupting the software industry.\",{\"_1065\":18,\"_1066\":1297},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1300,\"_187\":1303,\"_170\":1305,\"_172\":1305,\"_175\":1306,\"_1058\":1307,\"_177\":178,\"_179\":1308,\"_181\":178,\"_173\":1309,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":329,\"_1062\":18,\"_1063\":1310,\"_1068\":1312,\"_1072\":1073},{\"_47\":1301,\"_168\":1302},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc852926230dddcde/6858fc5498644f8e5183a1b1/agentic-AI-1716x965_-_2025-06-23.jpg\",\"AI and brain connected by a gear\",[1304],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Why Agentic AI Is a Developer's New Ally, Not Adversary\",\"/software-development-techniques/why-agentic-ai-is-a-developer-s-new-ally-not-adversary\",{},\"Jun 23, 2025\",\"Agentic AI could transform software development workflows by automating complex tasks while keeping developers firmly in the driver's seat.\",{\"_1065\":18,\"_1066\":1311},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1314,\"_187\":1317,\"_170\":1319,\"_172\":1319,\"_175\":1320,\"_1058\":1321,\"_177\":178,\"_179\":1322,\"_181\":178,\"_173\":1323,\"_1060\":178,\"_197\":1061,\"_182\":286,\"_184\":287,\"_195\":329,\"_1062\":18,\"_1063\":1324,\"_1068\":1326,\"_1072\":1073},{\"_47\":1315,\"_168\":1316},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8dc1e5f392ec960a/685183abe7f8c557637cf176/LLama-1716x965_-_2025-06-17.jpg\",\"Llama site on smartphone\",[1318],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Meta's Llama LLMs Spark Debate Over Open Source AI\",\"/it-operations/meta-s-llama-llms-spark-debate-over-open-source-ai\",{},\"Jun 18, 2025\",\"As Meta positions its Llama large language models as \\\"open source AI,\\\" critics challenge whether restrictive usage terms and undisclosed training data truly fulfill open source principles in the evolving artificial intelligence landscape.\",{\"_1065\":18,\"_1066\":1325},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1328,\"_187\":1331,\"_170\":1333,\"_172\":1333,\"_175\":1334,\"_1058\":1335,\"_177\":178,\"_179\":1336,\"_181\":178,\"_173\":1337,\"_1060\":178,\"_197\":1061,\"_182\":235,\"_184\":236,\"_195\":1338,\"_1062\":18,\"_1063\":1339,\"_1068\":1341,\"_1072\":1073},{\"_47\":1329,\"_168\":1330},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blteaf49037cb4b22a0/6850e16fa7bc83371d79b5ec/Linux-penguin-1716x965_-_2025-06-16.jpg\",\"rubber penguin on a keyboard\",[1332],{\"_60\":1103,\"_191\":1104,\"_193\":1105,\"_1057\":1106},\"Linux Kernel 6.x: Powering the Future of Open Source Computing\",\"/linux-os/linux-kernel-6-x-powering-the-future-of-open-source-computing\",{},\"Jun 17, 2025\",\"The latest Linux kernel updates deliver groundbreaking performance, security, and hardware support enhancements that benefit enterprise users, developers, and everyday enthusiasts alike.\",8,{\"_1065\":18,\"_1066\":1340},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1343,\"_187\":1346,\"_170\":1348,\"_172\":1348,\"_175\":1349,\"_1058\":1350,\"_177\":178,\"_179\":1351,\"_181\":178,\"_173\":1352,\"_1060\":178,\"_197\":1061,\"_182\":286,\"_184\":287,\"_195\":329,\"_1062\":18,\"_1063\":1353,\"_1068\":1355,\"_1072\":1073},{\"_47\":1344,\"_168\":1345},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6d2af3e0bf9f2c43/68487db682c1a69cac5f6c9e/IT-technician-1716x965_-_2025-06-10.jpg\",\"IT technician fixing equipment in a server room\",[1347],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Beyond the Paycheck: Where IT Operations Careers Outshine Software Development\",\"/it-operations/beyond-the-paycheck-why-it-operations-careers-outshine-software-development\",{},\"Jun 11, 2025\",\"Despite lower salaries, a career in IT operations offers distinct advantages over one in software development. Here are five advantages.\",{\"_1065\":18,\"_1066\":1354},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1357,\"_187\":1360,\"_170\":1362,\"_172\":1362,\"_175\":1363,\"_1058\":1364,\"_177\":178,\"_179\":1351,\"_181\":178,\"_173\":1365,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":329,\"_1062\":18,\"_1063\":1366,\"_1068\":1368,\"_1072\":1073},{\"_47\":1358,\"_168\":1359},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt406dfcd0400de0e0/68497d203943afbb050291a5/software-development-1716x965_-_2025-06-11.jpg\",\"software development\",[1361],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"How to Integrate Quality Throughout the Software Development Process\",\"/software-development-techniques/how-to-integrate-quality-throughout-the-software-development-process\",{},\"In this Q\u0026A, Capital One's VP of Software Engineering Leena Kallakuri shares how to implement an effective automation strategy for software quality.\",{\"_1065\":18,\"_1066\":1367},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1370,\"_187\":1373,\"_170\":1375,\"_172\":1375,\"_175\":1376,\"_1058\":1377,\"_177\":178,\"_179\":1378,\"_181\":178,\"_173\":1379,\"_1060\":178,\"_197\":1061,\"_182\":323,\"_184\":282,\"_195\":370,\"_1062\":18,\"_1063\":1380,\"_1068\":1382,\"_1072\":1073},{\"_47\":1371,\"_168\":1372},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt631ec77866e6adc4/6841e073a1b672678f932fe8/software-testing-1716x965_-_2025-06-05.jpg\",\"finger pressing software testing keys on a keyboard\",[1374],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Software Testing Is at a Crossroads\",\"/it-management/ai-boosts-dev-but-qa-lags-testing-automation-gap-persists\",{},\"Jun 6, 2025\",\"A new industry survey reveals QA teams are struggling to bridge the gap between automation goals and reality, while manual testing maintains its critical role despite AI tool adoption.\",{\"_1065\":18,\"_1066\":1381},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1384,\"_187\":1387,\"_170\":1389,\"_172\":1389,\"_175\":1390,\"_1058\":1391,\"_177\":178,\"_179\":1392,\"_181\":178,\"_173\":1393,\"_1060\":178,\"_197\":1061,\"_182\":289,\"_184\":290,\"_195\":1338,\"_1062\":18,\"_1063\":1394,\"_1068\":1396,\"_1072\":1073},{\"_47\":1385,\"_168\":1386},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1e33491087a62888/6840a4fddcc1f0a3ff707b18/GitHub-Copilot-1716x965_-_2025-06-04.jpg\",\"GitHub Copilot logo on smartphone screen on top of a keyboard and mouse\",[1388],{\"_60\":1103,\"_191\":1104,\"_193\":1105,\"_1057\":1106},\"How GitHub Copilot Is Revolutionizing DevOps \u0026 DevSecOps\",\"/devops/how-github-copilot-is-revolutionizing-devops-devsecops\",{},\"Jun 5, 2025\",\"Here's how GitHub Copilot is reshaping software development — transforming DevOps and DevSecOps with AI-powered precision and scalability.\",{\"_1065\":18,\"_1066\":1395},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1398,\"_187\":1401,\"_170\":1403,\"_172\":1403,\"_175\":1404,\"_1058\":1405,\"_177\":178,\"_179\":1406,\"_181\":178,\"_173\":1407,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":370,\"_1062\":18,\"_1063\":1408,\"_1068\":1410,\"_1072\":1073},{\"_47\":1399,\"_168\":1400},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte9c4d2a521756e2b/68401d6857e25e8c055b4cc2/security-digital-locks-1716x965_-_2025-01-23.jpg\",\"lock among code\",[1402],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Beyond DevSecOps: The Rise of Security-First Development\",\"/software-development-techniques/beyond-devsecops-the-rise-of-security-first-development\",{},\"Jun 4, 2025\",\"Security-first development represents the next evolution beyond DevSecOps: It's proactive, pervasive, and aligned with the pace of modern software delivery.\",{\"_1065\":18,\"_1066\":1409},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1412,\"_187\":1415,\"_170\":1417,\"_172\":1417,\"_175\":1418,\"_1058\":1419,\"_177\":178,\"_179\":1420,\"_181\":178,\"_173\":1421,\"_1060\":178,\"_197\":1061,\"_182\":353,\"_184\":332,\"_195\":329,\"_1062\":18,\"_1063\":1422,\"_1068\":1424,\"_1072\":1073},{\"_47\":1413,\"_168\":1414},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb140a0628e71dbd2/6837d679cb4559426da42e5d/wages-1716x965_-_2025-05-28.jpg\",\"5 stacks of coins of differing heights with figures on top of each one\",[1416],{\"_60\":367,\"_191\":368,\"_193\":369,\"_1057\":1078},\"Tech Leadership Commands Premium: Top IT Roles Exceed $200K\",\"/career-management/tech-leadership-commands-premium-top-it-roles-exceed-200k\",{},\"May 29, 2025\",\"Principal software engineering manager and technical program manager roles are the best-paid ones in tech, according to Indeed.\",{\"_1065\":18,\"_1066\":1423},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1426,\"_187\":1429,\"_170\":1431,\"_172\":1431,\"_175\":1432,\"_1058\":1433,\"_177\":178,\"_179\":1434,\"_181\":178,\"_173\":1435,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":269,\"_1062\":18,\"_1063\":1436,\"_1068\":1438,\"_1072\":1073},{\"_47\":1427,\"_168\":1428},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71067dc7e00e2dc/6836ef3d4041bd6aaf9bb0d9/programmer-1716x965_-_2025-05-28.jpg\",\"programmer using 2 screens\",[1430],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Vibe Coding: Revolution or Rebranding of AI-Assisted Development?\",\"/software-development-techniques/vibe-coding-revolution-or-rebranding-of-ai-assisted-development-\",{},\"May 28, 2025\",\"The latest programming trend \\\"vibe coding\\\" promises to transform software development through generative AI, but questions remain whether it's truly innovative or simply a repackaged version of existing AI-assisted coding techniques.\",{\"_1065\":18,\"_1066\":1437},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1440,\"_187\":1443,\"_170\":1445,\"_172\":1445,\"_175\":1446,\"_1058\":1447,\"_177\":178,\"_179\":1448,\"_181\":178,\"_173\":1449,\"_1060\":178,\"_197\":1061,\"_182\":1450,\"_184\":1451,\"_195\":269,\"_1062\":18,\"_1063\":1452,\"_1068\":1454,\"_1072\":1073},{\"_47\":1441,\"_168\":1442},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e1cbb31bf74dd24/68307a3d74a05a0e622e981b/Nadella-1716x965_-_2025-05-23.jpg\",\"Microsoft CEO Satya Nadella at Build 2025\",[1444],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Microsoft Build 2025: Infrastructure Meets Intelligence\",\"/azure-cloud/microsoft-build-2025-infrastructure-meets-intelligence\",{},\"May 23, 2025\",\"Microsoft's Build 2025 positioned the company as the platform for autonomous AI agents, spanning GitHub Copilot to Azure infrastructure.\",\"Azure Cloud\",\"/cloud-computing/public-cloud/azure-cloud\",{\"_1065\":18,\"_1066\":1453},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1456,\"_187\":1459,\"_170\":1461,\"_172\":1461,\"_175\":1462,\"_1058\":1463,\"_177\":178,\"_179\":1448,\"_181\":178,\"_173\":1464,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":329,\"_1062\":18,\"_1063\":1465,\"_1068\":1467,\"_1072\":1073},{\"_47\":1457,\"_168\":1458},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt115637491541e28c/6830718f766592c92128b85f/pichai-google-1716x965_-_2025-05-23.jpg\",\"Google CEO Sundar Pichai delivering the opening Google I/O 2025 keynote\",[1460],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Google I/O 2025 Delivers Production-Ready AI Tools for Developers\",\"/software-development/google-i-o-2025-delivers-production-ready-ai-tools-for-developers\",{},\"Google I/O 2025 showcased AI integration across developer tools, from Search redesign to Firebase Studio updates, marking a shift to enterprise-ready platforms.\",{\"_1065\":18,\"_1066\":1466},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1469,\"_187\":1472,\"_170\":1474,\"_172\":1474,\"_175\":1475,\"_1058\":1476,\"_177\":178,\"_179\":1477,\"_181\":178,\"_173\":1478,\"_1060\":178,\"_197\":1061,\"_182\":209,\"_184\":210,\"_195\":269,\"_1062\":18,\"_1063\":1479,\"_1068\":1481,\"_1072\":1073},{\"_47\":1470,\"_168\":1471},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd2566ea7659af382/682cc29386cb0255d414c0d2/AI-programming-1716x965_-_2025-05-20.jpg\",\"\\\"AI programming\\\" seen through a magnifying glass in front of a laptop\",[1473],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Which Language Should You Learn for AI Programming?\",\"/ai-machine-learning/which-language-should-you-learn-for-ai-programming-\",{},\"May 21, 2025\",\"There is no single \\\"best\\\" programming language for AI development, but Python, C++, R, Julia, and JavaScript each offer unique advantages for different AI applications and use cases.\",{\"_1065\":18,\"_1066\":1480},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1483,\"_187\":1486,\"_170\":1488,\"_172\":1488,\"_175\":1489,\"_1058\":1490,\"_177\":178,\"_179\":1491,\"_181\":178,\"_173\":1492,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":329,\"_1062\":18,\"_1063\":1493,\"_1068\":1495,\"_1072\":1073},{\"_47\":1484,\"_168\":1485},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2a19203af8b460b5/682c62ebd18d76907b515640/software-developer-1716x965_-_2024-11-08.jpg\",\"software developer working at a workstation\",[1487],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Scalability and Flexibility: Every Software Architect's Challenge\",\"/software-development-techniques/scalability-and-flexibility-every-software-architect-s-challenge\",{},\"May 20, 2025\",\"Success in software development hinges on balancing innovation with cost, reliability, flexibility, and scalability. Companies ignoring these factors risk falling behind.\",{\"_1065\":18,\"_1066\":1494},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1497,\"_187\":1500,\"_170\":1502,\"_172\":1502,\"_175\":1503,\"_1058\":1504,\"_177\":178,\"_179\":1505,\"_181\":178,\"_173\":1506,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":269,\"_1062\":18,\"_1063\":1507,\"_1068\":1509,\"_1072\":1073},{\"_47\":1498,\"_168\":1499},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3a2a3eb99e43e504/68276107126551139e00919d/software-developer-code-1716x965_-_2024-10-18.jpg\",\"developer writing code on a laptop\",[1501],{\"_60\":507,\"_191\":508,\"_193\":509,\"_1057\":1078},\"Software Quality Gaps Cost Organizations Millions, Study Finds\",\"/software-development/software-quality-gaps-cost-organizations-millions-study-finds\",{},\"May 19, 2025\",\"A new study finds that 63% of organizations ship untested code, costing millions annually as speed trumps quality in software development.\",{\"_1065\":18,\"_1066\":1508},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1511,\"_187\":1514,\"_170\":1519,\"_172\":1519,\"_175\":1520,\"_1058\":1521,\"_177\":178,\"_179\":1522,\"_181\":178,\"_173\":1523,\"_1060\":178,\"_197\":1061,\"_182\":504,\"_184\":469,\"_195\":1524,\"_1062\":18,\"_1063\":1525,\"_1068\":1527,\"_1072\":1073},{\"_47\":1512,\"_168\":1513},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbe3f99ccefd43ecc/6825b5e26cb6c96a4099b896/software-developers-1716x965_-_2025-05-15.jpg\",\"two developers writing code on a laptop\",[1515],{\"_60\":1516,\"_191\":1517,\"_193\":1518,\"_1057\":178},\"Bloomberg News\",\"/author/bloomberg-news\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg\",\"Microsoft Layoffs Hit Coders Hardest With AI Costs on the Rise\",\"/software-development/microsoft-layoffs-hit-coders-hardest-with-ai-costs-on-the-rise\",{},\"May 15, 2025\",\"Microsoft's 6,000-person layoff targets software developers, highlighting how AI automation is reshaping tech workforce demands even among core engineering roles.\",2,{\"_1065\":18,\"_1066\":1526},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1529,\"_187\":1532,\"_170\":1534,\"_172\":1534,\"_175\":1535,\"_1058\":1536,\"_177\":178,\"_179\":1537,\"_181\":178,\"_173\":1538,\"_1060\":178,\"_197\":1061,\"_182\":473,\"_184\":474,\"_195\":356,\"_1062\":18,\"_1063\":1539,\"_1068\":1541,\"_1072\":1073},{\"_47\":1530,\"_168\":1531},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta7ed73275b7a4b40/682488783f0a31b5bce17e38/cloud-native-1716x965_(29).jpg\",\"cloud-native concept art\",[1533],{\"_60\":326,\"_191\":327,\"_193\":328,\"_1057\":178},\"Cloud-Native Architect's Cheat Sheet: Selecting Data Layer Technologies\",\"/cloud-native/cloud-native-architect-s-cheat-sheet-selecting-data-layer-technologies\",{},\"May 14, 2025\",\"This comprehensive guide outlines key considerations for selecting and implementing cloud-native data layer technologies.\",{\"_1065\":18,\"_1066\":1540},[],{\"_1070\":18,\"_1071\":18},{\"_185\":186,\"_165\":1543,\"_187\":1546,\"_170\":1548,\"_172\":1548,\"_175\":1549,\"_1058\":1550,\"_177\":178,\"_179\":1537,\"_181\":178,\"_173\":1551,\"_1060\":178,\"_197\":1061,\"_182\":482,\"_184\":483,\"_195\":329,\"_1062\":18,\"_1063\":1552,\"_1068\":1554,\"_1072\":1073},{\"_47\":1544,\"_168\":1545},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd8244ff1fe67480/682257a12f276f3ea64586ad/Bitbucket.jpg-1716x965_-_2025-05-12.jpg\",\"Bitbucket home page\",[1547],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},\"Atlassian's Bitbucket: How It Stacks Up Against GitHub and GitLab\",\"/software-development-techniques/untitled\",{},\"When should you choose Bitbucket over GitHub or GitLab? Here's how to determine whether Bitbucket is your best option.\",{\"_1065\":18,\"_1066\":1553},[],{\"_1070\":18,\"_1071\":18},\"sidebarModules\",[1557,1583,1650,1697],{\"_96\":1558,\"_1559\":1560,\"_392\":1561},\"module_events_promotions\",\"uid\",\"blt6cbafd81bf62e756\",{\"_123\":1562,\"_1563\":1564,\"_1565\":1566,\"_1567\":1568,\"_1569\":1570,\"_1571\":1572,\"_1573\":1574,\"_1575\":14,\"_118\":1576,\"_1577\":1578,\"_1582\":899},\"ITP Ending Publication\",\"displayTitle\",\"Important Update\",\"logoPosition\",\"left\",\"backgroundColor\",\"#fdb714\",\"textColorMode\",\"dark\",\"backgroundMode\",\"light\",\"logoSrc\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaca47a5530210e35/69039af7d27f993559042555/ITP23_Graphics_Logos-SCM.png\",\"logoAlt\",\"ITPro Today ended publication on September 30, 2025.\",\"ctaButton\",{\"_1579\":603,\"_1580\":1581},\"ctaButtonLink\",\"ctaButtonText\",\"Learn More\",\"moduleLocation\",{\"_96\":1584,\"_1559\":1585,\"_392\":1586},\"module_content_cards\",\"blt7433468af4a6ee04\",{\"_1587\":18,\"_123\":1588,\"_1589\":1588,\"_197\":1590,\"_1051\":1591,\"_1642\":1643,\"_1644\":1643,\"_1645\":-7,\"_1646\":1647,\"_191\":1648,\"_1582\":899},\"isDynamicContent\",\"Editor's Choice\",\"moduleLabel\",\"default\",[1592,1610,1615,1624,1639],{\"_96\":1593,\"_392\":1594},\"contentPreview\",{\"_185\":186,\"_197\":1595,\"_165\":1596,\"_170\":1599,\"_172\":1599,\"_175\":1600,\"_177\":1600,\"_1058\":1601,\"_179\":1602,\"_181\":178,\"_182\":1603,\"_184\":1604,\"_187\":1605,\"_195\":1338,\"_1063\":1607,\"_1062\":18,\"_1068\":1609},\"card-horizontal\",{\"_47\":1597,\"_168\":1598},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltad0d02f71caafd81/681baa99f1a1b0d941601ffa/C_-1716x965_-_2025-05-07.jpg\",\"C++ printed on top of code\",\"C++ in 2025: How the Language Is Adapting to a Shifting Tech Landscape\",\"/c-programming-language/c-in-2025-how-the-language-is-adapting-to-a-shifting-tech-landscape\",{},\"May 8, 2025\",\"C/C++/C#\",\"/software-development/programming-languages/c-programming-language\",[1606],{\"_60\":1103,\"_191\":1104,\"_193\":1105,\"_1057\":1106},{\"_1065\":18,\"_1066\":1608},[],{\"_1070\":18,\"_1071\":18},{\"_96\":1611,\"_392\":1612},\"ad\",{\"_1613\":1614},\"pos\",\"native_right_1v\",{\"_96\":1593,\"_392\":1616},{\"_185\":186,\"_197\":1595,\"_165\":1617,\"_170\":1348,\"_172\":1348,\"_175\":1349,\"_177\":1349,\"_1058\":1618,\"_179\":1351,\"_181\":178,\"_182\":286,\"_184\":287,\"_187\":1619,\"_195\":329,\"_1063\":1621,\"_1062\":18,\"_1068\":1623},{\"_47\":1344,\"_168\":1345},{},[1620],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},{\"_1065\":18,\"_1066\":1622},[],{\"_1070\":18,\"_1071\":18},{\"_96\":1593,\"_392\":1625},{\"_185\":1626,\"_197\":1595,\"_165\":1627,\"_170\":1630,\"_172\":1630,\"_175\":1631,\"_177\":1631,\"_1058\":1632,\"_179\":1633,\"_181\":178,\"_182\":323,\"_184\":282,\"_187\":1634,\"_195\":1338,\"_1063\":1636,\"_1062\":18,\"_1068\":1638},\"Slideshow\",{\"_47\":1628,\"_168\":1629},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte48dd5020dbb4188/68441dc05a0f051a9062b422/graduate-gift-1716x965_-_2025-06-07.jpg\",\"graduate holding a gift\",\"Tech That Makes Adulting Easier: 8 Smart Gifts for New Graduates\",\"/it-management/tech-that-makes-adulting-easier-8-smart-gifts-for-new-graduates\",{},\"Jun 7, 2025\",[1635],{\"_60\":367,\"_191\":368,\"_193\":369,\"_1057\":1078},{\"_1065\":18,\"_1066\":1637},[],{\"_1070\":18,\"_1071\":18},{\"_96\":1611,\"_392\":1640},{\"_1613\":1641},\"native_right_2v\",\"dateDisplay\",\"show\",\"contributorDisplay\",\"displayAd\",\"settingOption\",\"curated\",{\"_5\":178,\"_1649\":178},\"label\",{\"_96\":1651,\"_1559\":1652,\"_392\":1653},\"module_link_list\",\"bltd78c81e5d0e9f96d\",{\"_1587\":28,\"_1654\":1655,\"_1656\":1657,\"_1658\":1659,\"_1660\":178,\"_1577\":1661,\"_756\":18,\"_1663\":1664},\"listOption\",\"Dynamic\",\"listTitle\",\"Exclusive ITPro Resources\",\"icon\",\"Document\",\"externalFeed\",{\"_1579\":609,\"_1580\":1662},\"See all ITPro Resources\",\"articles\",[1665,1676,1683,1690],{\"_185\":1659,\"_123\":1666,\"_62\":1667,\"_1668\":18,\"_1669\":891,\"_1670\":1671,\"_1672\":178,\"_181\":178,\"_904\":18,\"_182\":323,\"_184\":282,\"_1063\":1673,\"_1062\":18,\"_1068\":1675},\"ITPro Today's 2025 IT Priorities Report\",\"/it-management/itpro-today-s-2025-it-priorities-report\",\"isExternalLink\",\"readTime\",\"publishedDate\",\"2025-08-08T09:00:00.000Z\",\"eventDate\",{\"_1065\":18,\"_1066\":1674},[],{\"_1070\":18,\"_1071\":18},{\"_185\":1659,\"_123\":1677,\"_62\":1678,\"_1668\":18,\"_1669\":891,\"_1670\":1679,\"_1672\":178,\"_181\":178,\"_904\":18,\"_182\":323,\"_184\":282,\"_1063\":1680,\"_1062\":18,\"_1068\":1682},\"Edge Computing Trends: Adoption, Challenges, and Future Outlook\",\"/it-management/edge-computing-trends-adoption-challenges-and-future-outlook\",\"2025-07-15T15:03:59.000Z\",{\"_1065\":18,\"_1066\":1681},[],{\"_1070\":18,\"_1071\":18},{\"_185\":1659,\"_123\":1684,\"_62\":1685,\"_1668\":18,\"_1669\":891,\"_1670\":1686,\"_1672\":178,\"_181\":178,\"_904\":18,\"_182\":289,\"_184\":290,\"_1063\":1687,\"_1062\":18,\"_1068\":1689},\"ITPro Today’s 2024 State of DevOps Report\",\"/devops/itpro-today-s-2024-state-of-devops-report\",\"2024-12-16T13:00:00.000Z\",{\"_1065\":18,\"_1066\":1688},[],{\"_1070\":18,\"_1071\":18},{\"_185\":1659,\"_123\":1691,\"_62\":1692,\"_1668\":18,\"_1669\":891,\"_1670\":1693,\"_1672\":178,\"_181\":178,\"_904\":18,\"_182\":386,\"_184\":387,\"_1063\":1694,\"_1062\":18,\"_1068\":1696},\"BCDR Basics: A Quick Reference Guide for Business Continuity \u0026 Disaster Recovery\",\"/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery\",\"2024-10-10T15:22:31.000Z\",{\"_1065\":18,\"_1066\":1695},[],{\"_1070\":18,\"_1071\":18},{\"_96\":1584,\"_1559\":1698,\"_392\":1699},\"blt3e66e15cab4bdb90\",{\"_1587\":28,\"_123\":1700,\"_1589\":1701,\"_197\":1702,\"_1051\":1703,\"_1642\":1733,\"_1644\":1733,\"_1645\":-7,\"_1646\":1734,\"_191\":1735,\"_1582\":899},\"What Is\",\"Recent What Is\",\"column\",[1704,1719],{\"_96\":1593,\"_392\":1705},{\"_185\":186,\"_197\":198,\"_165\":1706,\"_170\":1709,\"_172\":1709,\"_175\":1710,\"_177\":1710,\"_1058\":1711,\"_179\":1712,\"_181\":178,\"_182\":1713,\"_184\":534,\"_187\":1714,\"_195\":329,\"_1063\":1716,\"_1062\":18,\"_1068\":1718},{\"_47\":1707,\"_168\":1708},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt96810c3cdc7bd80c/68a2bdae3719f82bec2434c3/legacy-system-1716x965_-_2025-08-18.jpg\",\"\\\"legacy system\\\" keyboard keys\",\"Legacy IT Infrastructure: Not the Villain We Make It Out to Be\",\"/it-infrastructure/legacy-it-infrastructure-not-the-villain-we-make-it-out-to-be\",{},\"Aug 18, 2025\",\"IT Infrastructure\",[1715],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},{\"_1065\":18,\"_1066\":1717},[],{\"_1070\":18,\"_1071\":18},{\"_96\":1593,\"_392\":1720},{\"_185\":186,\"_197\":198,\"_165\":1721,\"_170\":1724,\"_172\":1724,\"_175\":1725,\"_177\":1725,\"_1058\":1726,\"_179\":1727,\"_181\":178,\"_182\":183,\"_184\":144,\"_187\":1728,\"_195\":329,\"_1063\":1730,\"_1062\":18,\"_1068\":1732},{\"_47\":1722,\"_168\":1723},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte8baef3e47ae1621/688a08c8638635f9ab49dea8/Google-TPU.jpg\",\"Google TPU pod\",\"What Are TPUs? A Guide to Tensor Processing Units\",\"/cloud-computing/what-are-tpus-a-guide-to-tensor-processing-units\",{},\"Jul 30, 2025\",[1729],{\"_60\":190,\"_191\":192,\"_193\":194,\"_1057\":1135},{\"_1065\":18,\"_1066\":1731},[],{\"_1070\":18,\"_1071\":18},\"hide\",\"dynamic\",{\"_5\":1736,\"_1649\":1737},\"/latest-what-is\",\"Explore more What Is\",\"parentTopic\",\"metadata\",{\"_96\":1741,\"_1559\":1742,\"_1743\":1744,\"_1745\":12},\"topic\",\"blt6777d3b2ba6f2021\",\"aid\",\"333889\",\"reg\",\"schema\",[1748],{\"_1749\":1750,\"_1751\":1752,\"_1753\":1754},\"@context\",\"https://schema.org\",\"@type\",\"BreadcrumbList\",\"itemListElement\",[1755,1759],{\"_1751\":1756,\"_1757\":196,\"_60\":791,\"_1758\":10},\"ListItem\",\"position\",\"item\",{\"_1751\":1756,\"_1757\":1524,\"_60\":504,\"_1758\":6},\"seo\",{\"_1762\":6,\"_1763\":1764,\"_1765\":1766,\"_1767\":18,\"_1768\":1769,\"_13\":14,\"_1770\":-7},\"canonicalUrl\",\"metaDescription\",\"Explore the latest news and expert commentary on Software Development brought to you by the editors of ITPro Today\",\"metaTitle\",\"Software Development Recent News | ITPro Today\",\"noIndex\",\"imageUrl\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt06f49c53183e1192/65def48d237abe040a0cdb1b/Placeholder_Image.svg?disable=upscale\u0026width=1200\u0026height=630\u0026fit=crop\",\"mediaLinks\",\"gtm\",{\"_1773\":1774},\"loadEvent\",{\"_1775\":1776,\"_1780\":1781,\"_1788\":1789},\"attributes\",{\"_1760\":1777},{\"_1778\":6,\"_1779\":18},\"canonicalURL\",\"hideFromSearchEngines\",\"category\",{\"_1782\":1741,\"_1783\":1784},\"pageType\",\"primaryTerm\",{\"_1785\":504,\"_1786\":178,\"_1787\":178},\"parent\",\"child\",\"grandchild\",\"pageInfo\",{\"_1790\":1742,\"_1791\":504,\"_1792\":6},\"pageID\",\"pageName\",\"destinationURL\",\"nod9x50dy6\",\"actionData\",\"errors\"]\n");</script><!--$--><script>window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>