CINXE.COM

About ITPro Today

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="robots" content="max-image-preview:large"/><title>About ITPro Today</title><meta name="description" content="The ITPro Today team is comprised of a dedicated group of reporters, editors, analysts, and industry professionals who work continuously to cover IT operations."/><meta property="og:title" content="About ITPro Today"/><meta property="og:description" content="The ITPro Today team is comprised of a dedicated group of reporters, editors, analysts, and industry professionals who work continuously to cover IT operations."/><meta property="og:url" content="https://www.itprotoday.com/about-us"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.itprotoday.com/build/_assets/itprotoday-TDRQNNNW.ico"/><link rel="canonical" href="https://www.itprotoday.com/about-us"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"NewsMediaOrganization","name":"About Us","description":"The ITPro Today team is comprised of a dedicated group of reporters, editors, analysts, and industry professionals who work continuously to cover IT operations.","url":"https://www.itprotoday.com"}</script><meta property="twitter:card" content="summary"/><script type="text/javascript">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":19.865923,"transactionName":"MhBSZQoZWEEDU0ZaXgtadUkIClNBEVpBHHYgIR8eUg==","queueTime":0,"ttGuid":"ba8dc0559bf025d6"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"538480682",accountID:"3936348",trustKey:"3288925",xpid:"Vw8EV1VXABAFVVVSAggEVlE=",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"514059305"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={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,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,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){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="stylesheet" href="/build/_assets/styles.generated-IVZR5GKI.css"/><link rel="stylesheet" href="/build/_assets/brand.generated-IHMU25E3.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"/><link rel="icon" type="image/x-icon" href="/build/_assets/itprotoday-TDRQNNNW.ico"/><noscript><style type="text/css">.gptHideContent { opacity: 1!important; }</style></noscript><script type="text/javascript" src="https://cdn.cookielaw.org/consent/dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e/OtAutoBlock.js"></script><script type="text/javascript" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e"></script><script> function OptanonWrapper() { const isClosed = OneTrust.IsAlertBoxClosed() const allowPersonalised = /,C0004,/.test(OnetrustActiveGroups) console.log('cookieBannerConsentChanged emit', isClosed, allowPersonalised) const event = new CustomEvent('cookieBannerConsentChanged', { detail: { allowPersonalised, isClosed } }) window.dispatchEvent(event) }</script><link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com"/><script type="text/javascript" id="vwoCode">window._vwo_code = window._vwo_code || (function () { var account_id = 734041, version = 1.5, settings_tolerance = 2000, library_tolerance = 2500, use_existing_jquery = false, is_spa = 1, hide_element = 'body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important',/* DO NOT EDIT BELOW THIS LINE */ f = false, d = document, vwoCodeEl = d.querySelector('#vwoCode'), 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 = true; 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.type = 'text/javascript'; 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="" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script></head><body class="brand-itprotoday gptHideContent"><noscript></noscript><div id="bigsky_v"></div><div id="fb-root"></div><div id="welcome_v"></div><main data-theme="theme1" class="Provider"><div class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position:absolute;left:-999em;top:-999em"></div><div><div data-template="layout" class="Layout"><nav data-module="navigation" aria-label="navigation" class="Navigation"><div data-testid="header" class="Navigation-HeaderWrapper"><div class="FullScreenBackground Navigation-HeaderBackground"></div><div class="Navigation-Header"><div class="InformaBar" data-component="informa-bar"><div class="InformaBar-ContentSection InformaBar-ContentSection_hidden" data-testid="informa-bar-content-section"><div class="InformaBar-LeftSection" data-testid="informa-bar-left-section"><div>IT Pro Today is part of the Informa Tech Division of Informa PLC</div><div><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://informa.com/" title="INFORMA PLC" target="_blank" rel="noreferrer">INFORMA PLC</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://informa.com/about-us/" title="ABOUT US" target="_blank" rel="noreferrer">ABOUT US</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://informa.com/investors/" title="INVESTOR RELATIONS" target="_blank" rel="noreferrer">INVESTOR RELATIONS</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://informa.com/talent/" title="TALENT" target="_blank" rel="noreferrer">TALENT</a></div></div><div class="InformaBar-RightSection" data-testid="informa-bar-right-section">This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC&#x27;s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.</div></div><div class="InformaBar-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBar-LogoWrapper"><img class="InformaBar-Logo" src="/build/_assets/informaLogoWhite-RZAE7EJI.png" alt="Logo Informa"/></div><span class="InformaBar-IconWrapper InformaBar-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></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" data-discover="true" href="/documents">Documents</a><a class="SecondaryMenu-Link" data-discover="true" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar">Online Events</a><a class="SecondaryMenu-Link" data-discover="true" href="/advertise">Advertise</a><a class="SecondaryMenu-Link" data-discover="true" href="/about-us">About</a></nav></div></div><div style="padding-top:0px"></div><div id="navigation-header" class="Navigation-NavBase"><div data-testid="navBase" class="NavBase"><div class="NavBase-Content"><div class="FullScreenBackground NavBase-SecondaryMenuBackground"></div><div class="NavBase-HeaderWrapper"><div class="NavBase-IconsWrapper"><button data-testid="navBase-megaMenuButton" class="NavBase-MegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-MegaMenuIcon NavBase-MegaMenuIcon_iconVariant_small NavBase-MegaMenuIcon_iconType_bars" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" data-discover="true" href="/"><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 NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank" rel="nofollow" data-name="subscribe-nav" data-action-type="sign-up"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);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 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" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);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" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);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" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);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" style="mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);-webkit-mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);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" style="mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);-webkit-mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);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="RSS" class="Layout-SocialLink" href="https://www.itprotoday.com/rss.xml"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);-webkit-mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);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" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank" rel="nofollow" data-name="subscribe-nav" data-action-type="sign-up"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(/build/_assets/Email-47H7P533.svg);-webkit-mask-image:url(/build/_assets/Email-47H7P533.svg);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" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="NavBase-SearchWrapper"><div class="FullScreenBackground NavBase-SearchBackground"></div><button data-testid="SearchCloseButton" class="NavBase-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close" style="mask-image:url(/build/_assets/Close-KKOYAUD6.svg);-webkit-mask-image:url(/build/_assets/Close-KKOYAUD6.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div><div class="Navigation-MainMenu"><div data-testid="mainMenu"><div class="FullScreenBackground MainMenu-BackgroundSubmenu"></div><div class="FullScreenBackground MainMenu-BackgroundMenuItem"></div><div class="MainMenu-Content"><div class="MainMenu-MegaMenuButtonWrapper"><button data-testid="mainMenu-MegaMenuButton" aria-label="Open MegaMenu" class="MainMenu-MegaMenuButton"><span data-component="icon" data-name="Bars" class="MainMenu-MegaMenuIcon" style="mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);-webkit-mask-image:url(/build/_assets/Bars-F4G2A5NO.svg);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" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/cloud-computing/cloud-services">Cloud Services</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cloud-computing/hybrid-cloud">Hybrid Cloud</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cloud-computing/private-cloud">Private Cloud</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/cloud-computing/public-cloud">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" data-discover="true" href="/cloud-computing">Cloud</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/cloud-computing"><span class="SubMenu-SeeMoreText">SEE ALL Cloud</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/cloud-computing/microsoft-ignite-2024-azure-ai-take-center-stage-with-major-platform-updates"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Microsoft CEO Satya Nadella giving his Ignite keynote</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt53af070a52be6e03/6740dfde63eae2e6b3cef491/Nadella-Ignite-1716x965_-_2024-11-22.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt53af070a52be6e03/6740dfde63eae2e6b3cef491/Nadella-Ignite-1716x965_-_2024-11-22.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" data-discover="true" href="/cloud-computing">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/cloud-computing/microsoft-ignite-2024-azure-ai-take-center-stage-with-major-platform-updates">Microsoft Ignite 2024: Azure, AI Take Center Stage with Major Platform Updates</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/cloud-computing/microsoft-ignite-2024-azure-ai-take-center-stage-with-major-platform-updates">Microsoft Ignite 2024: Azure, AI Take Center Stage with Major Platform Updates</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" data-discover="true" href="/author/sean-michael-kerner">Sean Michael Kerner</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 22, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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" data-discover="true" href="/cloud-computing/future-proofing-the-federal-cloud-why-the-public-sector-needs-finops"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">FinOps concept art</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8484312d2456ee2c/673f2a293d97736ae4c631fb/FinOps-concept-1716x1000.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8484312d2456ee2c/673f2a293d97736ae4c631fb/FinOps-concept-1716x1000.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" data-discover="true" href="/cloud-computing">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/cloud-computing/future-proofing-the-federal-cloud-why-the-public-sector-needs-finops">Future-Proofing the Federal Cloud: Why the Public Sector Needs FinOps</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/cloud-computing/future-proofing-the-federal-cloud-why-the-public-sector-needs-finops">Future-Proofing the Federal Cloud: Why the Public Sector Needs FinOps</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 OS"><span class="MainMenu-MainTitle">OS<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/operating-systems/microsoft-windows">Microsoft Windows</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/windows-server">Windows Server</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/powershell">PowerShell</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/sql-server">SQL Server</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/macos">MacOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/android-os">Android OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/chromeos">ChromeOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/ubuntu">Ubuntu</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/operating-systems/red-hat-os">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" data-discover="true" href="/operating-systems">OS</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/operating-systems"><span class="SubMenu-SeeMoreText">See All OS</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/operating-systems/what-is-a-real-time-operating-system-and-who-needs-one-"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">empty cockpit of autonomous car</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8d62652f26754e66/6650a078b58e50d58b79f554/autonomous-car-1800.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8d62652f26754e66/6650a078b58e50d58b79f554/autonomous-car-1800.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_operatingSystems ContentPreview-Category" data-discover="true" href="/operating-systems">Operating Systems</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/operating-systems/what-is-a-real-time-operating-system-and-who-needs-one-">What Is a Real-Time Operating System, and Who Needs One?</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/operating-systems/what-is-a-real-time-operating-system-and-who-needs-one-">What Is a Real-Time Operating System, and Who Needs One?</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" data-discover="true" href="/author/christopher-tozzi">Christopher Tozzi</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Mar 5, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>6 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" data-discover="true" href="/powershell/powershell-parameter-validation-ensuring-valid-input-for-functions"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">cubes with arrows and checkmarks illustrating a validation process</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcaa6c9c167380d22/6617f81c4a487a61abdcc7e2/cubes_20with_20arrows_20and_20checkmarks_20illustrating_20a_20validation_20process.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcaa6c9c167380d22/6617f81c4a487a61abdcc7e2/cubes_20with_20arrows_20and_20checkmarks_20illustrating_20a_20validation_20process.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" data-discover="true" href="/operating-systems/powershell">PowerShell</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/powershell/powershell-parameter-validation-ensuring-valid-input-for-functions">PowerShell Parameter Validation: Ensuring Valid Input for Functions</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/powershell/powershell-parameter-validation-ensuring-valid-input-for-functions">PowerShell Parameter Validation: Ensuring Valid Input for Functions</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" data-discover="true" href="/author/brien-posey">Brien Posey</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 20, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/it-management/it-operations">IT Operations</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-management/devops">DevOps</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-management/ops-and-more">Ops and More</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-management/it-sustainability">IT Sustainability</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-management/it-automation">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" data-discover="true" href="/it-management">IT Mgmt</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/it-management"><span class="SubMenu-SeeMoreText">See All IT Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">hand turning a Skills knob</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itManagement ContentPreview-Category" data-discover="true" href="/it-management">IT Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization">Use Skills-Based Talent Practices to Future-Proof Your Tech Organization</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization">Use Skills-Based Talent Practices to Future-Proof Your Tech Organization</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" data-discover="true" href="/author/forrester-blog-network">Forrester Blog Network</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">jobs key on keyboard</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_careerManagement ContentPreview-Category" data-discover="true" href="/career-management">Career Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape 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" data-discover="true" href="/author/nathan-eddy">Nathan Eddy</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 20, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></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" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/career-management/career-tips">Career Tips</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/career-management/certifications">Certifications</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/career-management/training">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" data-discover="true" href="/career-management">Career</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/career-management"><span class="SubMenu-SeeMoreText">See All Career Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">hand turning a Skills knob</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itManagement ContentPreview-Category" data-discover="true" href="/it-management">IT Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization">Use Skills-Based Talent Practices to Future-Proof Your Tech Organization</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization">Use Skills-Based Talent Practices to Future-Proof Your Tech Organization</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" data-discover="true" href="/author/forrester-blog-network">Forrester Blog Network</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">jobs key on keyboard</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_careerManagement ContentPreview-Category" data-discover="true" href="/career-management">Career Management</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape 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" data-discover="true" href="/author/nathan-eddy">Nathan Eddy</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 20, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></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" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/data-storage/cloud-storage">Cloud Storage</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/data-storage/high-speed-storage">High Speed Storage</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/data-storage/data-backup">Data Backup</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/data-storage/disaster-recovery">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" data-discover="true" href="/data-storage">Storage</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/data-storage"><span class="SubMenu-SeeMoreText">See All Data Storage</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/data-backup/data-protection-is-critical-in-the-multicloud"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A silver and gray cloud data protection icon showing a cloud with a lock inside of it.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt353b531613f7649b/671fd698f99f6629af82a1f1/Cloud_Data_Protection_Icon_YAY_Media_AS_via_Alamy_Stock.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt353b531613f7649b/671fd698f99f6629af82a1f1/Cloud_Data_Protection_Icon_YAY_Media_AS_via_Alamy_Stock.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_dataBackup ContentPreview-Category" data-discover="true" href="/data-storage/data-backup">Data Backup</a><a class="ContentPreview-IconWrapper" title="Link to all video" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ContentPreview-Icon" style="mask-image:url(/build/_assets/Play-CLWHZVKX.svg);-webkit-mask-image:url(/build/_assets/Play-CLWHZVKX.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/data-backup/data-protection-is-critical-in-the-multicloud">Data Protection Is Critical in the Multi-Cloud</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/data-backup/data-protection-is-critical-in-the-multicloud">Data Protection Is Critical in the Multi-Cloud</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" data-discover="true" href="/author/brandon-taylor">Brandon Taylor</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Oct 31, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->View</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" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">mainframe</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itInfrastructure ContentPreview-Category" data-discover="true" href="/it-infrastructure">IT Infrastructure</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete">Mainframe Technology Is Far From Obsolete</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete">Mainframe Technology Is Far From Obsolete</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Oct 24, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 Security"><span class="MainMenu-MainTitle">Security<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/it-security/vulnerabilities-threats">Vulnerabilities &amp; Threats</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/attacks-breaches">Attacks &amp; Breaches</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/regulatory-compliance">Regulatory Compliance</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/data-privacy">Data Privacy</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/cloud-security">Cloud Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/endpoint-security">Endpoint Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-security/identity-management-access-control">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" data-discover="true" href="/it-security">Security</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/it-security"><span class="SubMenu-SeeMoreText">See All IT Security</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/it-security/how-do-i-tell-my-it-security-manager-to-stop-crying-wolf-"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a person rolls their eyes at the sounding of an alarm bell</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt43ed0d8939877e78/673e1365c8592f3713678cc2/root_access_alarm_bell.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt43ed0d8939877e78/673e1365c8592f3713678cc2/root_access_alarm_bell.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itSecurity ContentPreview-Category" data-discover="true" href="/it-security">IT Security</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-security/how-do-i-tell-my-it-security-manager-to-stop-crying-wolf-">How Do I Tell My IT Security Manager To Stop Crying Wolf?</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-security/how-do-i-tell-my-it-security-manager-to-stop-crying-wolf-">How Do I Tell My IT Security Manager To Stop Crying Wolf?</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" data-discover="true" href="/author/danielle-meinert">Danielle Meinert</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">artwork showing fingerprint and binary code</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_regulatoryCompliance ContentPreview-Category" data-discover="true" href="/it-security/regulatory-compliance">Regulatory Compliance</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential">Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential">Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 12, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 Dev"><span class="MainMenu-MainTitle">Dev<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/software-development/cloud-native">Cloud Native</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/software-development/programming-languages">Programming Languages</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/software-development/no-code-low-code">No-Code/Low-Code</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/software-development/software-development-techniques">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" data-discover="true" href="/software-development">Dev</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/software-development"><span class="SubMenu-SeeMoreText">See All Software Dev</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/software-development/from-declarative-to-iterative-how-software-development-is-evolving"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">software developer working at his workstation</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf57781f189deb1bc/673b30c17a0f43d044091d3b/DevOps-1716x965.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf57781f189deb1bc/673b30c17a0f43d044091d3b/DevOps-1716x965.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopment ContentPreview-Category" data-discover="true" href="/software-development">Software Development</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/software-development/from-declarative-to-iterative-how-software-development-is-evolving">From Declarative to Iterative: How Software Development Is Evolving</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/software-development/from-declarative-to-iterative-how-software-development-is-evolving">From Declarative to Iterative: How Software Development Is Evolving</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" data-discover="true" href="/author/lisa-morgan">Lisa Morgan<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/informationweek">InformationWeek</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 18, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">artwork showing fingerprint and binary code</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_regulatoryCompliance ContentPreview-Category" data-discover="true" href="/it-security/regulatory-compliance">Regulatory Compliance</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential">Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential">Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 12, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 DX"><span class="MainMenu-MainTitle">DX<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/digital-transformation/ai-machine-learning">AI &amp; Machine Learning</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/digital-transformation/edge-computing">Edge Computing</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/digital-transformation/iot">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" data-discover="true" href="/digital-transformation">DX</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/digital-transformation"><span class="SubMenu-SeeMoreText">See All Digital Transformation</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/digital-transformation/what-comes-after-hololens-2-exploring-microsoft-s-ar-vr-future"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">the microsoft hololens glasses on display</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt13044b7405422cb5/67363b557bfb2a6b4a43f78a/HoloLens_on_display.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt13044b7405422cb5/67363b557bfb2a6b4a43f78a/HoloLens_on_display.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_digitalTransformation ContentPreview-Category" data-discover="true" href="/digital-transformation">Digital Transformation</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/digital-transformation/what-comes-after-hololens-2-exploring-microsoft-s-ar-vr-future">What Comes After HoloLens 2? Exploring Microsoft’s AR/VR Future</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/digital-transformation/what-comes-after-hololens-2-exploring-microsoft-s-ar-vr-future">What Comes After HoloLens 2? Exploring Microsoft’s AR/VR Future</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" data-discover="true" href="/author/brien-posey">Brien Posey</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 15, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>3 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" data-discover="true" href="/digital-transformation/how-to-repair-corrupt-stl-files-for-3d-printing"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a 3d printer in the process of printing an object</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta3ddc604c28a7356/67362760798a713a01062308/image-1716x1000_(7).jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta3ddc604c28a7356/67362760798a713a01062308/image-1716x1000_(7).jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_digitalTransformation ContentPreview-Category" data-discover="true" href="/digital-transformation">Digital Transformation</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/digital-transformation/how-to-repair-corrupt-stl-files-for-3d-printing">How To Repair Corrupt STL Files for 3D Printing</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/digital-transformation/how-to-repair-corrupt-stl-files-for-3d-printing">How To Repair Corrupt STL Files for 3D Printing</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 14, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>3 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" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" data-discover="true" href="/it-infrastructure/high-performance-computing">High Performance Computing</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-infrastructure/containerization">Containerization</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/it-infrastructure/server-virtualization">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" data-discover="true" href="/it-infrastructure">Infrastructure</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" data-discover="true" href="/it-infrastructure"><span class="SubMenu-SeeMoreText">See All Infrastructure</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);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" data-discover="true" href="/ops-and-more/transforming-enterprise-networks-with-aiops-a-new-era-of-intelligent-connectivity"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">AIOps</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt241793d56bb052d5/6731f5bfc64003eae43f7108/AIOps-1716x965_-_2024-10-29.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt241793d56bb052d5/6731f5bfc64003eae43f7108/AIOps-1716x965_-_2024-10-29.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_opsAndMore ContentPreview-Category" data-discover="true" href="/it-management/ops-and-more">Ops and More</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/ops-and-more/transforming-enterprise-networks-with-aiops-a-new-era-of-intelligent-connectivity">Transforming Enterprise Networks With AIOps: A New Era of Intelligent Connectivity</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/ops-and-more/transforming-enterprise-networks-with-aiops-a-new-era-of-intelligent-connectivity">Transforming Enterprise Networks With AIOps: A New Era of Intelligent Connectivity</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" data-discover="true" href="/author/forrester-blog-network">Forrester Blog Network</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Nov 11, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">mainframe</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itInfrastructure ContentPreview-Category" data-discover="true" href="/it-infrastructure">IT Infrastructure</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete">Mainframe Technology Is Far From Obsolete</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-infrastructure/mainframe-technology-is-far-from-obsolete">Mainframe Technology Is Far From Obsolete</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" data-discover="true" href="/author/industry-perspectives">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Oct 24, 2024</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 More"><span class="MainMenu-MainTitle">More<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);-webkit-mask-image:url(/build/_assets/ChevronDown-PF4EH6J6.svg);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" rel="nofollow" target="_blank" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpnav">Newsletters</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/latest-how-to">How To…?</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/program/industry-perspectives">Industry Perspectives</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources">Business Resources</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?types=Survey+Report&amp;page=1">Reports/Research</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar">Online Events</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/events">Live Events</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/videos">Videos</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/resources?page=1&amp;types=White+Paper">White Papers</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/advertise">Advertise With Us</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" data-discover="true" href="/about-us">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" data-discover="true" href="/resources"><span class="SubMenu-SeeMoreText">Resource Library</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);-webkit-mask-image:url(/build/_assets/ChevronRight-W5LPP5NG.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div></div><div class="MainMenu-SearchButtonWrapper"><button data-testid="mainMenu-SearchButton" aria-label="Open Search" class="MainMenu-SearchButton"><span data-component="icon" data-name="Search" class="MainMenu-SearchButtonIcon" style="mask-image:url(/build/_assets/Search-T2ANYVG5.svg);-webkit-mask-image:url(/build/_assets/Search-T2ANYVG5.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="MainMenu-SearchWrapper"><div class="FullScreenBackground MainMenu-SearchBackground MainMenu-SearchBackground_withSearchBar"></div><button data-testid="mainMenu-SearchCloseButton" class="MainMenu-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="MainMenu-SearchCloseIcon" style="mask-image:url(/build/_assets/Close-KKOYAUD6.svg);-webkit-mask-image:url(/build/_assets/Close-KKOYAUD6.svg);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="basic-page" class="BasicPage"><div class="BasicPage-Wrapper"><div class="BasicPage-HeadWrapper"><div class="BasicPage-Title BasicPage-Title_displayOption_default" data-testid="basic-page-title">About Us</div><div class="BasicPage-Title BasicPage-Title_displayOption_mobile">About Us</div><div class="BasicPage-SummaryWrapper"><p class="BasicPage-Summary" data-testid="basic-page-summary">Leading the Charge in Digital Transformation and IT</p></div></div><div data-module="content" class="ContentModule-Wrapper"><p class="ContentParagraph ContentParagraph_align_center" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#Our Editors">Meet Our Editors</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold"> | </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#Our Contributors">Meet Our Contributors</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold"> | </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#Contribute to ITPro Today">Become a Contributor</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold"> | </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#AI Policy">AI Policy</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold"> | </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#Follow Us">Follow Us </a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">| </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/about-us#Contact Us">Contact Us</a></span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">ITPro Today is dedicated to providing a comprehensive view of the information technology industry. Our goal is simple: to deliver daily news, analysis, opinions, and how-tos that cater to both seasoned IT professionals and those new to the field.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Understanding the challenges and complexities of navigating the ever-evolving technology landscape, we go beyond mere reporting; we offer practical insights into IT operations and career development. Whether IT professionals are looking to enhance their skills or stay informed about the latest trends, ITPro Today is designed to assist them in their journey to success.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Our team is made up of a dedicated group of reporters, editors, analysts, and IT industry professionals who work continuously to cover the industry’s ever-changing landscape.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Our Coverage" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Our Coverage</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">IT professionals count on us to help them navigate the multifaceted IT landscape, including analytics, artificial intelligence/machine learning, cloud computing, low-code/no-code, DevOps, NoOps, DataOps, compute engines, containers, edge computing, hyper-converged infrastructure, security, software development, and storage.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">We are committed to demystifying next-gen technologies that drive business innovation. From analytics to artificial intelligence, cloud computing to DevOps, we cover a wide array of topics. Our mission isn&#x27;t just to inform; it&#x27;s to empower IT professionals and technology stakeholders to make informed decisions about technology adoption and management. </span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Our Editors" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Our Editors</h2><div data-component="basic-list" class="BasicList BasicList_nestedLevel_0 BasicList_variant_unordered BasicList_limited"><ul data-testid="basic-list-unordered" class="BasicList-UnorderedList"><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Editor-In-Chief - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/wendy-schuchart">Wendy Schuchart</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Wendy Schuchart has more than a decade of experience writing about the IT landscape and has another decade’s experience working in enterprise IT as a coder, business analyst and software developer. Before joining ITPro Today she was the managing editor/executive editor at VentureBeat. Her work has been featured in many IT publications, including InformationWeek, Network Computing, Datacenter Dynamics, Green Data Center News, SDX Central and TechTarget. Follow her on Twitter </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://twitter.com/wendyschuchart">@wendyschuchart</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Senior Managing Editor - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/brian-holak">Brian Holak</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Brian Holak has more than 10 years of experience in the IT journalism realm, both as a reporter and an editor. Prior to joining ITPro Today, he was site editor for TechTarget&#x27;s SearchBusinessAnalytics and SearchDataManagement. Along with BI, analytics and data management, Brian has covered a wide range of enterprise IT beats, including artificial intelligence, cloud computing, digital transformation, innovation management and general IT strategy.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Senior Editor - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/rick-dagley">Rick Dagley</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Rick Dagley covers a wide range of enterprise IT topics, including IT operations and management, cloud computing, edge computing, software development and IT careers. Prior to joining ITPro Today, Rick was a longtime editor at PCWeek/eWEEK, with stints at Computer Design and Telecommunications magazines before that.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Senior Editor - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/spencer-smith">Spencer Smith</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Spencer Smith focuses on IT security, compute engines, data analytics and data management, end user platforms, and storage technology. Prior to joining ITPro Today, Spencer was site editor for TechTarget’s SearchITChannel.com, where he covered the IT channel industry and business strategy.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Digital SEO Content &amp; Copy Editor - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/dylan-fisher">Dylan Fisher</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Dylan Fisher supports ITPro Today, Data Center Knowledge, InformationWeek, and Network Computing. He&#x27;s the author of &quot;</span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.tamupress.com/book/9781680032123/the-loneliest-band-in-france/">The Loneliest Band in France</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.&quot; He lives with his wife, Danielle, and their two adopted dogs, Rosie and Daisy, in Atlanta, GA.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Digital Editorial Program Manager - </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/brandon-taylor">Brandon Taylor</a></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Brandon Taylor supports ITPro Today, Data Center Knowledge, InformationWeek, and Network Computing. He enables the successful delivery of sponsored content programs, secures speakers for the brands&#x27; many events, and assists in content strategy.</span></p></div></div></li></ul></div><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Our Contributors" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Our Contributors</h2><div data-component="basic-list" class="BasicList BasicList_nestedLevel_0 BasicList_variant_unordered BasicList_limited"><ul data-testid="basic-list-unordered" class="BasicList-UnorderedList"><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/christopher-tozzi">Christopher Tozzi</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “</span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://mitpress.mit.edu/9780262551786/for-fun-and-profit/">For Fun and Profit: A History of the Free and Open Source Software Revolution</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">,” was published by MIT Press.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/brien-posey">Brien Posey</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is the vice president of research and development for Relevant Technologies. He writes technical content for a variety of publications and Web sites and covers the security and data storage beats for ITPro Today.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.itprotoday.com/author/nathan-eddy">Nathan Eddy</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a freelance writer for ITProToday and covers various IT trends and topics across wide variety of industries. A graduate of Northwestern University’s Medill School of Journalism, he is also a documentary filmmaker specializing in architecture and urban planning. He currently lives in Berlin, Germany.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/karen-d-schwartz">Karen D. Schwartz</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a technology and business writer with more than 20 years of experience. She has written on a broad range of technology topics for publications including </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">CIO</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">InformationWeek</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">GCN</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">FCW</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">FedTech, BizTech</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">eWeek</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> and </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">Government Executive</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">. </span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/sean-michael-kerner">Sean Michael Kerner</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is an IT consultant, technology enthusiast and tinkerer. He consults to industry and media organizations on technology issues.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.itprotoday.com/author/grant-knoetze">Grant Knoetze</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a cybersecurity analyst with a special interest in DFIR, programming languages, incident response, red-teaming, and malware analysis. His full-time job includes teaching and instructing in various topics from basic Linux all the way through to malware incident response, and other advanced topics. He is also a speaker at various conferences worldwide.</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" data-discover="true" href="/author/stephen-swoyer">Stephen Swoyer</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a researcher and analyst with 25 years of experience. His research has focused on business intelligence (BI), data warehousing, analytics, data science, machine learning and the larger information management segment for nearly 20 years. He also enjoys researching and writing about software development and software architecture – or technology architecture of any kind, for that matter.</span></p></div></div></li></ul></div><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Contribute to ITPro Today" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Contribute to ITPro Today</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">If you’re an IT practitioner, we welcome article submissions from you about how to strategically assess and/or tactically deploy technologies within your organization, especially when the submission highlights the business benefits of specific processes or policies.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">To be considered for publication, submissions must adhere to our editorial standards:</span></p><div data-component="basic-list" class="BasicList BasicList_nestedLevel_0 BasicList_variant_unordered BasicList_limited"><ul data-testid="basic-list-unordered" class="BasicList-UnorderedList"><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">The content must be exclusive to ITPro Today (cannot have been published elsewhere)</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">It cannot market a vendor’s products or services</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">It must be relevant to a topic we cover on ITPro Today</span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);-webkit-mask-image:url(/build/_assets/Circle-MTZTA6VT.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">It must be written for our core audience of IT professionals</span></p></div></div></li></ul></div><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">If we do accept the content for publication, we typically edit for style, clarity, grammar and length (600 to 1,000 words is ideal) and send it back to you for review if substantial edits are made. We expect that you will fact-check your submission before sending it to us for review. Unfortunately, we can’t pay for unsolicited contributions.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">If you’re interested in contributing under those guidelines, feel free to send your topic suggestions to </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="/cdn-cgi/l/email-protection#b5f0d1dcc1dac7c6f5fce1e5c7dae1dad1d4cc9bd6dad8"><span class="__cf_email__" data-cfemail="8bceefe2ffe4f9f8cbc2dfdbf9e4dfe4efeaf2a5e8e4e6">[email&#160;protected]</span></a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="AI Policy" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">AI Policy</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Read our </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://www.itprotoday.com/itpro-today-s-ai-policy">AI Policy</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> to learn how we&#x27;re maintaining editorial integrity and transparency amid the rise of generative AI.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Follow Us" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Follow Us</h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Get ITPro Today wherever you are.</span></p><h3 class="ContentText ContentText_variant_h3 ContentText_align_center" data-testid="content-text" id="LinkedIn" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.linkedin.com/company/itpro-today/">LinkedIn</a> | <a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.facebook.com/itprotoday">Facebook</a> | <a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.instagram.com/itprotoday/">Instagram</a> | <a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.threads.net/@itprotoday">Threads</a> | <a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://twitter.com/itprotoday">X</a> | <a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link ContentText-BodyTextChunk_bold" target="_blank" href="https://www.itprotoday.com/rss.xml">RSS Feed</a></h3><h3 class="ContentText ContentText_variant_h3 ContentText_align_left" data-testid="content-text" id="Contact Us" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem">Contact Us</h3><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">For more details on ITPro Today’s mission, audience demographics, and sponsorship opportunities, download the </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://technology.informaengage.com/itpro-today-media-kit">ITPro Today Media Kit</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.</span><br/><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Advertising</span></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">For advertising inquiries, complete the </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://technology.informaengage.com/itpro-today-request-info">Contact Us form</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, and an account representative will contact you shortly.</span><br/><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Editorial</span></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">For editorial inquiries, email </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="/cdn-cgi/l/email-protection#ef8a8b869b809d9cafa6bbbf9d80bb808b8e96c18c8082"><span class="__cf_email__" data-cfemail="0e6b6a677a617c7d4e475a5e7c615a616a6f77206d6163">[email&#160;protected]</span></a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">.</span><br/><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Mailing Address</span></span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">303 2nd St., 9th Floor</span><br/><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">San Francisco, CA 94107</span></p></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a data-discover="true" href="/"><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/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png?width=700&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" data-discover="true" href="/about-us" target="_blank">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" data-discover="true" href="/advertise" target="_blank">Advertise</a><a class="LinkSection-Link" rel="noreferrer" data-discover="true" href="/contact-us" target="_blank">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" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank" rel="nofollow" data-name="subscribe-footer" data-action-type="sign-up"><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" style="mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);-webkit-mask-image:url(/build/_assets/Facebook-CJB5G2HY.svg);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" style="mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);-webkit-mask-image:url(/build/_assets/Twitter-WD5AOEQ7.svg);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" style="mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);-webkit-mask-image:url(/build/_assets/Linkedin-VQUF3EEQ.svg);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" style="mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);-webkit-mask-image:url(/build/_assets/Youtube-S4PSC4UA.svg);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" style="mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);-webkit-mask-image:url(/build/_assets/GoogleNews-6O72APW7.svg);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="RSS" href="https://www.itprotoday.com/rss.xml"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);-webkit-mask-image:url(/build/_assets/RSS-3XFHIVCK.svg);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" target="_blank" href="https://www.informatech.com/"><img title="Informa Tech" data-component="image" class="CopyrightsSection-BusinessImage" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt677f6470bd1b54d5/65d7393aac9ea2040a7bf57c/InformaTechBTYB_240x60.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt677f6470bd1b54d5/65d7393aac9ea2040a7bf57c/InformaTechBTYB_240x60.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Informa Tech"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2024 Informa PLC Informa UK Limited is a company registered in England and Wales with company number 1072954 whose registered office is 5 Howick Place, London, SW1P 1WG.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" target="_blank" href="https://www.informatech.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" data-discover="true" href="/cookie-policy" target="_blank">Cookies<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://informa.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://tech.informa.com/terms-and-conditions">Terms</a></div></div></div></div></footer></div></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((STORAGE_KEY, 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(STORAGE_KEY) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(STORAGE_KEY); } })("positions", null)</script><link rel="modulepreload" href="/build/manifest-1DDC3B48.js"/><link rel="modulepreload" href="/build/entry.client-IJHKMLWO.js"/><link rel="modulepreload" href="/build/_shared/chunk-UL2XTJCN.js"/><link rel="modulepreload" href="/build/_shared/chunk-X2QZ46OV.js"/><link rel="modulepreload" href="/build/_shared/chunk-63EVRDSK.js"/><link rel="modulepreload" href="/build/_shared/chunk-ADMCF34Z.js"/><link rel="modulepreload" href="/build/_shared/chunk-VAILQJN5.js"/><link rel="modulepreload" href="/build/_shared/chunk-RZRUW7QG.js"/><link rel="modulepreload" href="/build/_shared/chunk-FLVCZ6LB.js"/><link rel="modulepreload" href="/build/_shared/chunk-CZQQJKCG.js"/><link rel="modulepreload" href="/build/_shared/chunk-B7M2L5OV.js"/><link rel="modulepreload" href="/build/_shared/chunk-DVAO4FWX.js"/><link rel="modulepreload" href="/build/_shared/chunk-UJX7RBTD.js"/><link rel="modulepreload" href="/build/_shared/chunk-GA6KRG5M.js"/><link rel="modulepreload" href="/build/_shared/chunk-VZQVWFLO.js"/><link rel="modulepreload" href="/build/_shared/chunk-SQAZXDZA.js"/><link rel="modulepreload" href="/build/_shared/chunk-LRRZYZ4S.js"/><link rel="modulepreload" href="/build/_shared/chunk-67AEZZKK.js"/><link rel="modulepreload" href="/build/_shared/chunk-DA6QKOVK.js"/><link rel="modulepreload" href="/build/_shared/chunk-NV4QQ2K3.js"/><link rel="modulepreload" href="/build/_shared/chunk-ZX65YBHQ.js"/><link rel="modulepreload" href="/build/_shared/chunk-NIBETJH6.js"/><link rel="modulepreload" href="/build/_shared/chunk-QVUW3IXO.js"/><link rel="modulepreload" href="/build/_shared/chunk-SDR4T2CD.js"/><link rel="modulepreload" href="/build/_shared/chunk-VAO7RAES.js"/><link rel="modulepreload" href="/build/_shared/chunk-ZJGIOTWJ.js"/><link rel="modulepreload" href="/build/_shared/chunk-IW54JVOH.js"/><link rel="modulepreload" href="/build/root-EIFOE2ED.js"/><link rel="modulepreload" href="/build/_shared/chunk-W6MWEXDA.js"/><link rel="modulepreload" href="/build/_shared/chunk-NUD65XZB.js"/><link rel="modulepreload" href="/build/_shared/chunk-Y5QRGDBR.js"/><link rel="modulepreload" href="/build/_shared/chunk-IQILMKRH.js"/><link rel="modulepreload" href="/build/_shared/chunk-ZB3JCRZH.js"/><link rel="modulepreload" href="/build/_shared/chunk-4263J36I.js"/><link rel="modulepreload" href="/build/_shared/chunk-GE63C5K2.js"/><link rel="modulepreload" href="/build/_shared/chunk-IU5BTE54.js"/><link rel="modulepreload" href="/build/_shared/chunk-OVOLY23W.js"/><link rel="modulepreload" href="/build/_shared/chunk-4F2T7DFH.js"/><link rel="modulepreload" href="/build/_shared/chunk-KCZSOLXX.js"/><link rel="modulepreload" href="/build/_shared/chunk-IMAO3QAP.js"/><link rel="modulepreload" href="/build/_shared/chunk-PKX65DMJ.js"/><link rel="modulepreload" href="/build/_shared/chunk-JEV5KMDX.js"/><link rel="modulepreload" href="/build/_shared/chunk-R6EIBCBL.js"/><link rel="modulepreload" href="/build/_shared/chunk-A3FJAPGP.js"/><link rel="modulepreload" href="/build/_shared/chunk-7WX3BG7O.js"/><link rel="modulepreload" href="/build/_shared/chunk-LHFD2AZM.js"/><link rel="modulepreload" href="/build/_shared/chunk-VXTTYPWD.js"/><link rel="modulepreload" href="/build/_shared/chunk-HJNZPSV5.js"/><link rel="modulepreload" href="/build/_shared/chunk-OJ5IIOG7.js"/><link rel="modulepreload" href="/build/_shared/chunk-6LPVB4UM.js"/><link rel="modulepreload" href="/build/_shared/chunk-PHSYQFSR.js"/><link rel="modulepreload" href="/build/_shared/chunk-QRYTEACA.js"/><link rel="modulepreload" href="/build/_shared/chunk-4QGBRIOX.js"/><link rel="modulepreload" href="/build/_shared/chunk-IJ353W5V.js"/><link rel="modulepreload" href="/build/_shared/chunk-WHP5D2LC.js"/><link rel="modulepreload" href="/build/_shared/chunk-V7BE2ITJ.js"/><link rel="modulepreload" href="/build/_shared/chunk-O5OSGOEN.js"/><link rel="modulepreload" href="/build/routes/$topic._index-2XZHQR43.js"/><script>window.__remixContext = {"future":{"v3_fetcherPersist":false,"v3_relativeSplatPath":false,"v3_throwAbortReason":false},"state":{"loaderData":{"root":{"brand":"itprotoday","siteName":"ITPro Today","ads":{"networkId":3834,"parentAdUnit":"itprotoday.home","enabledAds":"all","checkClientIP":false,"disableSponsorBar":true},"authConfig":{"enabled":false,"disableCaptcha":false},"vwo":{"enabled":true,"accountId":"734041"},"isDctsTurnOn":false,"oneTrust":{"siteId":"dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e"},"gtmIds":{"primary":"GTM-5523ZCM","secondary":"GTM-MTN2X7K"},"ui":{"brand":"itprotoday","theme":"theme1","font":{"primary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"},"secondary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"}}},"environment":"prod","featureToggles":{"elnNewsletter":false,"elnWithoutNewsletter":false,"iirisAuthentication":false,"subBrand":false,"useSettingsRedirectAPIVersion1":false,"gatingEnabled":false,"iirisRecommendationDisabled":false,"iasPetEnabled":false,"bridgedMediaEnabled":false,"ecommerceEnabled":false,"iirisRecommendationVer":"version4","weather3MonthForecastEnabled":false},"layout":{"socialLinks":[{"type":"Facebook","url":"https://www.facebook.com/ITProToday/"},{"type":"Twitter","url":"https://twitter.com/ITProToday"},{"type":"Linkedin","url":"https://www.linkedin.com/company/itpro-today/"},{"type":"Youtube","url":"https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA"},{"type":"GoogleNews","url":"https://news.google.com/publications/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB"},{"type":"RSS","url":"https://www.itprotoday.com/rss.xml"}],"informaBar":{"enabled":true,"leftSection":{"description":"IT Pro Today is part of the Informa Tech Division of Informa PLC","subMenu":[{"title":"INFORMA PLC","url":"https://informa.com/"},{"title":"ABOUT US","url":"https://informa.com/about-us/"},{"title":"INVESTOR RELATIONS","url":"https://informa.com/investors/"},{"title":"TALENT","url":"https://informa.com/talent/"}]},"rightSection":{"description":"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":{"mainMenuItems":[{"title":"Cloud","url":"/cloud-computing","seeAllLink":"SEE ALL Cloud","seeAllLinkUrl":"/cloud-computing","hasSubMenu":true,"subMenu":[{"title":"Cloud Services","url":"/cloud-computing/cloud-services"},{"title":"Hybrid Cloud","url":"/cloud-computing/hybrid-cloud"},{"title":"Private Cloud","url":"/cloud-computing/private-cloud"},{"title":"Public Cloud","url":"/cloud-computing/public-cloud"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt53af070a52be6e03/6740dfde63eae2e6b3cef491/Nadella-Ignite-1716x965_-_2024-11-22.jpg","alt":"Microsoft CEO Satya Nadella giving his Ignite keynote"},"articleName":"Microsoft Ignite 2024: Azure, AI Take Center Stage with Major Platform Updates","mobileHeadline":"Microsoft Ignite 2024: Azure, AI Take Center Stage with Major Platform Updates","articleSummary":"Microsoft is growing its cloud portfolio with a series of innovations it announced at Ignite that are aimed to boost AI and cloud-native deployments.","articleUrl":"/cloud-computing/microsoft-ignite-2024-azure-ai-take-center-stage-with-major-platform-updates","listPageUrl":"","date":"Nov 22, 2024","webinarStartTime":"","categoryName":"Cloud Computing","categoryUrl":"/cloud-computing","contentType":"Article","contributors":[{"name":"Sean Michael Kerner","link":"/author/sean-michael-kerner","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltee90581768c0b698/661d3e06d44b2446681f4a1d/SM-kerner.png"}],"timeRead":5,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8484312d2456ee2c/673f2a293d97736ae4c631fb/FinOps-concept-1716x1000.jpg","alt":"FinOps concept art"},"articleName":"Future-Proofing the Federal Cloud: Why the Public Sector Needs FinOps","mobileHeadline":"Future-Proofing the Federal Cloud: Why the Public Sector Needs FinOps","articleSummary":"As federal agencies embrace multi-cloud strategies, FinOps emerges as a vital framework to optimize cloud spending and navigate the complexities of modernization and security.","articleUrl":"/cloud-computing/future-proofing-the-federal-cloud-why-the-public-sector-needs-finops","listPageUrl":"","date":"Nov 21, 2024","webinarStartTime":"","categoryName":"Cloud Computing","categoryUrl":"/cloud-computing","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":5,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"OS","url":"/operating-systems","seeAllLink":"See All OS","seeAllLinkUrl":"/operating-systems","hasSubMenu":true,"subMenu":[{"title":"Microsoft Windows","url":"/operating-systems/microsoft-windows"},{"title":"Windows Server","url":"/operating-systems/windows-server"},{"title":"PowerShell","url":"/operating-systems/powershell"},{"title":"Linux OS","url":"/operating-systems/linux-os"},{"title":"SQL Server","url":"/operating-systems/sql-server"},{"title":"MacOS","url":"/operating-systems/macos"},{"title":"Android OS","url":"/operating-systems/android-os"},{"title":"ChromeOS","url":"/operating-systems/chromeos"},{"title":"Ubuntu","url":"/operating-systems/ubuntu"},{"title":"Red Hat OS","url":"/operating-systems/red-hat-os"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8d62652f26754e66/6650a078b58e50d58b79f554/autonomous-car-1800.jpg","alt":"empty cockpit of autonomous car"},"articleName":"What Is a Real-Time Operating System, and Who Needs One?","mobileHeadline":"What Is a Real-Time Operating System, and Who Needs One?","articleSummary":"With such cutting-edge technology as autonomous vehicles and medical IoT devices, real-time performance is becoming a necessity — thus, the increasing need for real-time operating systems.","articleUrl":"/operating-systems/what-is-a-real-time-operating-system-and-who-needs-one-","listPageUrl":"","date":"Mar 5, 2024","webinarStartTime":"","categoryName":"Operating Systems","categoryUrl":"/operating-systems","contentType":"Article","contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"timeRead":6,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcaa6c9c167380d22/6617f81c4a487a61abdcc7e2/cubes_20with_20arrows_20and_20checkmarks_20illustrating_20a_20validation_20process.jpg","alt":"cubes with arrows and checkmarks illustrating a validation process"},"articleName":"PowerShell Parameter Validation: Ensuring Valid Input for Functions","mobileHeadline":"PowerShell Parameter Validation: Ensuring Valid Input for Functions","articleSummary":"It’s a good idea to validate function parameters before executing any actions. Learn these two techniques for performing parameter validation.","articleUrl":"/powershell/powershell-parameter-validation-ensuring-valid-input-for-functions","listPageUrl":"","date":"Feb 20, 2024","webinarStartTime":"","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","contentType":"Article","contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"timeRead":4,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"IT Mgmt","url":"/it-management","seeAllLink":"See All IT Mgmt","seeAllLinkUrl":"/it-management","hasSubMenu":true,"subMenu":[{"title":"IT Operations","url":"/it-management/it-operations"},{"title":"DevOps","url":"/it-management/devops"},{"title":"Ops and More","url":"/it-management/ops-and-more"},{"title":"IT Sustainability","url":"/it-management/it-sustainability"},{"title":"IT Automation","url":"/it-management/it-automation"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg","alt":"hand turning a Skills knob"},"articleName":"Use Skills-Based Talent Practices to Future-Proof Your Tech Organization","mobileHeadline":"Use Skills-Based Talent Practices to Future-Proof Your Tech Organization","articleSummary":"As tech leaders face resource constraints and rapid technological change, adopting a skills-based talent approach ensures teams remain adaptable and equipped to meet current and future business demands.","articleUrl":"/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization","listPageUrl":"","date":"Nov 21, 2024","webinarStartTime":"","categoryName":"IT Management","categoryUrl":"/it-management","contentType":"Article","contributors":[{"name":"Forrester Blog Network","link":"/author/forrester-blog-network","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png"}],"timeRead":2,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg","alt":"jobs key on keyboard"},"articleName":"IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce","mobileHeadline":"IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce","articleSummary":"Demand for IT professionals will remain strong in 2025 as companies seek to meet the challenges of a rapidly changing tech landscape.","articleUrl":"/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce","listPageUrl":"","date":"Nov 20, 2024","webinarStartTime":"","categoryName":"Career Management","categoryUrl":"/career-management","contentType":"Article","contributors":[{"name":"Nathan Eddy","link":"/author/nathan-eddy","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp"}],"timeRead":8,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"Career","url":"/career-management","seeAllLink":"See All Career Mgmt","seeAllLinkUrl":"/career-management","hasSubMenu":true,"subMenu":[{"title":"Career Tips","url":"/career-management/career-tips"},{"title":"Certifications","url":"/career-management/certifications"},{"title":"Training","url":"/career-management/training"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg","alt":"hand turning a Skills knob"},"articleName":"Use Skills-Based Talent Practices to Future-Proof Your Tech Organization","mobileHeadline":"Use Skills-Based Talent Practices to Future-Proof Your Tech Organization","articleSummary":"As tech leaders face resource constraints and rapid technological change, adopting a skills-based talent approach ensures teams remain adaptable and equipped to meet current and future business demands.","articleUrl":"/it-management/use-skills-based-talent-practices-to-future-proof-your-tech-organization","listPageUrl":"","date":"Nov 21, 2024","webinarStartTime":"","categoryName":"IT Management","categoryUrl":"/it-management","contentType":"Article","contributors":[{"name":"Forrester Blog Network","link":"/author/forrester-blog-network","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png"}],"timeRead":2,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg","alt":"jobs key on keyboard"},"articleName":"IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce","mobileHeadline":"IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce","articleSummary":"Demand for IT professionals will remain strong in 2025 as companies seek to meet the challenges of a rapidly changing tech landscape.","articleUrl":"/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce","listPageUrl":"","date":"Nov 20, 2024","webinarStartTime":"","categoryName":"Career Management","categoryUrl":"/career-management","contentType":"Article","contributors":[{"name":"Nathan Eddy","link":"/author/nathan-eddy","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp"}],"timeRead":8,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"Storage","url":"/data-storage","seeAllLink":"See All Data Storage","seeAllLinkUrl":"/data-storage","hasSubMenu":true,"subMenu":[{"title":"Cloud Storage","url":"/data-storage/cloud-storage"},{"title":"High Speed Storage","url":"/data-storage/high-speed-storage"},{"title":"Data Backup","url":"/data-storage/data-backup"},{"title":"Disaster Recovery","url":"/data-storage/disaster-recovery"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt353b531613f7649b/671fd698f99f6629af82a1f1/Cloud_Data_Protection_Icon_YAY_Media_AS_via_Alamy_Stock.jpg","alt":"A silver and gray cloud data protection icon showing a cloud with a lock inside of it."},"articleName":"Data Protection Is Critical in the Multi-Cloud","mobileHeadline":"Data Protection Is Critical in the Multi-Cloud","articleSummary":"This session reveals risks to consider when designing a data protection strategy and the importance of remote recovery for catastrophic incidents.","articleUrl":"/data-backup/data-protection-is-critical-in-the-multicloud","listPageUrl":"/videos","date":"Oct 31, 2024","webinarStartTime":"","categoryName":"Data Backup","categoryUrl":"/data-storage/data-backup","contentType":"Video","contributors":[{"name":"Brandon Taylor","link":"/author/brandon-taylor","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte8d1693765e9e98a/661d3e06f6197395e0dc3b59/BT_Headshot_cropped.jpg"}],"timeRead":5,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg","alt":"mainframe"},"articleName":"Mainframe Technology Is Far From Obsolete","mobileHeadline":"Mainframe Technology Is Far From Obsolete","articleSummary":"Mainframe technology remains essential for security, scalability, and efficiency. To stay competitive, companies must blend legacy mainframes with modern systems.","articleUrl":"/it-infrastructure/mainframe-technology-is-far-from-obsolete","listPageUrl":"","date":"Oct 24, 2024","webinarStartTime":"","categoryName":"IT Infrastructure","categoryUrl":"/it-infrastructure","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":4,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"Security","url":"/it-security","seeAllLink":"See All IT Security","seeAllLinkUrl":"/it-security","hasSubMenu":true,"subMenu":[{"title":"Vulnerabilities \u0026 Threats","url":"/it-security/vulnerabilities-threats"},{"title":"Attacks \u0026 Breaches","url":"/it-security/attacks-breaches"},{"title":"Regulatory Compliance","url":"/it-security/regulatory-compliance"},{"title":"Data Privacy","url":"/it-security/data-privacy"},{"title":"Cloud Security","url":"/it-security/cloud-security"},{"title":"Endpoint Security","url":"/it-security/endpoint-security"},{"title":"Identity Mgmt \u0026 Access Control","url":"/it-security/identity-management-access-control"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt43ed0d8939877e78/673e1365c8592f3713678cc2/root_access_alarm_bell.gif","alt":"a person rolls their eyes at the sounding of an alarm bell"},"articleName":"How Do I Tell My IT Security Manager To Stop Crying Wolf?","mobileHeadline":"How Do I Tell My IT Security Manager To Stop Crying Wolf?","articleSummary":"An IT security pro asks for advice on handling a manager who constantly sounds the alarm on potential incidents.","articleUrl":"/it-security/how-do-i-tell-my-it-security-manager-to-stop-crying-wolf-","listPageUrl":"","date":"Nov 21, 2024","webinarStartTime":"","categoryName":"IT Security","categoryUrl":"/it-security","contentType":"Article","contributors":[{"name":"Danielle Meinert","link":"/author/danielle-meinert","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6cea48e7fba9fe0c/66744228de07df7824ca2798/danielle-profile-photo.jpeg"}],"timeRead":4,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg","alt":"artwork showing fingerprint and binary code"},"articleName":"Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential","mobileHeadline":"Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential","articleSummary":"Learn why and how to design adaptable regulatory frameworks in the age of AI.","articleUrl":"/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential","listPageUrl":"","date":"Nov 12, 2024","webinarStartTime":"","categoryName":"Regulatory Compliance","categoryUrl":"/it-security/regulatory-compliance","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":6,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"Dev","url":"/software-development","seeAllLink":"See All Software Dev","seeAllLinkUrl":"/software-development","hasSubMenu":true,"subMenu":[{"title":"Cloud Native","url":"/software-development/cloud-native"},{"title":"Programming Languages","url":"/software-development/programming-languages"},{"title":"No-Code/Low-Code","url":"/software-development/no-code-low-code"},{"title":"Software Development Techniques","url":"/software-development/software-development-techniques"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf57781f189deb1bc/673b30c17a0f43d044091d3b/DevOps-1716x965.jpg","alt":"software developer working at his workstation"},"articleName":"From Declarative to Iterative: How Software Development Is Evolving","mobileHeadline":"From Declarative to Iterative: How Software Development Is Evolving","articleSummary":"AI is changing the way code is generated so developers can gain more speed advantages. Embedded capabilities in IDEs and low-code platforms help.","articleUrl":"/software-development/from-declarative-to-iterative-how-software-development-is-evolving","listPageUrl":"","date":"Nov 18, 2024","webinarStartTime":"","categoryName":"Software Development","categoryUrl":"/software-development","contentType":"Article","contributors":[{"name":"Lisa Morgan","link":"/author/lisa-morgan","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb11c8ae625be7abe/6613c9bdd9d6083199a9aceb/lisamorgan.jpg"},{"name":"InformationWeek","link":"/author/informationweek","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfe700963d293545b/662c186ab6e73c2096cb1da7/251403_Favicon_512x512.png"}],"timeRead":1,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg","alt":"artwork showing fingerprint and binary code"},"articleName":"Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential","mobileHeadline":"Why Future-proofing Cybersecurity Regulatory Frameworks Is Essential","articleSummary":"Learn why and how to design adaptable regulatory frameworks in the age of AI.","articleUrl":"/regulatory-compliance/why-future-proofing-cybersecurity-regulatory-frameworks-is-essential","listPageUrl":"","date":"Nov 12, 2024","webinarStartTime":"","categoryName":"Regulatory Compliance","categoryUrl":"/it-security/regulatory-compliance","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":6,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"DX","url":"/digital-transformation","seeAllLink":"See All Digital Transformation","seeAllLinkUrl":"/digital-transformation","hasSubMenu":true,"subMenu":[{"title":"AI \u0026 Machine Learning","url":"/digital-transformation/ai-machine-learning"},{"title":"Edge Computing","url":"/digital-transformation/edge-computing"},{"title":"IoT","url":"/digital-transformation/iot"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt13044b7405422cb5/67363b557bfb2a6b4a43f78a/HoloLens_on_display.jpg","alt":"the microsoft hololens glasses on display"},"articleName":"What Comes After HoloLens 2? Exploring Microsoft’s AR/VR Future","mobileHeadline":"What Comes After HoloLens 2? Exploring Microsoft’s AR/VR Future","articleSummary":"Microsoft revealed no plans for an immediate HoloLens 2 successor, raising questions about the company’s commitment to its VR/AR technologies.","articleUrl":"/digital-transformation/what-comes-after-hololens-2-exploring-microsoft-s-ar-vr-future","listPageUrl":"","date":"Nov 15, 2024","webinarStartTime":"","categoryName":"Digital Transformation","categoryUrl":"/digital-transformation","contentType":"Article","contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"timeRead":3,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta3ddc604c28a7356/67362760798a713a01062308/image-1716x1000_(7).jpg","alt":"a 3d printer in the process of printing an object"},"articleName":"How To Repair Corrupt STL Files for 3D Printing","mobileHeadline":"How To Repair Corrupt STL Files for 3D Printing","articleSummary":"Repair options include using dedicated STL repair software, manual CAD edits, or slicer repair tools, along with preventative practices like backing up files and checking geometry integrity to ensure successful prints.","articleUrl":"/digital-transformation/how-to-repair-corrupt-stl-files-for-3d-printing","listPageUrl":"","date":"Nov 14, 2024","webinarStartTime":"","categoryName":"Digital Transformation","categoryUrl":"/digital-transformation","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":3,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"Infrastructure","url":"/it-infrastructure","seeAllLink":"See All Infrastructure","seeAllLinkUrl":"/it-infrastructure","hasSubMenu":true,"subMenu":[{"title":"High Performance Computing","url":"/it-infrastructure/high-performance-computing"},{"title":"Containerization","url":"/it-infrastructure/containerization"},{"title":"Server Virtualization","url":"/it-infrastructure/server-virtualization"}],"recentContents":[{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt241793d56bb052d5/6731f5bfc64003eae43f7108/AIOps-1716x965_-_2024-10-29.jpg","alt":"AIOps"},"articleName":"Transforming Enterprise Networks With AIOps: A New Era of Intelligent Connectivity","mobileHeadline":"Transforming Enterprise Networks With AIOps: A New Era of Intelligent Connectivity","articleSummary":"Learn how AIOps provides real-time contextualization and insights across the IT estate, ensuring that network infrastructure operates at peak efficiency in serving business needs.","articleUrl":"/ops-and-more/transforming-enterprise-networks-with-aiops-a-new-era-of-intelligent-connectivity","listPageUrl":"","date":"Nov 11, 2024","webinarStartTime":"","categoryName":"Ops and More","categoryUrl":"/it-management/ops-and-more","contentType":"Article","contributors":[{"name":"Forrester Blog Network","link":"/author/forrester-blog-network","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png"}],"timeRead":4,"variant":"card-vertical","layoutVariant":"vertical"},{"thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg","alt":"mainframe"},"articleName":"Mainframe Technology Is Far From Obsolete","mobileHeadline":"Mainframe Technology Is Far From Obsolete","articleSummary":"Mainframe technology remains essential for security, scalability, and efficiency. To stay competitive, companies must blend legacy mainframes with modern systems.","articleUrl":"/it-infrastructure/mainframe-technology-is-far-from-obsolete","listPageUrl":"","date":"Oct 24, 2024","webinarStartTime":"","categoryName":"IT Infrastructure","categoryUrl":"/it-infrastructure","contentType":"Article","contributors":[{"name":"Industry Perspectives","link":"/author/industry-perspectives","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png"}],"timeRead":4,"variant":"card-vertical","layoutVariant":"vertical"}]},{"title":"More","url":"/resources","seeAllLink":"Resource Library","seeAllLinkUrl":"/resources","hasSubMenu":true,"subMenu":[{"title":"Newsletters","url":"https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_itpb86\u0026ch=itpnav"},{"title":"How To…?","url":"/latest-how-to"},{"title":"Industry Perspectives","url":"/program/industry-perspectives"},{"title":"Business Resources","url":"/resources"},{"title":"Reports/Research","url":"/resources?types=Survey+Report\u0026page=1"},{"title":"Online Events","url":"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar"},{"title":"Live Events","url":"/events"},{"title":"Videos","url":"/videos"},{"title":"White Papers","url":"/resources?page=1\u0026types=White+Paper"},{"title":"Advertise With Us","url":"/advertise"},{"title":"About Us","url":"/about-us"}],"recentContents":[]}],"secondaryMenu":[{"title":"Documents","url":"/documents"},{"title":"Online Events","url":"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar"},{"title":"Advertise","url":"/advertise"},{"title":"About","url":"/about-us"}]},"megaMenu":{"largeMenu":[{"title":"Cloud","url":"/cloud-computing","subMenu":[{"title":"Cloud Services","url":"/cloud-computing/cloud-services"},{"title":"Hybrid Cloud","url":"/cloud-computing/hybrid-cloud"},{"title":"Private Cloud","url":"/cloud-computing/private-cloud"},{"title":"Public Cloud","url":"/cloud-computing/public-cloud"}],"seeAllLink":"SEE ALL Cloud","seeAllLinkUrl":"/cloud-computing"},{"title":"OS","url":"/operating-systems","subMenu":[{"title":"Microsoft Windows","url":"/operating-systems/microsoft-windows"},{"title":"Windows Server","url":"/operating-systems/windows-server"},{"title":"PowerShell","url":"/operating-systems/powershell"},{"title":"Linux OS","url":"/operating-systems/linux-os"},{"title":"SQL Server","url":"/operating-systems/sql-server"},{"title":"MacOS","url":"/operating-systems/macos"},{"title":"Android OS","url":"/operating-systems/android-os"},{"title":"ChromeOS","url":"/operating-systems/chromeos"},{"title":"Ubuntu","url":"/operating-systems/ubuntu"},{"title":"Red Hat OS","url":"/operating-systems/red-hat-os"}],"seeAllLink":"See All OS","seeAllLinkUrl":"/operating-systems"},{"title":"IT Mgmt","url":"/it-management","subMenu":[{"title":"IT Operations","url":"/it-management/it-operations"},{"title":"DevOps","url":"/it-management/devops"},{"title":"Ops and More","url":"/it-management/ops-and-more"},{"title":"IT Sustainability","url":"/it-management/it-sustainability"},{"title":"IT Automation","url":"/it-management/it-automation"}],"seeAllLink":"See All IT Mgmt","seeAllLinkUrl":"/it-management"},{"title":"Career","url":"/career-management","subMenu":[{"title":"Career Tips","url":"/career-management/career-tips"},{"title":"Certifications","url":"/career-management/certifications"},{"title":"Training","url":"/career-management/training"}],"seeAllLink":"See All Career Mgmt","seeAllLinkUrl":"/career-management"},{"title":"Storage","url":"/data-storage","subMenu":[{"title":"Cloud Storage","url":"/data-storage/cloud-storage"},{"title":"High Speed Storage","url":"/data-storage/high-speed-storage"},{"title":"Data Backup","url":"/data-storage/data-backup"},{"title":"Disaster Recovery","url":"/data-storage/disaster-recovery"}],"seeAllLink":"See All Data Storage","seeAllLinkUrl":"/data-storage"},{"title":"Security","url":"/it-security","subMenu":[{"title":"Vulnerabilities \u0026 Threats","url":"/it-security/vulnerabilities-threats"},{"title":"Attacks \u0026 Breaches","url":"/it-security/attacks-breaches"},{"title":"Regulatory Compliance","url":"/it-security/regulatory-compliance"},{"title":"Data Privacy","url":"/it-security/data-privacy"},{"title":"Cloud Security","url":"/it-security/cloud-security"},{"title":"Endpoint Security","url":"/it-security/endpoint-security"},{"title":"Identity Mgmt \u0026 Access Control","url":"/it-security/identity-management-access-control"}],"seeAllLink":"See All IT Security","seeAllLinkUrl":"/it-security"},{"title":"Dev","url":"/software-development","subMenu":[{"title":"Cloud Native","url":"/software-development/cloud-native"},{"title":"Programming Languages","url":"/software-development/programming-languages"},{"title":"No-Code/Low-Code","url":"/software-development/no-code-low-code"},{"title":"Software Development Techniques","url":"/software-development/software-development-techniques"}],"seeAllLink":"See All Software Dev","seeAllLinkUrl":"/software-development"},{"title":"DX","url":"/digital-transformation","subMenu":[{"title":"AI \u0026 Machine Learning","url":"/digital-transformation/ai-machine-learning"},{"title":"Edge Computing","url":"/digital-transformation/edge-computing"},{"title":"IoT","url":"/digital-transformation/iot"}],"seeAllLink":"See All Digital Transformation","seeAllLinkUrl":"/digital-transformation"},{"title":"Infrastructure","url":"/it-infrastructure","subMenu":[{"title":"High Performance Computing","url":"/it-infrastructure/high-performance-computing"},{"title":"Containerization","url":"/it-infrastructure/containerization"},{"title":"Server Virtualization","url":"/it-infrastructure/server-virtualization"}],"seeAllLink":"See All Infrastructure","seeAllLinkUrl":"/it-infrastructure"},{"title":"More","url":"/resources","subMenu":[{"title":"Newsletters","url":"https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_itpb86\u0026ch=itpnav"},{"title":"How To…?","url":"/latest-how-to"},{"title":"Industry Perspectives","url":"/program/industry-perspectives"},{"title":"Business Resources","url":"/resources"},{"title":"Reports/Research","url":"/resources?types=Survey+Report\u0026page=1"},{"title":"Online Events","url":"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar"},{"title":"Live Events","url":"/events"},{"title":"Videos","url":"/videos"},{"title":"White Papers","url":"/resources?page=1\u0026types=White+Paper"},{"title":"Advertise With Us","url":"/advertise"},{"title":"About Us","url":"/about-us"}],"seeAllLink":"Resource Library","seeAllLinkUrl":"/resources"}],"smallMenu":[{"title":"Browse","url":"","subMenu":[{"title":"Documents","url":"/documents"},{"title":"Online Events","url":"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar"},{"title":"Live Events","url":"/events"},{"title":"Videos","url":"/videos"},{"title":"Industry Perspectives","url":"/program/industry-perspectives"},{"title":"Business Resources","url":"/resources"}]},{"title":"Advertise","url":"","subMenu":[{"title":"Explore Marketing Solutions","url":"/advertise"}]},{"title":"Discover More","url":"","subMenu":[{"title":"Data Center Knowledge","url":"https://www.datacenterknowledge.com/"},{"title":"InformationWeek","url":"https://www.informationweek.com/"},{"title":"Network Computing","url":"https://www.networkcomputing.com/"},{"title":"No Jitter","url":"https://www.nojitter.com/"},{"title":"AFCOM","url":"https://afcom.com/"}]}],"sideNavSections":[{"title":"Communicate","url":"","subMenu":[{"title":"About Us","url":"/about-us"},{"title":"Contact Us","url":"/contact-us"}],"seeAllLink":"","seeAllLinkUrl":""}]},"navBase":{"logo":{"url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg","altText":"ITPro Today Logo"}},"footer":{"logo":{"url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png","altText":"ITPro Today Logo"},"linkSections":[{"links":[{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"Data Center Knowledge","url":"https://www.datacenterknowledge.com/"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"InformationWeek","url":"https://www.informationweek.com/"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"Network Computing","url":"https://www.networkcomputing.com/"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"No Jitter","url":"https://www.nojitter.com/"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"AFCOM","url":"https://afcom.com/"}],"title":"Discover More","type":"1"},{"links":[{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"About Us","url":"/about-us"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"Reprints","url":"https://info.wrightsmedia.com/informa-licensing-reprints-request"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"Advertise","url":"/advertise"},{"image":{"altText":"","url":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png"},"openInNewTab":true,"title":"Contact Us","url":"/contact-us"}],"title":"Working With Us","type":"1"}],"brandLinks":[],"copyright":{"businessUnit":{"url":"https://www.informatech.com/","name":"Informa Tech","logoUrl":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt677f6470bd1b54d5/65d7393aac9ea2040a7bf57c/InformaTechBTYB_240x60.png"},"links":[{"image":{"altText":"Home","url":"https://www.informatech.com/"},"openInNewTab":false,"title":"Home","url":"https://www.informatech.com/"},{"image":{"altText":"CCPA: Do not sell my personal info","url":"https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html"},"openInNewTab":true,"title":"CCPA: Do not sell my personal info","url":"https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html"},{"image":{"altText":"Cookies","url":"/cookie-policy"},"openInNewTab":true,"title":"Cookies","url":"/cookie-policy"},{"image":{"altText":"Privacy","url":"https://informa.com/privacy-policy/"},"openInNewTab":true,"title":"Privacy","url":"https://informa.com/privacy-policy/"},{"image":{"altText":"Terms","url":"https://tech.informa.com/terms-and-conditions"},"openInNewTab":true,"title":"Terms","url":"https://tech.informa.com/terms-and-conditions"}],"title":" Informa PLC Informa UK Limited is a company registered in England and Wales with company number 1072954 whose registered office is 5 Howick Place, London, SW1P 1WG."}},"isSponsorBarEnabled":true,"isPaidContent":false},"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\":19.865923,\"transactionName\":\"MhBSZQoZWEEDU0ZaXgtadUkIClNBEVpBHHYgIR8eUg==\",\"queueTime\":0,\"ttGuid\":\"ba8dc0559bf025d6\"}; (window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[\"bam.eu01.nr-data.net\"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:\"538480682\",accountID:\"3936348\",trustKey:\"3288925\",xpid:\"Vw8EV1VXABAFVVVSAggEVlE=\",licenseKey:\"NRJS-26ae6a3b09493bbcc87\",applicationID:\"514059305\"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */\n(()=\u003e{var e,t,r={8122:(e,t,r)=\u003e{\"use strict\";r.d(t,{a:()=\u003ei});var n=r(944);function i(e,t){try{if(!e||\"object\"!=typeof e)return(0,n.R)(3);if(!t||\"object\"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])\u0026\u0026Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):\"object\"==typeof e[a]\u0026\u0026\"object\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=\u003e{\"use strict\";r.d(t,{Vp:()=\u003ec,fn:()=\u003es,x1:()=\u003eu});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey\u0026\u0026!!t.errorBeacon\u0026\u0026!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error(\"All info objects require an agent identifier!\");if(!a[e])throw new Error(\"Info for \".concat(e,\" was never set\"));return a[e]}function u(e,t){if(!e)throw new Error(\"All info objects require an agent identifier!\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.info=a[e])}},9417:(e,t,r)=\u003e{\"use strict\";r.d(t,{D0:()=\u003eh,gD:()=\u003eg,xN:()=\u003ep});var n=r(993);const i=e=\u003e{if(!e||\"string\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u=\"[data-nr-mask]\",d=()=\u003e{const e={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,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,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){i(t)?e.mask_selector=\"\".concat(t,\",\").concat(u):\"\"===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=\",\".concat(t):\"\"!==t\u0026\u0026(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f=\"All configuration objects require an agent identifier!\";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error(\"Configuration for \".concat(e,\" was never set\"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r\u0026\u0026(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split(\".\"),i=0;i\u003cn.length-1;i++)if(\"object\"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=\u003e{\"use strict\";r.d(t,{a:()=\u003ec,o:()=\u003es});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");if(!a[e])throw new Error(\"LoaderConfig for \".concat(e,\" was never set\"));return a[e]}function c(e,t){if(!e)throw new Error(\"All loader-config objects require an agent identifier!\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.loader_config=a[e])}},3371:(e,t,r)=\u003e{\"use strict\";r.d(t,{V:()=\u003ef,f:()=\u003el});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");if(!d[e])throw new Error(\"Runtime for \".concat(e,\" was never set\"));return d[e]}function f(e,t){if(!e)throw new Error(\"All runtime objects require an agent identifier!\");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],\"harvestCount\")||Object.defineProperty(d[e],\"harvestCount\",{get:()=\u003e++s});const r=(0,i.nY)(e);r\u0026\u0026(r.runtime=d[e])}},9324:(e,t,r)=\u003e{\"use strict\";r.d(t,{F3:()=\u003ei,Xs:()=\u003eo,Yq:()=\u003ea,xv:()=\u003en});const n=\"1.274.0\",i=\"PROD\",o=\"CDN\",a=\"^2.0.0-alpha.17\"},6154:(e,t,r)=\u003e{\"use strict\";r.d(t,{A4:()=\u003es,OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003eh,bv:()=\u003eo,gm:()=\u003ea,lR:()=\u003ef,m:()=\u003eu,mw:()=\u003ec,sb:()=\u003el});var n=r(1863);const i=\"undefined\"!=typeof window\u0026\u0026!!window.document,o=\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),a=i?window:\"undefined\"!=typeof WorkerGlobalScope\u0026\u0026(\"undefined\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\"undefined\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),s=\"complete\"===a?.document?.readyState,c=Boolean(\"hidden\"===a?.document?.visibilityState),u=\"\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d\u0026\u0026\"undefined\"==typeof SharedWorker,f=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=\u003e{\"use strict\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003eo});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t\u003cn.length;t++){var r=n[t];if(\"*\"===r.hostname)return!1;if(s(r.hostname,e.hostname)\u0026\u0026c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;0===r.indexOf(\"http://\")?r=r.substring(7):0===r.indexOf(\"https://\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\"/\");let o,a;i\u003e0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a=\"\");let[s]=o.split(\":\");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length\u003et.length)\u0026\u0026t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf(\"/\")\u0026\u0026(e=e.substring(1)),0===t.indexOf(\"/\")\u0026\u0026(t=t.substring(1)),\"\"===e||e===t}},1687:(e,t,r)=\u003e{\"use strict\";r.d(t,{Ak:()=\u003ec,Ze:()=\u003el,x3:()=\u003eu});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e\u0026\u0026s[e]\u0026\u0026(s[e].get(t)\u0026\u0026s[e].delete(t),h(e,t,!1),s[e].size\u0026\u0026f(e))}function d(e){if(!e)throw new Error(\"agentIdentifier required\");s[e]||(s[e]=new Map)}function l(e=\"\",t=\"feature\",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=\u003et.staged))\u0026\u0026(t.sort(((e,t)=\u003ee[1].priority-t[1].priority)),t.forEach((([t])=\u003e{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted\u0026\u0026o.backlog\u0026\u0026s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=\u003e{Object.values(t||{}).forEach((t=\u003e{t[0]?.on\u0026\u0026t[0]?.context()instanceof a.y\u0026\u0026t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit(\"drain-\"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=\u003e{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=\u003e{\"use strict\";r.d(t,{P:()=\u003ec,ee:()=\u003eu});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c=\"nr@context:\".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length\u0026\u0026(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var p=v()[s[e]];p\u0026\u0026p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||\"feature\",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=\u003e{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=\u003e{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t\u0026\u0026\"object\"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,\"aborted\",{get:()=\u003e{let e=f._aborted||!1;return e||(t\u0026\u0026(e=t.aborted),e)}}),f;function h(e){return e\u0026\u0026e instanceof a.y?e:e?(0,i.I)(e,c,(()=\u003enew a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,\"globalEE\"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=\u003e{\"use strict\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=\u003e{\"use strict\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\"handle\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=\u003e{\"use strict\";r.d(t,{i:()=\u003eo});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o=\"feature\"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=\u003e{\"use strict\";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003eo,jT:()=\u003en,sp:()=\u003ei})},5607:(e,t,r)=\u003e{\"use strict\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},9566:(e,t,r)=\u003e{\"use strict\";r.d(t,{LA:()=\u003es,ZF:()=\u003ec,bz:()=\u003ea,el:()=\u003eu});var n=r(6154);const i=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),i.split(\"\").map((e=\u003e\"x\"===e?o(t,r++).toString(16):\"y\"===e?(3\u0026o()|8).toString(16):e)).join(\"\")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\"\")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=\u003e{\"use strict\";r.d(t,{BB:()=\u003ea,H3:()=\u003en,g:()=\u003eu,iL:()=\u003ec,tS:()=\u003es,uh:()=\u003ei,wk:()=\u003eo});const n=\"NRBA\",i=\"SESSION\",o=144e5,a=18e5,s={STARTED:\"session-started\",PAUSE:\"session-pause\",RESET:\"session-reset\",RESUME:\"session-resume\",UPDATE:\"session-update\"},c={SAME_TAB:\"same-tab\",CROSS_TAB:\"cross-tab\"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=\u003e{\"use strict\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},7485:(e,t,r)=\u003e{\"use strict\";r.d(t,{D:()=\u003ei});var n=r(6154);function i(e){if(0===(e||\"\").indexOf(\"data:\"))return{protocol:\"data\"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(\":\")),sameOrigin:t.protocol===n.gm?.location?.protocol\u0026\u0026t.host===n.gm?.location?.host};return r.port\u0026\u0026\"\"!==r.port||(\"http:\"===t.protocol\u0026\u0026(r.port=\"80\"),\"https:\"===t.protocol\u0026\u0026(r.port=\"443\")),r.pathname\u0026\u0026\"\"!==r.pathname?r.pathname.startsWith(\"/\")||(r.pathname=\"/\".concat(r.pathname)):r.pathname=\"/\",r}catch(e){return{}}}},944:(e,t,r)=\u003e{\"use strict\";function n(e,t){\"function\"==typeof console.debug\u0026\u0026console.debug(\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\".concat(e),t)}r.d(t,{R:()=\u003en})},5284:(e,t,r)=\u003e{\"use strict\";r.d(t,{t:()=\u003ec,B:()=\u003es});var n=r(7836),i=r(6154);const o=\"newrelic\";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e\u0026\u0026\"object\"==typeof e\u0026\u0026(a.has(t)||(r.emit(\"rumresp\",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=\u003e{\"use strict\";r.d(t,{I:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=\u003e{\"use strict\";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=\u003e{n\u0026\u0026void 0===i\u0026\u0026(e.apply(this,r),i=setTimeout((()=\u003e{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=\u003e{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=\u003e{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=\u003ei,s:()=\u003en})},3304:(e,t,r)=\u003e{\"use strict\";r.d(t,{A:()=\u003eo});var n=r(7836);const i=()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\"object\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??\"\"}catch(e){try{n.ee.emit(\"internal-error\",[e])}catch(e){}return\"\"}}},5289:(e,t,r)=\u003e{\"use strict\";r.d(t,{GG:()=\u003eo,sB:()=\u003ea});var n=r(3878);function i(){return\"undefined\"==typeof document||\"complete\"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)(\"load\",e,t)}function a(e){if(i())return e();(0,n.DD)(\"DOMContentLoaded\",e)}},384:(e,t,r)=\u003e{\"use strict\";r.d(t,{NT:()=\u003eo,US:()=\u003ed,Zm:()=\u003ea,bQ:()=\u003ec,dV:()=\u003es,nY:()=\u003eu,pV:()=\u003el});var n=r(6154),i=r(1863);const o={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=\u003e{\"use strict\";r.d(t,{u:()=\u003ei});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)(\"visibilitychange\",(function(){if(t)return void(\"hidden\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=\u003e{\"use strict\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u=\"addEventListener\",d=\"removeEventListener\",l=\"nr@wrapped:\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\"events\")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],\"-\",p)}function p(e,t){return e[1]}return\"getPrototypeOf\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+\"-start\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\"function\"==typeof n||\"object\"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if(\"function\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\"fn-\",null,e.name||\"anonymous\"):n}));this.wrapped=e[1]=i}})),t.on(d+\"-start\",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;\"object\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434:(e,t,r)=\u003e{\"use strict\";r.d(t,{Jt:()=\u003eo,YM:()=\u003ec});var n=r(7836),i=r(5607);const o=\"nr@original:\".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\"\");const a=\"-\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\"\"),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\"function\"==typeof n?n(o,a):n||{}}catch(t){u([t,\"\",[o,a,s],d],e)}i(r+\"start\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\"err\",[o,a,e],d,c),e}finally{i(r+\"end\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\"internal-error\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\"function\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},9300:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},3333:(e,t,r)=\u003e{\"use strict\";r.d(t,{TZ:()=\u003en,Zp:()=\u003ei,mq:()=\u003es,nf:()=\u003ea,qN:()=\u003eo});const n=r(860).K7.genericEvents,i=[\"auxclick\",\"click\",\"copy\",\"keydown\",\"paste\",\"scrollend\"],o=[\"focus\",\"blur\"],a=4,s=1e3},6774:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},993:(e,t,r)=\u003e{\"use strict\";r.d(t,{ET:()=\u003eo,TZ:()=\u003ea,p_:()=\u003ei});var n=r(860);const i={ERROR:\"ERROR\",WARN:\"WARN\",INFO:\"INFO\",DEBUG:\"DEBUG\",TRACE:\"TRACE\"},o=\"log\",a=n.K7.logging},3785:(e,t,r)=\u003e{\"use strict\";r.d(t,{R:()=\u003ec,b:()=\u003eu});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,[\"API/logging/\".concat(c.toLowerCase(),\"/called\")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return\"string\"==typeof e\u0026\u0026Object.values(s.p_).some((t=\u003et===e.toUpperCase().trim()))}},3969:(e,t,r)=\u003e{\"use strict\";r.d(t,{TZ:()=\u003en,XG:()=\u003es,rs:()=\u003ei,xV:()=\u003ea,z_:()=\u003eo});const n=r(860).K7.metrics,i=\"sm\",o=\"cm\",a=\"storeSupportabilityMetrics\",s=\"storeEventMetrics\"},6630:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},782:(e,t,r)=\u003e{\"use strict\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=\u003e{\"use strict\";r.d(t,{BB:()=\u003ed,G4:()=\u003eo,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003ea,_s:()=\u003es,bc:()=\u003eu,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:\"recordReplay\",PAUSE:\"pauseReplay\",REPLAY_RUNNING:\"replayRunning\",ERROR_DURING_REPLAY:\"errorDuringReplay\"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:\"Session was reset\",sm:\"Reset\"},IMPORT:{message:\"Recorder failed to import\",sm:\"Import\"},TOO_MANY:{message:\"429: Too Many Requests\",sm:\"Too-Many\"},TOO_BIG:{message:\"Payload was too large\",sm:\"Too-Big\"},CROSS_TAB:{message:\"Session Entity was set to OFF on another tab\",sm:\"Cross-Tab\"},ENTITLEMENTS:{message:\"Session Replay is not allowed and will not be started\",sm:\"Entitlement\"}},d=5e3,l={API:\"api\"}},5270:(e,t,r)=\u003e{\"use strict\";r.d(t,{Aw:()=\u003ec,CT:()=\u003eu,SR:()=\u003es});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,o.V)(e)\u0026\u0026!0===(0,i.gD)(e,\"session_trace.enabled\")}function c(e){return!0===(0,i.gD)(e,\"session_replay.preload\")\u0026\u0026s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=\u003e{\"use strict\";r.d(t,{He:()=\u003ei,Kp:()=\u003es,Lc:()=\u003eu,Rz:()=\u003ed,TZ:()=\u003en,bD:()=\u003eo,d3:()=\u003ea,jx:()=\u003el,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\"bstResource\",o=\"resource\",a=\"-start\",s=\"-end\",c=\"fn\"+a,u=\"fn\"+s,d=\"pushState\",l=1e3},3962:(e,t,r)=\u003e{\"use strict\";r.d(t,{AM:()=\u003eo,O2:()=\u003es,Qu:()=\u003ec,TZ:()=\u003ea,ih:()=\u003eu,tC:()=\u003ei});var n=r(860);const i=[\"click\",\"keydown\",\"submit\"],o=\"api\",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:\"\",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:\"in progress\",FIN:\"finished\",CAN:\"cancelled\"}},7378:(e,t,r)=\u003e{\"use strict\";r.d(t,{$p:()=\u003ex,BR:()=\u003eb,Kp:()=\u003eR,L3:()=\u003ey,Lc:()=\u003ec,NC:()=\u003eo,SG:()=\u003ed,TZ:()=\u003ei,U6:()=\u003ep,UT:()=\u003em,d3:()=\u003ew,dT:()=\u003ef,e5:()=\u003eA,gx:()=\u003ev,l9:()=\u003el,oW:()=\u003eh,op:()=\u003eg,rw:()=\u003eu,tH:()=\u003eE,uP:()=\u003es,wW:()=\u003eT,xq:()=\u003ea});var n=r(384);const i=r(860).K7.spa,o=[\"click\",\"submit\",\"keypress\",\"keydown\",\"keyup\",\"change\"],a=999,s=\"fn-start\",c=\"fn-end\",u=\"cb-start\",d=\"api-ixn-\",l=\"remaining\",f=\"interaction\",h=\"spaNode\",p=\"jsonpNode\",g=\"fetch-start\",m=\"fetch-done\",v=\"fetch-body-\",b=\"jsonp-end\",y=(0,n.dV)().o.ST,w=\"-start\",R=\"-end\",x=\"-body\",T=\"cb\"+R,A=\"jsTime\",E=\"fetch\"},4234:(e,t,r)=\u003e{\"use strict\";r.d(t,{W:()=\u003eo});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=\u003e{\"use strict\";r.d(t,{V:()=\u003eo});var n=r(9417),i=r(6154);const o=e=\u003ei.RI\u0026\u0026!0===(0,n.gD)(e,\"privacy.cookies_enabled\")},425:(e,t,r)=\u003e{\"use strict\";r.d(t,{j:()=\u003ej});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\",\"addPageAction\",\"setCurrentRouteName\",\"setPageViewName\",\"setCustomAttribute\",\"interaction\",\"noticeError\",\"setUserId\",\"setApplicationVersion\",\"start\",p.G4.RECORD,p.G4.PAUSE,\"log\",\"wrapLogger\"],m=[\"setErrorHandler\",\"finished\",\"addToTrace\",\"addRelease\"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if(\"object\"!=typeof t||!t||\"string\"!=typeof r||!r||\"function\"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get(\"logger\")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],\"wrap-logger-\",a),i}function A(){const e=(0,h.pV)();g.forEach((t=\u003e{e[t]=(...r)=\u003efunction(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e\u0026\u0026e.api?e.exposed\u0026\u0026e.api[t]\u0026\u0026n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length\u003e1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=\u003e{const t=e.startsWith(\"http\");e+=\"/\",r.p=t?e:\"https://\"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv\u0026\u0026(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets\u0026\u0026(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon\u0026\u0026D.push(H.proxy.beacon),A(),(0,h.US)(\"activatedFeatures\",O.B),e.runSoftNavOverSpa\u0026\u0026=!0===H.soft_navigations.enabled\u0026\u0026H.feature_flags.includes(\"soft_nav\")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api\u0026\u0026(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,\"api\");const g={};var R=s.ee.get(e),x=R.get(\"tracer\");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=\u003e{E[e]=t}));var A=\"api-\",S=A+\"ixn-\";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?\"session\":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,[\"API/log/called\"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=\u003e{(0,a.p)(f.xV,[\"API/wrapLogger/called\"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=\u003e{g[e]=I(A,e,!0,\"api\")})),g.addPageAction=I(A,\"addPageAction\",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if(\"string\"==typeof t)return\"/\"!==t.charAt(0)\u0026\u0026(t=\"/\"+t),(0,o.f)(e).customTransaction=(r||\"http://custom.transaction\")+t,I(A,\"setPageViewName\",!0)()},g.setCustomAttribute=function(e,t,r=!1){if(\"string\"==typeof e){if([\"string\",\"number\",\"boolean\"].includes(typeof t)||null===t)return N(e,t,\"setCustomAttribute\",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if(\"string\"==typeof e||null===e)return N(\"enduser.id\",e,\"setUserId\",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if(\"string\"==typeof e||null===e)return N(\"application.version\",e,\"setApplicationVersion\",!1);(0,l.R)(42,typeof e)},g.start=()=\u003e{try{(0,a.p)(f.xV,[\"API/start/called\"],void 0,n.K7.metrics,R),R.emit(\"manual-start-all\")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,[\"API/recordReplay/called\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,[\"API/pauseReplay/called\"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get(\"object\"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o=\"function\"==typeof t;return(0,a.p)(f.xV,[\"API/createTracer/called\"],void 0,n.K7.metrics,R),h||(0,a.p)(S+\"tracer\",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?\"\":\"no-\")+\"fn-start\",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t=\"string\"==typeof e?new Error(e):e;throw x.emit(\"fn-err\",[arguments,this,t],r),t}finally{x.emit(\"fn-end\",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,[\"API/\"+t+\"/called\"],void 0,n.K7.metrics,R),i\u0026\u0026(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=\u003e{t(e),(0,c.Ze)(e,\"api\")})).catch((e=\u003e{(0,l.R)(27,e),R.abort()}))}return[\"actionText\",\"setName\",\"setAttribute\",\"save\",\"ignore\",\"onEnd\",\"getContext\",\"end\",\"get\"].forEach((e=\u003e{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,\"routeName\",void 0,n.K7.softNav):I(A,\"routeName\",!0,n.K7.spa),g.noticeError=function(t,r){\"string\"==typeof t\u0026\u0026(t=new Error(t)),(0,a.p)(f.xV,[\"API/noticeError/called\"],void 0,n.K7.metrics,R),(0,a.p)(\"err\",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=\u003ej()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed\u0026\u0026(e.exposed=k),I=!0}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\"\"})()},860:(e,t,r)=\u003e{\"use strict\";r.d(t,{$J:()=\u003eo,K7:()=\u003en,P3:()=\u003ei});const n={ajax:\"ajax\",genericEvents:\"generic_events\",jserrors:\"jserrors\",logging:\"logging\",metrics:\"metrics\",pageAction:\"page_action\",pageViewEvent:\"page_view_event\",pageViewTiming:\"page_view_timing\",sessionReplay:\"session_replay\",sessionTrace:\"session_trace\",softNav:\"soft_navigations\",spa:\"spa\"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:\"events\",[n.ajax]:\"events\",[n.spa]:\"events\",[n.softNav]:\"events\",[n.metrics]:\"jserrors\",[n.jserrors]:\"jserrors\",[n.sessionTrace]:\"browser/blobs\",[n.sessionReplay]:\"browser/blobs\",[n.logging]:\"browser/logs\",[n.genericEvents]:\"ins\"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({212:\"nr-spa-compressor\",249:\"nr-spa-recorder\",478:\"nr-spa\"}[e]+\"-1.274.0.min.js\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\"NRBA-1.274.0.PROD:\",i.l=(r,n,o,a)=\u003e{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName(\"script\"),d=0;d\u003cu.length;d++){var l=u[d];if(l.getAttribute(\"src\")==r||l.getAttribute(\"data-webpack\")==t+o){s=l;break}}if(!s){c=!0;var f={478:\"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==\",249:\"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==\",212:\"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw==\"};(s=document.createElement(\"script\")).charset=\"utf-8\",s.timeout=120,i.nc\u0026\u0026s.setAttribute(\"nonce\",i.nc),s.setAttribute(\"data-webpack\",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+\"/\")\u0026\u0026(s.crossOrigin=\"anonymous\"),f[a]\u0026\u0026(s.integrity=f[a])}e[r]=[n];var h=(t,n)=\u003e{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode\u0026\u0026s.parentNode.removeChild(s),i\u0026\u0026i.forEach((e=\u003ee(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\"timeout\",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c\u0026\u0026document.head.appendChild(s)}},i.r=e=\u003e{\"undefined\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.p=\"https://js-agent.newrelic.com/\",(()=\u003e{var e={38:0,788:0};i.f.j=(t,r)=\u003e{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=\u003en=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var o=r\u0026\u0026(\"load\"===r.type?\"missing\":r.type),a=r\u0026\u0026r.target\u0026\u0026r.target.src;s.message=\"Loading chunk \"+t+\" failed.\\n(\"+o+\": \"+a+\")\",s.name=\"ChunkLoadError\",s.type=o,s.request=a,n[1](s)}}),\"chunk-\"+t,t)}};var t=(t,r)=\u003e{var n,o,[a,s,c]=r,u=0;if(a.some((t=\u003e0!==e[t]))){for(n in s)i.o(s,n)\u0026\u0026(i.m[n]=s[n]);if(c)c(i)}for(t\u0026\u0026t(r);u\u003ca.length;u++)o=a[u],i.o(e,o)\u0026\u0026e[o]\u0026\u0026e[o][0](),e[o]=0},r=self[\"webpackChunk:NRBA-1.274.0.PROD\"]=self[\"webpackChunk:NRBA-1.274.0.PROD\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\"use strict\";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if(\"function\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e(\"addPageAction\",e,t)}setPageViewName(e,t){return this.#e(\"setPageViewName\",e,t)}setCustomAttribute(e,t,r){return this.#e(\"setCustomAttribute\",e,t,r)}noticeError(e,t){return this.#e(\"noticeError\",e,t)}setUserId(e){return this.#e(\"setUserId\",e)}setApplicationVersion(e){return this.#e(\"setApplicationVersion\",e)}setErrorHandler(e){return this.#e(\"setErrorHandler\",e)}addRelease(e,t){return this.#e(\"addRelease\",e,t)}log(e,t){return this.#e(\"log\",e,t)}}class o extends n{#e(t,...r){if(\"function\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e(\"start\")}finished(e){return this.#e(\"finished\",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e(\"addToTrace\",e)}setCurrentRouteName(e){return this.#e(\"setCurrentRouteName\",e)}interaction(){return this.#e(\"interaction\")}wrapLogger(e,t,r){return this.#e(\"wrapLogger\",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=\u003e{t[r]=function(e,t){return!0===(0,s.gD)(t,\"\".concat(e,\".enabled\"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart\u0026\u0026(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on(\"manual-start-all\",(0,v.J)((()=\u003e{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=\u003e{n=e}));const o=async()=\u003e{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit(\"internal-error\",[t]),this.featureName===a.K7.sessionReplay\u0026\u0026this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,\"aggregate\");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee\u0026\u0026this.ee.abort()}};p.RI?(0,h.GG)((()=\u003eo()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)\u0026\u0026!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI\u0026\u0026((0,T.u)((()=\u003e(0,x.p)(\"docHidden\",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)(\"pagehide\",(()=\u003e(0,x.p)(\"winPagehide\",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name=\"UncaughtError\",this.message=\"string\"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t=\"Unhandled Promise Rejection\";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+\": \"+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+\": \"+r?.message,r}function L(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error\u0026\u0026!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\"internal-error\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"ierr\",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.#r=e})),p.gm.addEventListener(\"unhandledrejection\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"err\",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener(\"error\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\"err\",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U=\"nr@id\";function V(e){const t=typeof e;return!e||\"object\"!==t\u0026\u0026\"function\"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if(\"string\"==typeof e\u0026\u0026e.length)return e.length;if(\"object\"==typeof e){if(\"undefined\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\"undefined\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\"undefined\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=[\"open\",\"send\"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get(\"xhr\")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u=\"readystatechange\",d=[\"onload\",\"onerror\",\"onabort\",\"onloadstart\",\"onloadend\",\"onprogress\",\"ontimeout\"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit(\"new-xhr\",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!s.resolved\u0026\u0026(s.resolved=!0,n.emit(\"xhr-resolved\",[],e)),i.inPlace(e,d,\"fn-\",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit(\"internal-error\",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,[\"onreadystatechange\"],\"fn-\",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,\"-xhr-\",y),n.on(\"send-xhr-start\",(function(e,t){h(e,t),function(e){l.push(e),a\u0026\u0026(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on(\"open-xhr-start\",h),a){var g=s\u0026\u0026s.resolve();if(!c\u0026\u0026!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on(\"fn-end\",(function(e){e[0]\u0026\u0026e[0].type===u||b()}));function b(){for(var e=0;e\u003cl.length;e++)h(0,l[e]);l.length\u0026\u0026(l=[])}function y(e,t){return t}return n}var Y=\"fetch-\",X=Y+\"body-\",J=[\"arrayBuffer\",\"blob\",\"json\",\"text\",\"formData\"],Q=p.gm.Request,ee=p.gm.Response,te=\"prototype\";const re={};function ne(e){const t=function(e){return(e||B.ee).get(\"fetch\")}(e);if(!(Q\u0026\u0026ee\u0026\u0026p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];\"function\"==typeof i\u0026\u0026(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+\"before-start\",[r],o),o[B.P]\u0026\u0026o[B.P].dt\u0026\u0026(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+\"start\",[r,e],a),a.then((function(e){return t.emit(n+\"end\",[null,e],a),e}),(function(e){throw t.emit(n+\"end\",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=\u003e{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,\"fetch\",Y),t.on(Y+\"end\",(function(e,r){var n=this;if(r){var i=r.headers.get(\"content-length\");null!==i\u0026\u0026(n.rxSize=i),t.emit(Y+\"done\",[null,r],n)}else t.emit(Y+\"done\",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||\"\").toString()||null,i=(t.agentID||\"\").toString()||null,o=(t.trustKey||\"\").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return\"00-\"+t+\"-\"+e+\"-01\"}generateTraceContextStateHeader(e,t,r,n,i){return i+\"@nr=0-1-\"+r+\"-\"+n+\"-\"+e+\"----\"+t}generateTraceHeader(e,t,r,n,i,o){if(!(\"function\"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:\"Browser\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,\"distributed_tracing\")\u0026\u0026(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname\u0026\u0026e.protocol===i.protocol\u0026\u0026e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,\"distributed_tracing\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=[\"load\",\"error\",\"abort\",\"timeout\"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=\u003e(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\"xhr\",fetch:\"fetch\",beacon:\"beacon\"};p.gm?.performance?.getEntriesByType(\"resource\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler(\"xhr\",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\"load\",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener(\"progress\",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\"X-NewRelic-ID\",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader\u0026\u0026(r.setRequestHeader(\"newrelic\",i.newrelicHeader),o=!0),i.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\"traceparent\",i.traceContextParentHeader),i.traceContextStateHeader\u0026\u0026r.setRequestHeader(\"tracestate\",i.traceContextStateHeader),o=!0),o\u0026\u0026(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n\u0026\u0026i){var a=G(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{\"abort\"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),(\"load\"!==e.type||o.called===o.totalCbs\u0026\u0026(o.onloadCalled||\"function\"!=typeof r.onload)\u0026\u0026\"function\"==typeof o.end)\u0026\u0026o.end(r)}catch(e){try{t.emit(\"internal-error\",[e])}catch(e){}}};for(var s=0;s\u003cde;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled\u0026\u0026\"function\"==typeof r.onload||\"function\"!=typeof this.end||this.end(r)}function d(e,t){var r=\"\"+V(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=\"\"+V(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-added\",[e[1],e[2]],r)}function g(e,r){r instanceof fe\u0026\u0026\"load\"===e[0]\u0026\u0026t.emit(\"xhr-load-removed\",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe\u0026\u0026(\"onload\"===r\u0026\u0026(this.onload=!0),(\"load\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\"xhr-cb-time\",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if(\"string\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026p.RI\u0026\u0026(t=\"\"+p.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:p.gm?.URL\u0026\u0026e[0]\u0026\u0026e[0]instanceof URL?t=e[0].href:\"function\"==typeof e[0].toString\u0026\u0026(t=e[0].toString()),\"string\"==typeof t\u0026\u00260!==t.length){t\u0026\u0026(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i\u0026\u0026(i.newrelicHeader||i.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)s(e[0].headers,i)\u0026\u0026(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)\u0026\u0026(this.dt=i),e.length\u003e1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader\u0026\u0026(e.set(\"newrelic\",t.newrelicHeader),r=!0),t.traceContextParentHeader\u0026\u0026(e.set(\"traceparent\",t.traceContextParentHeader),t.traceContextStateHeader\u0026\u0026e.set(\"tracestate\",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length\u003e=1\u0026\u0026(this.target=e[0]),e.length\u003e=2\u0026\u0026(this.opts=e[1]);var r,n=this.opts||{},i=this.target;\"string\"==typeof i?r=i:\"object\"==typeof i\u0026\u0026i instanceof le?r=i.url:p.gm?.URL\u0026\u0026\"object\"==typeof i\u0026\u0026i instanceof URL\u0026\u0026(r=i.href),pe(this,r);var o=(\"\"+(i\u0026\u0026i instanceof le\u0026\u0026i.method||n.method||\"GET\")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,\"string\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r(\"xhr\",[this.params,i,this.startTime,this.endTime,\"fetch\"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t\u003cde;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):T(this,e),n.cbTime=this.cbTime,r(\"xhr\",[t,n,this.startTime,this.endTime,\"xhr\"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return\"json\"===r\u0026\u0026null!==t?t:\"arraybuffer\"===r||\"blob\"===r||\"json\"===r?G(e.response):\"text\"===r||\"\"===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n\u0026\u0026(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader(\"X-NewRelic-App-Data\");i\u0026\u0026((0,x.p)(O.rs,[\"Ajax/CrossApplicationTracing/Header/Seen\"],void 0,a.K7.metrics,t),e.params.cat=i.split(\", \").pop())}e.loadCaptureCalled=!0}t.on(\"new-xhr\",i),t.on(\"open-xhr-start\",o),t.on(\"open-xhr-end\",s),t.on(\"send-xhr-start\",c),t.on(\"xhr-cb-time\",u),t.on(\"xhr-load-added\",d),t.on(\"xhr-load-removed\",l),t.on(\"xhr-resolved\",f),t.on(\"addEventListener-end\",h),t.on(\"removeEventListener-end\",g),t.on(\"fn-end\",v),t.on(\"fetch-before-start\",b),t.on(\"fetch-start\",y),t.on(\"fn-start\",m),t.on(\"fetch-done\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+\":\"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=[\"pushState\",\"replaceState\"];function ve(e){const t=function(e){return(e||B.ee).get(\"history\")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,\"-\")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)(\"bst\",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)(\"bstHist\",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem(\"\".concat(Oe.H3,\"_\").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)\u0026\u0026this.ee.on(t.G4.RECORD,(()=\u003ethis.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on(\"err\",(e=\u003e{this.replayRunning\u0026\u0026(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.replayRunning=e}))}#s(e){return e\u0026\u0026(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL\u0026\u0026this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder\u0026\u0026this.recorder.parent.mode!==Oe.g.FULL\u0026\u0026(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=\u003e{(0,A.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\"newURL\",[(0,S.t)(),\"\"+window.location],void 0,this.featureName,this.ee);r.on(\"pushState-end\",n),r.on(\"replaceState-end\",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)(\"popstate\",(e=\u003e(0,x.p)(\"newURL\",[e.timeStamp,\"\"+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=\u003e{i||(i=!0,requestAnimationFrame((()=\u003e{(0,x.p)(\"newDom\",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=\u003e{(0,x.p)(\"newUIEvent\",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=[\"appendChild\",\"insertBefore\",\"replaceChild\"];function Le(e){const t=function(e){return(e||B.ee).get(\"jsonp\")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,i=/(.*)\\.([^.]+)/,o=/^(\\w+)(\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,\"dom-\"),t.on(\"dom-start\",(function(e){!function(e){if(!e||\"string\"!=typeof e.nodeName||\"script\"!==e.nodeName.toLowerCase())return;if(\"function\"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if(\"function\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,A.jT)(!1)),e.removeEventListener(\"error\",f,(0,A.jT)(!1))}function f(){t.emit(\"jsonp-error\",[],d),t.emit(\"jsonp-end\",[],d),e.removeEventListener(\"load\",l,(0,A.jT)(!1)),e.removeEventListener(\"error\",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],\"cb-\",d),e.addEventListener(\"load\",l,(0,A.jT)(!1)),e.addEventListener(\"error\",f,(0,A.jT)(!1)),t.emit(\"new-jsonp\",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get(\"promise\")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i\u0026\u0026function(){function e(r){var o=t.context(),a=n(r,\"executor-\",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,\"name\",{value:\"Promise\"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),[\"all\",\"race\"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\"all\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\"propagate\",[null,!i],o,!1,!1),i=i||!e}}}})),[\"resolve\",\"reject\"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\"propagate\",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],\"cb-\",a,null,!1),e[1]=n(e[1],\"cb-\",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit(\"propagate\",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on(\"executor-start\",(function(e){e[0]=n(e[0],\"resolve-\",this,null,!1),e[1]=n(e[1],\"resolve-\",this,null,!1)})),t.on(\"executor-err\",(function(e,t,r){e[1](r)})),t.on(\"cb-end\",(function(e,r,n){t.emit(\"propagate\",[n,!0],this.nextPromise,!1,!1)})),t.on(\"propagate\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke=\"setTimeout\",Ue=\"setInterval\",Ve=\"clearTimeout\",Ge=\"-start\",Fe=[Ke,\"setImmediate\",Ue,Ve,\"clearImmediate\"];function Be(e){const t=function(e){return(e||B.ee).get(\"timer\")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+\"-\"),r.inPlace(p.gm,Fe.slice(2,3),Ue+\"-\"),r.inPlace(p.gm,Fe.slice(3),Ve+\"-\"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],\"fn-\",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\"fn-\",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get(\"mutation\")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n\u0026\u0026(window.MutationObserver=function(e){return this instanceof n?new n(r(e,\"fn-\")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\"tracer\"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get(\"events\"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit(\"newURL\",[\"\"+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on(\"fn-err\",((...t)=\u003e{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)(\"function-err\",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,\"xhr-resolved\"],this.featureName),u.buffer([et],this.featureName),s.buffer([\"setTimeout\"+Ye,\"clearTimeout\"+Ze,et],this.featureName),c.buffer([et,\"new-xhr\",\"send-xhr\"+Ze],this.featureName),d.buffer([$e+Ze,$e+\"-done\",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer([\"newURL\"],this.featureName),f.buffer([et],this.featureName),a.buffer([\"propagate\",tt,Je,\"executor-err\",\"resolve\"+Ze],this.featureName),i.buffer([et,\"no-\"+et],this.featureName),o.buffer([\"new-jsonp\",\"cb-start\",\"jsonp-error\",\"jsonp-end\"],this.featureName),v(d,$e+Ze),v(d,$e+\"-done\"),v(o,\"new-jsonp\"),v(o,\"jsonp-end\"),v(o,\"cb-start\"),l.on(\"pushState-end\",h),l.on(\"replaceState-end\",h),window.addEventListener(\"hashchange\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"load\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\"popstate\",(function(){h(0,n\u003e1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI\u0026\u0026e.init.user_actions.enabled\u0026\u0026(it.Zp.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\"ua\",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\"ua\",[e],void 0,this.featureName,this.ee)))))),r.some((e=\u003ee))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on(\"wrap-logger-end\",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=\u003ee.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||\"agent\"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=\u003ea.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=\u003e{if(!t[r.featureName]\u0026\u0026r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=\u003e!(e in this.features)));n.length\u003e0\u0026\u0026(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:\"spa\"})})()})();","testAutomationFlags":{"disableAds":false,"disableIirisAuth":false,"disableWelcomeAd":false,"disableBigskyAd":false,"disableIirisRecommend":false,"disableDcts":false,"disableWeatherWidget":false,"disableCashGrainWidget":false,"disableCommoditiesWidget":false,"disableCaptcha":false,"disableCookieBanner":false,"overrideBrandStyling":"","overrideThemeStyling":""},"configState":{"font":{"primary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"},"secondary":{"name":"Inter","url":"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap"}},"theme":"theme1","uiBrand":"itprotoday","isMarketsDivision":false,"image":{"brand":"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"},"media":{"brightcoveAccountId":""},"newsletterSignupPromo":{"unbounceURL":"https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_itpb86\u0026ch=itpsitebtn","elnConfig":{"newsletter":{"subscribeForm":{"title":"Subscribe to Our Newsletters","subtitle":"Subtitle"},"subscribeConfirm":{"title":"Subscribe to Our Newsletters","subtitle":"Subtitle"}}}},"isOneTrustLoaded":false}},"routes/$topic._index":{"metadata":{"uid":"blt4fe6edc5c02c5e96","aid":"854700"},"template":{"title":"About Us","mobileHeadline":"About Us","bodyJson":[{"type":"paragraph","attrs":{"textAlign":"center"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"#Our Editors","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Meet Our Editors"},{"type":"text","marks":[{"type":"bold"}],"text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"#Our Contributors","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Meet Our Contributors"},{"type":"text","marks":[{"type":"bold"}],"text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"#Contribute to ITPro Today","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Become a Contributor"},{"type":"text","marks":[{"type":"bold"}],"text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"#AI Policy","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"AI Policy"},{"type":"text","marks":[{"type":"bold"}],"text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"#Follow Us","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Follow Us "},{"type":"text","marks":[{"type":"bold"}],"text":"| "},{"type":"text","marks":[{"type":"link","attrs":{"href":"#Contact Us","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Contact Us"}]},{"type":"paragraph","attrs":{"textAlign":"left"}},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"ITPro Today is dedicated to providing a comprehensive view of the information technology industry. Our goal is simple: to deliver daily news, analysis, opinions, and how-tos that cater to both seasoned IT professionals and those new to the field."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Understanding the challenges and complexities of navigating the ever-evolving technology landscape, we go beyond mere reporting; we offer practical insights into IT operations and career development. Whether IT professionals are looking to enhance their skills or stay informed about the latest trends, ITPro Today is designed to assist them in their journey to success."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Our team is made up of a dedicated group of reporters, editors, analysts, and IT industry professionals who work continuously to cover the industry’s ever-changing landscape."}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Our Coverage"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"IT professionals count on us to help them navigate the multifaceted IT landscape, including analytics, artificial intelligence/machine learning, cloud computing, low-code/no-code, DevOps, NoOps, DataOps, compute engines, containers, edge computing, hyper-converged infrastructure, security, software development, and storage."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"We are committed to demystifying next-gen technologies that drive business innovation. From analytics to artificial intelligence, cloud computing to DevOps, we cover a wide array of topics. Our mission isn't just to inform; it's to empower IT professionals and technology stakeholders to make informed decisions about technology adoption and management. "}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Our Editors"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Editor-In-Chief - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/wendy-schuchart","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Wendy Schuchart"},{"type":"hardBreak"},{"type":"text","text":"Wendy Schuchart has more than a decade of experience writing about the IT landscape and has another decade’s experience working in enterprise IT as a coder, business analyst and software developer. Before joining ITPro Today she was the managing editor/executive editor at VentureBeat. Her work has been featured in many IT publications, including InformationWeek, Network Computing, Datacenter Dynamics, Green Data Center News, SDX Central and TechTarget. Follow her on Twitter "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://twitter.com/wendyschuchart","target":"_self","rel":null,"class":null}}],"text":"@wendyschuchart"},{"type":"text","text":"."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Senior Managing Editor - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/brian-holak","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Brian Holak"},{"type":"hardBreak"},{"type":"text","text":"Brian Holak has more than 10 years of experience in the IT journalism realm, both as a reporter and an editor. Prior to joining ITPro Today, he was site editor for TechTarget's SearchBusinessAnalytics and SearchDataManagement. Along with BI, analytics and data management, Brian has covered a wide range of enterprise IT beats, including artificial intelligence, cloud computing, digital transformation, innovation management and general IT strategy."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Senior Editor - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/rick-dagley","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Rick Dagley"},{"type":"hardBreak"},{"type":"text","text":"Rick Dagley covers a wide range of enterprise IT topics, including IT operations and management, cloud computing, edge computing, software development and IT careers. Prior to joining ITPro Today, Rick was a longtime editor at PCWeek/eWEEK, with stints at Computer Design and Telecommunications magazines before that."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Senior Editor - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/spencer-smith","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Spencer Smith"},{"type":"hardBreak"},{"type":"text","text":"Spencer Smith focuses on IT security, compute engines, data analytics and data management, end user platforms, and storage technology. Prior to joining ITPro Today, Spencer was site editor for TechTarget’s SearchITChannel.com, where he covered the IT channel industry and business strategy."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Digital SEO Content \u0026 Copy Editor - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/dylan-fisher","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Dylan Fisher"},{"type":"hardBreak"},{"type":"text","text":"Dylan Fisher supports ITPro Today, Data Center Knowledge, InformationWeek, and Network Computing. He's the author of \""},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.tamupress.com/book/9781680032123/the-loneliest-band-in-france/","target":"_self","rel":null,"class":null}}],"text":"The Loneliest Band in France"},{"type":"text","text":".\" He lives with his wife, Danielle, and their two adopted dogs, Rosie and Daisy, in Atlanta, GA."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"bold"}],"text":"Digital Editorial Program Manager - "},{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/brandon-taylor","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Brandon Taylor"},{"type":"hardBreak"},{"type":"text","text":"Brandon Taylor supports ITPro Today, Data Center Knowledge, InformationWeek, and Network Computing. He enables the successful delivery of sponsored content programs, secures speakers for the brands' many events, and assists in content strategy."}]}]}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Our Contributors"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/christopher-tozzi","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Christopher Tozzi"},{"type":"text","text":" is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “"},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://mitpress.mit.edu/9780262551786/for-fun-and-profit/","target":"_self","rel":null,"class":null}}],"text":"For Fun and Profit: A History of the Free and Open Source Software Revolution"},{"type":"text","text":",” was published by MIT Press."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/brien-posey","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Brien Posey"},{"type":"text","text":" is the vice president of research and development for Relevant Technologies. He writes technical content for a variety of publications and Web sites and covers the security and data storage beats for ITPro Today."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.itprotoday.com/author/nathan-eddy","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"Nathan Eddy"},{"type":"text","text":" is a freelance writer for ITProToday and covers various IT trends and topics across wide variety of industries. A graduate of Northwestern University’s Medill School of Journalism, he is also a documentary filmmaker specializing in architecture and urban planning. He currently lives in Berlin, Germany."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/karen-d-schwartz","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Karen D. Schwartz"},{"type":"text","text":" is a technology and business writer with more than 20 years of experience. She has written on a broad range of technology topics for publications including "},{"type":"text","marks":[{"type":"italic"}],"text":"CIO"},{"type":"text","text":", "},{"type":"text","marks":[{"type":"italic"}],"text":"InformationWeek"},{"type":"text","text":", "},{"type":"text","marks":[{"type":"italic"}],"text":"GCN"},{"type":"text","text":", "},{"type":"text","marks":[{"type":"italic"}],"text":"FCW"},{"type":"text","text":", "},{"type":"text","marks":[{"type":"italic"}],"text":"FedTech, BizTech"},{"type":"text","text":", "},{"type":"text","marks":[{"type":"italic"}],"text":"eWeek"},{"type":"text","text":" and "},{"type":"text","marks":[{"type":"italic"}],"text":"Government Executive"},{"type":"text","text":". "}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/sean-michael-kerner","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Sean Michael Kerner"},{"type":"text","text":" is an IT consultant, technology enthusiast and tinkerer. He consults to industry and media organizations on technology issues."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.itprotoday.com/author/grant-knoetze","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"Grant Knoetze"},{"type":"text","text":" is a cybersecurity analyst with a special interest in DFIR, programming languages, incident response, red-teaming, and malware analysis. His full-time job includes teaching and instructing in various topics from basic Linux all the way through to malware incident response, and other advanced topics. He is also a speaker at various conferences worldwide."}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"/author/stephen-swoyer","target":"_self","rel":null,"class":null}},{"type":"bold"}],"text":"Stephen Swoyer"},{"type":"text","text":" is a researcher and analyst with 25 years of experience. His research has focused on business intelligence (BI), data warehousing, analytics, data science, machine learning and the larger information management segment for nearly 20 years. He also enjoys researching and writing about software development and software architecture – or technology architecture of any kind, for that matter."}]}]}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Contribute to ITPro Today"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"If you’re an IT practitioner, we welcome article submissions from you about how to strategically assess and/or tactically deploy technologies within your organization, especially when the submission highlights the business benefits of specific processes or policies."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"To be considered for publication, submissions must adhere to our editorial standards:"}]},{"type":"bulletList","content":[{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"The content must be exclusive to ITPro Today (cannot have been published elsewhere)"}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"It cannot market a vendor’s products or services"}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"It must be relevant to a topic we cover on ITPro Today"}]}]},{"type":"listItem","content":[{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"It must be written for our core audience of IT professionals"}]}]}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"If we do accept the content for publication, we typically edit for style, clarity, grammar and length (600 to 1,000 words is ideal) and send it back to you for review if substantial edits are made. We expect that you will fact-check your submission before sending it to us for review. Unfortunately, we can’t pay for unsolicited contributions."}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"If you’re interested in contributing under those guidelines, feel free to send your topic suggestions to "},{"type":"text","marks":[{"type":"link","attrs":{"href":"mailto:Editors@ITProToday.com","target":"_self","rel":null,"class":null}}],"text":"Editors@ITProToday.com"},{"type":"text","text":"."}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"AI Policy"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Read our "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.itprotoday.com/itpro-today-s-ai-policy","target":"_self","rel":null,"class":null}}],"text":"AI Policy"},{"type":"text","text":" to learn how we're maintaining editorial integrity and transparency amid the rise of generative AI."}]},{"type":"heading","attrs":{"textAlign":"left","level":2},"content":[{"type":"text","text":"Follow Us"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"Get ITPro Today wherever you are."}]},{"type":"heading","attrs":{"textAlign":"center","level":3},"content":[{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.linkedin.com/company/itpro-today/","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"LinkedIn"},{"type":"text","text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.facebook.com/itprotoday","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"Facebook"},{"type":"text","text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.instagram.com/itprotoday/","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"Instagram"},{"type":"text","text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.threads.net/@itprotoday","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"Threads"},{"type":"text","text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://twitter.com/itprotoday","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"X"},{"type":"text","text":" | "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://www.itprotoday.com/rss.xml","target":"_blank","rel":null,"class":null}},{"type":"bold"}],"text":"RSS Feed"}]},{"type":"heading","attrs":{"textAlign":"left","level":3},"content":[{"type":"text","text":"Contact Us"}]},{"type":"paragraph","attrs":{"textAlign":"left"},"content":[{"type":"text","text":"For more details on ITPro Today’s mission, audience demographics, and sponsorship opportunities, download the "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://technology.informaengage.com/itpro-today-media-kit","target":"_self","rel":null,"class":null}}],"text":"ITPro Today Media Kit"},{"type":"text","text":"."},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","marks":[{"type":"bold"}],"text":"Advertising"},{"type":"hardBreak"},{"type":"text","text":"For advertising inquiries, complete the "},{"type":"text","marks":[{"type":"link","attrs":{"href":"https://technology.informaengage.com/itpro-today-request-info","target":"_self","rel":null,"class":null}}],"text":"Contact Us form"},{"type":"text","text":", and an account representative will contact you shortly."},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","marks":[{"type":"bold"}],"text":"Editorial"},{"type":"hardBreak"},{"type":"text","text":"For editorial inquiries, email "},{"type":"text","marks":[{"type":"link","attrs":{"href":"mailto:editors@ITProToday.com","target":"_self","rel":null,"class":null}}],"text":"editors@ITProToday.com"},{"type":"text","text":"."},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","marks":[{"type":"bold"}],"text":"Mailing Address"},{"type":"hardBreak"},{"type":"text","text":"303 2nd St., 9th Floor"},{"type":"hardBreak"},{"type":"text","text":"San Francisco, CA 94107"}]}],"summary":"Leading the Charge in Digital Transformation and IT"},"seo":{"canonicalUrl":"https://www.itprotoday.com/about-us","metaDescription":"The ITPro Today team is comprised of a dedicated group of reporters, editors, analysts, and industry professionals who work continuously to cover IT operations.","metaTitle":"About ITPro Today","noIndex":false,"imageUrl":"https://www.itprotoday.com/build/_assets/itprotoday-TDRQNNNW.ico"},"schema":[{"@context":"https://schema.org","@type":"NewsMediaOrganization","name":"About Us","description":"The ITPro Today team is comprised of a dedicated group of reporters, editors, analysts, and industry professionals who work continuously to cover IT operations.","url":"https://www.itprotoday.com"}],"type":"basic-page","isAuthenticated":false,"pageName":"basic"}},"actionData":null,"errors":null}};</script><script type="module" async="">import "/build/manifest-1DDC3B48.js"; import * as route0 from "/build/root-EIFOE2ED.js"; import * as route1 from "/build/routes/$topic._index-2XZHQR43.js"; window.__remixRouteModules = {"root":route0,"routes/$topic._index":route1}; import("/build/entry.client-IJHKMLWO.js");</script><script async="" defer="" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v3.2"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10