CINXE.COM
Operating Systems Recent News | 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>Operating Systems Recent News | ITPro Today</title><meta name="description" content="Explore the latest news and expert commentary on Operating Systems brought to you by the editors of ITPro Today"/><meta property="og:title" content="Operating Systems Recent News | ITPro Today"/><meta property="og:description" content="Explore the latest news and expert commentary on Operating Systems brought to you by the editors of ITPro Today"/><meta property="og:url" content="https://www.itprotoday.com/operating-systems"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.itprotoday.com/build/_assets/itprotoday-TDRQNNNW.ico"/><meta property="og:site_name" content="ITPro Today"/><link rel="canonical" href="https://www.itprotoday.com/operating-systems"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.itprotoday.com"},{"@type":"ListItem","position":2,"name":"Operating Systems","item":"https://www.itprotoday.com/operating-systems"}]}</script><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg?width=700&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><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":8.216854,"transactionName":"MhBSZQoZWEEDU0ZaXgtadUkIClNBEVpBHHYgIR8eUg==","queueTime":0,"ttGuid":"2f0bb63c64d4a0c6"}; (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&display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&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'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&types=Virtual+Event&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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=476&auto=webp&quality=80&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&sr=pp&_t=pp:&qf=w_itpb86&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&sr=pp&_t=pp:&qf=w_itpb86&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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt53af070a52be6e03/6740dfde63eae2e6b3cef491/Nadella-Ignite-1716x965_-_2024-11-22.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8484312d2456ee2c/673f2a293d97736ae4c631fb/FinOps-concept-1716x1000.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8d62652f26754e66/6650a078b58e50d58b79f554/autonomous-car-1800.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&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&auto=webp&quality=80&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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltef1c012c16d42c8e/673f31ea0b465e9d0dc63974/skills-1716x965_-_2024-09-20.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&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&auto=webp&quality=80&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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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 & 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 & 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 & 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt43ed0d8939877e78/673e1365c8592f3713678cc2/root_access_alarm_bell.gif?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf57781f189deb1bc/673b30c17a0f43d044091d3b/DevOps-1716x965.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt82f6619072e322fb/67334461514ccda012ede816/fingerprint-1716x965_-_2024-11-12T070413.515.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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 & 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt13044b7405422cb5/67363b557bfb2a6b4a43f78a/HoloLens_on_display.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta3ddc604c28a7356/67362760798a713a01062308/image-1716x1000_(7).jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt241793d56bb052d5/6731f5bfc64003eae43f7108/AIOps-1716x965_-_2024-10-29.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt09f304627bf20e3c/671a597a2184e03751062d8b/mainframe-1716x965_-_2024-10-24.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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&sr=pp&_t=pp:&qf=w_itpb86&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&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&types=Virtual+Event&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&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="topic-list"><div data-template="list-content" class="ListContent"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="TopicList-Head"><ul data-component="breadcrumb" class="Breadcrumb TopicList-Breadcrumbs"><li class="Breadcrumb-ListItem"><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-PrevIcon" 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 class="Breadcrumb-GetText Breadcrumb-GetText_isNearLastItem" data-testid="breadcrumb-link" data-discover="true" href="/">Home</a><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-NextIcon" 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></li><li class="Breadcrumb-ListItem"><a class="Breadcrumb-GetText Breadcrumb-GetText_isLastItem" data-testid="breadcrumb-link" data-discover="true" href="/operating-systems">Operating Systems</a></li></ul><div data-module="category-header" class="CategoryHeader CategoryHeader_primaryTitle"><div class="CategoryHeader-TitleWrapper CategoryHeader-TitleWrapper_primaryTitle"><div class="CategoryHeader-TitleContent"><h1 class="CategoryHeader-Title CategoryHeader-Title_primary CategoryHeader-Title_underlined" data-testid="category-header-title">Operating Systems</h1></div><div class="CategoryHeader-SponsorAdsWrapper" data-testid="category-header-sponsor-ads"></div></div><div class="CategoryHeader-ShowMoreWrapper"><span class="CategoryHeader-ShowMore" tabindex="0" role="button" aria-label="Show more topics" data-testid="category-header-show-more-button">More Topics<span class="CategoryHeader-ShowMoreIconWrapper"><span data-component="icon" data-name="ChevronDown" class="CategoryHeader-ShowMoreIcon" 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></span></div><div class="CategoryHeader-SubCategoriesWrapper" data-testid="category-header-sub-categories"><ul class="CategoryHeader-SubCategories"><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/microsoft-windows">Microsoft Windows</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/windows-server">Windows Server</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/powershell">PowerShell</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/sql-server">SQL Server</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/macos">MacOS</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/android-os">Android OS</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/chromeos">ChromeOS</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/ubuntu">Ubuntu</a></li><li><a class="CategoryHeader-SubCategory" data-testid="category-header-sub-category" data-discover="true" href="/operating-systems/red-hat-os">Red Hat OS</a></li></ul></div></div></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ListContent-Body" data-testid="list-content-body"><div class="ContentPreview ListContent-Content ListContent-Content_featured" data-module="content-preview" data-variant="summary"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_summary"><a data-testid="thumbnail" data-discover="true" href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">person using a laptop with the Ubuntu logo on its scree</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itOperations ContentPreview-Category" data-discover="true" href="/it-management/it-operations">IT Operations</a><div class="ArticlePreview"><div class="ArticlePreview-Body"><a class="ArticlePreview-Title ArticlePreview-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu">3 Simple Ways to Install and Run a Virtual Machine on Ubuntu</a><a class="ArticlePreview-Title ArticlePreview-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu">3 Simple Ways to Install and Run a Virtual Machine on Ubuntu</a><p data-testid="preview-card-summary" class="ArticlePreview-Summary">Learn how to use VirtualBox, KVM, and virt-manager to create and manage virtual machines on Ubuntu, tailored to different expertise levels and use cases.</p><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_summary Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" data-discover="true" href="/author/christopher-tozzi"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/christopher-tozzi">Christopher Tozzi</a></div></div></div><div class="ArticlePreview-Footer"><span class="ArticlePreview-Date">Nov 22, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ListContent-Content ListContent-Content_latest"><div class="ListContent-ContentWrapper"><div class="ListContent-ContentContainer"><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" data-discover="true" href="/powershell/powershell-dialog-boxes-using-button-click-actions-and-menu-selections"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a collage showing a powershell script, a dialog box, and a cursor icon clicks a button</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca171e62de18c5ba/6737a2dfc6c283c2793f4169/dialog_box_example_in_powershell.gif?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca171e62de18c5ba/6737a2dfc6c283c2793f4169/dialog_box_example_in_powershell.gif?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" data-discover="true" href="/operating-systems/powershell">PowerShell</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/powershell/powershell-dialog-boxes-using-button-click-actions-and-menu-selections">PowerShell Dialog Boxes: Using Button Click Actions and Menu Selections</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/powershell/powershell-dialog-boxes-using-button-click-actions-and-menu-selections">PowerShell Dialog Boxes: Using Button Click Actions and Menu Selections</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/brien-posey">Brien Posey</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 19, 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 ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" data-discover="true" href="/linux-os/linux-server-security-essential-guide-for-hardening-servers"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a security padlock icon in front of a dark server room</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta5bc7718637c3441/6733a1495bd1c22c7043fe50/image-1716x1000_(4).jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta5bc7718637c3441/6733a1495bd1c22c7043fe50/image-1716x1000_(4).jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_linuxOs ContentPreview-Category" data-discover="true" href="/operating-systems/linux-os">Linux OS</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/linux-os/linux-server-security-essential-guide-for-hardening-servers">Linux Server Security: Essential Guide for Hardening Servers</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/linux-server-security-essential-guide-for-hardening-servers">Linux Server Security: Essential Guide for Hardening Servers</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 13, 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></div><div class="ListContent-ContentWrapper"><div class="ListContent-ContentContainer"><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_small"><a data-testid="thumbnail" data-discover="true" href="/powershell/intro-to-microsoft-dialog-boxes-in-powershell"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">the color dialog box next to a block of related PowerShell code</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdead2e361fdbdf2e/672bf8b4bd4adf1b0d410efc/1.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdead2e361fdbdf2e/672bf8b4bd4adf1b0d410efc/1.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" data-discover="true" href="/operating-systems/powershell">PowerShell</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/powershell/intro-to-microsoft-dialog-boxes-in-powershell">Intro to Microsoft Dialog Boxes in PowerShell</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/powershell/intro-to-microsoft-dialog-boxes-in-powershell">Intro to Microsoft Dialog Boxes in PowerShell</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/brien-posey">Brien Posey</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 7, 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 ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_small"><a data-testid="thumbnail" data-discover="true" href="/microsoft-windows/exploring-ebpf-for-windows-opportunities-and-limitations"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Windows 11 logo on laptop screen</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt56aa885ffcb485b5/6728b038af496830fd936d3a/Windows-11-1716x965_-_2024-11-04.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt56aa885ffcb485b5/6728b038af496830fd936d3a/Windows-11-1716x965_-_2024-11-04.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_microsoftWindows ContentPreview-Category" data-discover="true" href="/operating-systems/microsoft-windows">Microsoft Windows</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/microsoft-windows/exploring-ebpf-for-windows-opportunities-and-limitations">Exploring eBPF for Windows: Opportunities and Limitations</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/microsoft-windows/exploring-ebpf-for-windows-opportunities-and-limitations">Exploring eBPF for Windows: Opportunities and Limitations</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/christopher-tozzi">Christopher Tozzi</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 4, 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 ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_small"><a data-testid="thumbnail" data-discover="true" href="/powershell/i-m-struggling-to-update-my-hybrid-it-environment-can-powershell-help-"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">an IT pro is thinking inside a data center as several clouds part to reveal the powershell logo</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt158a41aa292fdd30/67252a757aa93bcc67ae967c/hybrid_IT_cloud_powershell_gif.gif?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt158a41aa292fdd30/67252a757aa93bcc67ae967c/hybrid_IT_cloud_powershell_gif.gif?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" data-discover="true" href="/operating-systems/powershell">PowerShell</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" data-discover="true" href="/powershell/i-m-struggling-to-update-my-hybrid-it-environment-can-powershell-help-">I’m Struggling to Update My Hybrid IT Environment—Can Powershell Help?</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/powershell/i-m-struggling-to-update-my-hybrid-it-environment-can-powershell-help-">I’m Struggling to Update My Hybrid IT Environment—Can Powershell Help?</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/brien-posey">Brien Posey</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Nov 1, 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></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: an illustration of a powershell script connected to different files alongside the words external dependencies in powershell exe" data-discover="true" href="/powershell/how-to-make-powershell-exes-without-external-dependencies-tutorial-"><div title="an illustration of a powershell script connected to different files alongside the words external dependencies in powershell exe"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt38f703a51ce9d466/671ab835546e5b6e0baf699d/ps_exe_dependencies_hero.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt38f703a51ce9d466/671ab835546e5b6e0baf699d/ps_exe_dependencies_hero.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="an illustration of a powershell script connected to different files alongside the words external dependencies in powershell exe" title="an illustration of a powershell script connected to different files alongside the words external dependencies in powershell exe"/></div></a><a class="ListPreview-IconWrapper" title="Link to all video" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ListPreview-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><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/how-to-make-powershell-exes-without-external-dependencies-tutorial-">How To Make PowerShell EXEs Without External Dependencies (Tutorial)</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/how-to-make-powershell-exes-without-external-dependencies-tutorial-">How To Make PowerShell EXEs Without External Dependencies (Tutorial)</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 28, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>11 Min<!-- --> <!-- -->View</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: microsoft sign outside of a building" data-discover="true" href="/microsoft-windows/microsoft-is-struggling-to-retain-women-minority-employees"><div title="microsoft sign outside of a building"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71da9626306bfbe/67194ccdfeb7dd59a2839027/image-1716x1000_(5).jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71da9626306bfbe/67194ccdfeb7dd59a2839027/image-1716x1000_(5).jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="microsoft sign outside of a building" title="microsoft sign outside of a building"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_microsoftWindows ListPreview-Keyword" data-discover="true" href="/operating-systems/microsoft-windows">Microsoft Windows</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/microsoft-windows/microsoft-is-struggling-to-retain-women-minority-employees">Microsoft Is Struggling to Retain Women, Minority Employees</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/microsoft-windows/microsoft-is-struggling-to-retain-women-minority-employees">Microsoft Is Struggling to Retain Women, Minority Employees</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 23, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Bloomberg News" data-discover="true" href="/author/bloomberg-news"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bloomberg News" title="Picture of Bloomberg News"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/bloomberg-news">Bloomberg News</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears" data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool"><div title="the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears" title="the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool">How I Built My Own PowerShell Multi-File Search Tool</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool">How I Built My Own PowerShell Multi-File Search Tool</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 22, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a person looking overwhelmed by incoming urgent emails against a background of unopened emails" data-discover="true" href="/microsoft-365/can-i-use-microsoft-outlook-as-a-makeshift-helpdesk-ticketing-system-"><div title="a person looking overwhelmed by incoming urgent emails against a background of unopened emails"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2d781b21675bdf56/67114349c1c8b9611d0f7547/outlook_email_management_hero.gif?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2d781b21675bdf56/67114349c1c8b9611d0f7547/outlook_email_management_hero.gif?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a person looking overwhelmed by incoming urgent emails against a background of unopened emails" title="a person looking overwhelmed by incoming urgent emails against a background of unopened emails"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_microsoft365 ListPreview-Keyword" data-discover="true" href="/cloud-computing/cloud-services/microsoft-365">Microsoft 365</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/microsoft-365/can-i-use-microsoft-outlook-as-a-makeshift-helpdesk-ticketing-system-">Can I Use Microsoft Outlook as a Makeshift Helpdesk Ticketing System?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/microsoft-365/can-i-use-microsoft-outlook-as-a-makeshift-helpdesk-ticketing-system-">Can I Use Microsoft Outlook as a Makeshift Helpdesk Ticketing System?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a computer displays a powershell menu example with the words PowerShell Menus and an example menu floats beside it " data-discover="true" href="/powershell/how-to-create-an-interactive-powershell-menu"><div title="a computer displays a powershell menu example with the words PowerShell Menus and an example menu floats beside it "><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5259e2bf4d97d736/67095a7881e990c81cacbfcd/powershell_menu_hero.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5259e2bf4d97d736/67095a7881e990c81cacbfcd/powershell_menu_hero.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a computer displays a powershell menu example with the words PowerShell Menus and an example menu floats beside it " title="a computer displays a powershell menu example with the words PowerShell Menus and an example menu floats beside it "/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/how-to-create-an-interactive-powershell-menu">How To Create an Interactive PowerShell Menu</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/how-to-create-an-interactive-powershell-menu">How To Create an Interactive PowerShell Menu</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 14, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a digital shield icon with a keyhole next to text that says linux kernel security" data-discover="true" href="/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it"><div title="a digital shield icon with a keyhole next to text that says linux kernel security"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf99e8de69c884e47/6703e85e7c36d207b980a3fa/Linux_Kernel_Security.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf99e8de69c884e47/6703e85e7c36d207b980a3fa/Linux_Kernel_Security.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a digital shield icon with a keyhole next to text that says linux kernel security" title="a digital shield icon with a keyhole next to text that says linux kernel security"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_vulnerabilitiesThreats ListPreview-Keyword" data-discover="true" href="/it-security/vulnerabilities-threats">Vulnerabilities & Threats</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it">Linux Kernel Exploits: How Attackers Gain Root Access and How To Defend Against It</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it">Linux Kernel Exploits: Common Threats and How To Prevent Them</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 8, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" data-discover="true" href="/author/grant-knoetze"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: skills checklist" data-discover="true" href="/career-tips/10-most-in-demand-tech-skills-microsoft-office-tops-list"><div title="skills checklist"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a9a0dbd8dde321b/66fda35d90966335b5ea648b/skills-checklist-1716x965_-_2024-10-01.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a9a0dbd8dde321b/66fda35d90966335b5ea648b/skills-checklist-1716x965_-_2024-10-01.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="skills checklist" title="skills checklist"/></div></a><a class="ListPreview-IconWrapper" title="Link to all slideshow" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/slideshows"><span data-component="icon" data-name="Images" class="ListPreview-Icon" style="mask-image:url(/build/_assets/Images-OMBWO34R.svg);-webkit-mask-image:url(/build/_assets/Images-OMBWO34R.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_careerTips ListPreview-Keyword" data-discover="true" href="/career-management/career-tips">Career Tips</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/career-tips/10-most-in-demand-tech-skills-microsoft-office-tops-list">10 Most In-Demand Tech Skills: Microsoft Office Tops List</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/career-tips/10-most-in-demand-tech-skills-microsoft-office-tops-list">10 Most In-Demand Tech Skills: Microsoft Office Tops List</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 5, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>10<!-- --> <!-- -->Slides</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Nathan Eddy" data-discover="true" href="/author/nathan-eddy"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Nathan Eddy" title="Picture of Nathan Eddy"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/nathan-eddy">Nathan Eddy</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: text says securing sshs access linux tutorial and shows cartoon padlock, laptop, and computer user" data-discover="true" href="/ubuntu/how-to-secure-ssh-access-on-ubuntu-servers-video-tutorial-"><div title="text says securing sshs access linux tutorial and shows cartoon padlock, laptop, and computer user"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd604dd5379c2845e/66fc0395f7ab65a38e7c36e8/SSH_Security_for_Ubuntu_Servers_(1716_x_965_px).png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd604dd5379c2845e/66fc0395f7ab65a38e7c36e8/SSH_Security_for_Ubuntu_Servers_(1716_x_965_px).png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="text says securing sshs access linux tutorial and shows cartoon padlock, laptop, and computer user" title="text says securing sshs access linux tutorial and shows cartoon padlock, laptop, and computer user"/></div></a><a class="ListPreview-IconWrapper" title="Link to all video" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ListPreview-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><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_ubuntu ListPreview-Keyword" data-discover="true" href="/operating-systems/ubuntu">Ubuntu</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/ubuntu/how-to-secure-ssh-access-on-ubuntu-servers-video-tutorial-">How To Secure SSH Access on Ubuntu Servers (Video Tutorial)</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/ubuntu/how-to-secure-ssh-access-on-ubuntu-servers-video-tutorial-">How To Secure SSH Access on Ubuntu Servers (Video Tutorial)</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 2, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>11 Min<!-- --> <!-- -->View</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" data-discover="true" href="/author/grant-knoetze"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: technology interface with a person's hand drawing gears and cogs" data-discover="true" href="/powershell/introduction-to-powershell-environment-variables"><div title="technology interface with a person's hand drawing gears and cogs"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="technology interface with a person's hand drawing gears and cogs" title="technology interface with a person's hand drawing gears and cogs"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/introduction-to-powershell-environment-variables">Introduction To PowerShell Environment Variables</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/introduction-to-powershell-environment-variables">Introduction To PowerShell Environment Variables</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 30, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Linux written on top of code" data-discover="true" href="/linux-os/how-to-set-up-a-separate-home-partition-on-linux"><div title="Linux written on top of code"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltabb6495f68b08620/66f46941167cd5e4a5c7062b/Linux-code-1716x965_-_2024-09-25.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltabb6495f68b08620/66f46941167cd5e4a5c7062b/Linux-code-1716x965_-_2024-09-25.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Linux written on top of code" title="Linux written on top of code"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/linux-os/how-to-set-up-a-separate-home-partition-on-linux">How to Set Up a Separate /home Partition on Linux</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/how-to-set-up-a-separate-home-partition-on-linux">How to Set Up a Separate /home Partition on Linux</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 27, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Christopher Tozzi" data-discover="true" href="/author/christopher-tozzi"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Christopher Tozzi" title="Picture of Christopher Tozzi"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/christopher-tozzi">Christopher Tozzi</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: screenshots of PowerShell code fly off of a laptop screen" data-discover="true" href="/powershell/powershell-screen-capture-how-to-automate-screenshots-in-your-scripts"><div title="screenshots of PowerShell code fly off of a laptop screen"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltde3f35bf6a0be35a/66edc0b9815f1147b283e7c5/powershell_screenshots.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltde3f35bf6a0be35a/66edc0b9815f1147b283e7c5/powershell_screenshots.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="screenshots of PowerShell code fly off of a laptop screen" title="screenshots of PowerShell code fly off of a laptop screen"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/powershell-screen-capture-how-to-automate-screenshots-in-your-scripts">PowerShell Screen Captures: How To Automate Screenshots in Your Scripts</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/powershell-screen-capture-how-to-automate-screenshots-in-your-scripts">PowerShell Screen Captures: How To Automate Screenshots in Your Scripts</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 24, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a stressed employee at their laptop and collaboration icons gone amok" data-discover="true" href="/unified-communications/microsoft-teams-is-acting-up-what-can-we-do-"><div title="a stressed employee at their laptop and collaboration icons gone amok"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7b56270ec611a65b/66e07eed18feb3808eb4e03d/%E2%80%9C...Persistent_Teams_Issues...%E2%80%9D.gif?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7b56270ec611a65b/66e07eed18feb3808eb4e03d/%E2%80%9C...Persistent_Teams_Issues...%E2%80%9D.gif?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a stressed employee at their laptop and collaboration icons gone amok" title="a stressed employee at their laptop and collaboration icons gone amok"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_unifiedCommunications ListPreview-Keyword" data-discover="true" href="/cloud-computing/cloud-services/unified-communications">Unified Communications</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/unified-communications/microsoft-teams-is-acting-up-what-can-we-do-">Microsoft Teams Is Acting Up. What Can We Do?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/unified-communications/microsoft-teams-is-acting-up-what-can-we-do-">Microsoft Teams Is Acting Up. What Can We Do?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 12, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: display of new apple products and features" data-discover="true" href="/macos/apple-unveils-iphone-16-built-for-ai-apple-intelligence-coming-to-product-lineup"><div title="display of new apple products and features"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf17ab6616215e498/66e047f962c7557fe20c148c/image-1719x965_(15).jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf17ab6616215e498/66e047f962c7557fe20c148c/image-1719x965_(15).jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="display of new apple products and features" title="display of new apple products and features"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_macOs ListPreview-Keyword" data-discover="true" href="/operating-systems/macos">MacOS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/macos/apple-unveils-iphone-16-built-for-ai-apple-intelligence-coming-to-product-lineup">Apple Unveils iPhone 16 Built for AI; Apple Intelligence Coming to Product Lineup</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/macos/apple-unveils-iphone-16-built-for-ai-apple-intelligence-coming-to-product-lineup">Apple Unveils iPhone 16 Built for AI; Apple Intelligence Coming to Product Lineup</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 10, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="Liz Hughes" data-discover="true" href="/author/liz-hughes"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7bb13e1ce87144c0/66e08794308e85d45d1d6586/Untitled_design_-_2023-07-13T114540.575.png?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7bb13e1ce87144c0/66e08794308e85d45d1d6586/Untitled_design_-_2023-07-13T114540.575.png?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Liz Hughes" title="Picture of Liz Hughes"/></a><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="AI Business" data-discover="true" href="/author/ai-business"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5d5796e24048bea2/6675c3977ab673b5f8549c58/aibusiness-DR2ONH7U.ico?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5d5796e24048bea2/6675c3977ab673b5f8549c58/aibusiness-DR2ONH7U.ico?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of AI Business" title="Picture of AI Business"/></a></div><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/liz-hughes">Liz Hughes<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/ai-business">AI Business</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A cartoon of a person sitting at a computer, with speech bubbles—one from the person saying Hello and one from the computer responding with Hello" data-discover="true" href="/powershell/powershell-speech-recognition-how-to-set-up-voice-commands-and-responses"><div title="A cartoon of a person sitting at a computer, with speech bubbles—one from the person saying Hello and one from the computer responding with Hello"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0ab15143613f04da/66d9c2d9f580f073b5e13a72/speech_recognition_hero.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0ab15143613f04da/66d9c2d9f580f073b5e13a72/speech_recognition_hero.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A cartoon of a person sitting at a computer, with speech bubbles—one from the person saying Hello and one from the computer responding with Hello" title="A cartoon of a person sitting at a computer, with speech bubbles—one from the person saying Hello and one from the computer responding with Hello"/></div></a><a class="ListPreview-IconWrapper" title="Link to all video" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ListPreview-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><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/powershell-speech-recognition-how-to-set-up-voice-commands-and-responses">PowerShell Speech Recognition: How To Set up Voice Commands and Responses</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/powershell-speech-recognition-how-to-set-up-voice-commands-and-responses">PowerShell Speech Recognition: Set up Voice Commands and Responses</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 6, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>10 Min<!-- --> <!-- -->View</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a laptop infected with a virus and above it the words linux ransomware" data-discover="true" href="/linux-os/linux-ransomware-threats-how-attackers-target-linux-systems"><div title="a laptop infected with a virus and above it the words linux ransomware"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb1972aa79e23c1a8/66d724523a8d485776e1e487/linux_ransomware.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb1972aa79e23c1a8/66d724523a8d485776e1e487/linux_ransomware.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a laptop infected with a virus and above it the words linux ransomware" title="a laptop infected with a virus and above it the words linux ransomware"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/linux-os/linux-ransomware-threats-how-attackers-target-linux-systems">Linux Ransomware Threats: How Attackers Target Linux Systems</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/linux-ransomware-threats-how-attackers-target-linux-systems">Linux Ransomware Threats: How Attackers Target Linux Systems</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Sep 4, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" data-discover="true" href="/author/grant-knoetze"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a wall and fire with the words linux uncomplicated firewall (ufw) tutorial, configure and manage" data-discover="true" href="/linux-os/linux-ufw-uncomplicated-firewall-configuration-made-easy"><div title="a wall and fire with the words linux uncomplicated firewall (ufw) tutorial, configure and manage"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbd7c8f7dbc67e2/66c8c7eb9aeab424dd358da0/linux_ufw_hero.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbd7c8f7dbc67e2/66c8c7eb9aeab424dd358da0/linux_ufw_hero.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a wall and fire with the words linux uncomplicated firewall (ufw) tutorial, configure and manage" title="a wall and fire with the words linux uncomplicated firewall (ufw) tutorial, configure and manage"/></div></a><a class="ListPreview-IconWrapper" title="Link to all video" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ListPreview-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><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/linux-os/linux-ufw-uncomplicated-firewall-configuration-made-easy">Linux UFW (Uncomplicated Firewall) Configuration Made Easy</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/linux-ufw-uncomplicated-firewall-configuration-made-easy">Linux UFW (Uncomplicated Firewall) Configuration Made Easy</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 28, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>13 Min<!-- --> <!-- -->View</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" data-discover="true" href="/author/grant-knoetze"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Red Hat logo on the side of a building" data-discover="true" href="/openstack-cloud/red-hat-makes-openstack-services-generally-available"><div title="Red Hat logo on the side of a building"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc73d6d3d8f3276c7/66cdb915c8f3fe02d64615c3/Red-Hat-1716x965_-_2024-08-27.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc73d6d3d8f3276c7/66cdb915c8f3fe02d64615c3/Red-Hat-1716x965_-_2024-08-27.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Red Hat logo on the side of a building" title="Red Hat logo on the side of a building"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_openstackCloud ListPreview-Keyword" data-discover="true" href="/cloud-computing/private-cloud/openstack-cloud">Openstack Cloud</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/openstack-cloud/red-hat-makes-openstack-services-generally-available">Red Hat Makes OpenStack Services Generally Available</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/openstack-cloud/red-hat-makes-openstack-services-generally-available">Red Hat Makes OpenStack Services Generally Available</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 27, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Channel Futures" data-discover="true" href="/author/channel-futures"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaac2af83b1c03df/664bac464034763ae69be149/Channel_Futures_2024_500x500.png?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaac2af83b1c03df/664bac464034763ae69be149/Channel_Futures_2024_500x500.png?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Channel Futures" title="Picture of Channel Futures"/></a></div><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/channel-futures">Channel Futures</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: person wearing HoloLens device interacts with digital globe" data-discover="true" href="/digital-transformation/developing-immersive-hololens-apps-download-your-free-guide-"><div title="person wearing HoloLens device interacts with digital globe"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaaab2fcaa4524027/66c8a0cdcba99c1d6e2d44f4/image-1716x965_-_2024-08-23T104624.156.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaaab2fcaa4524027/66c8a0cdcba99c1d6e2d44f4/image-1716x965_-_2024-08-23T104624.156.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="person wearing HoloLens device interacts with digital globe" title="person wearing HoloLens device interacts with digital globe"/></div></a><a class="ListPreview-IconWrapper" title="Link to all document" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/documents"><span data-component="icon" data-name="Document" class="ListPreview-Icon" style="mask-image:url(/build/_assets/Document-NG4YMZFA.svg);-webkit-mask-image:url(/build/_assets/Document-NG4YMZFA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_digitalTransformation ListPreview-Keyword" data-discover="true" href="/digital-transformation">Digital Transformation</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/digital-transformation/developing-immersive-hololens-apps-download-your-free-guide-">Developing Immersive HoloLens Apps (Download Your Free Guide)</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/digital-transformation/developing-immersive-hololens-apps-download-your-free-guide-">Developing Immersive HoloLens Apps (Download Your Free Guide)</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 26, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: the Microsoft Windows Recovery screen displayed at John F. Kennedy International Airport in New York, on July 19" data-discover="true" href="/vulnerabilities-threats/microsoft-cyber-firms-to-meet-on-fixes-after-crowdstrike-crash"><div title="the Microsoft Windows Recovery screen displayed at John F. Kennedy International Airport in New York, on July 19"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb2b87f16d3c5d33c/66c8b0cff3ae867f5c303564/image-1716x965_-_2024-08-23T115446.735.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb2b87f16d3c5d33c/66c8b0cff3ae867f5c303564/image-1716x965_-_2024-08-23T115446.735.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="the Microsoft Windows Recovery screen displayed at John F. Kennedy International Airport in New York, on July 19" title="the Microsoft Windows Recovery screen displayed at John F. Kennedy International Airport in New York, on July 19"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_vulnerabilitiesThreats ListPreview-Keyword" data-discover="true" href="/it-security/vulnerabilities-threats">Vulnerabilities & Threats</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/vulnerabilities-threats/microsoft-cyber-firms-to-meet-on-fixes-after-crowdstrike-crash">Microsoft, Cyber Firms To Meet on Fixes After CrowdStrike Crash</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/vulnerabilities-threats/microsoft-cyber-firms-to-meet-on-fixes-after-crowdstrike-crash">Microsoft, Cyber Firms To Meet on Fixes After CrowdStrike Crash</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 23, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Bloomberg News" data-discover="true" href="/author/bloomberg-news"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bloomberg News" title="Picture of Bloomberg News"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/bloomberg-news">Bloomberg News</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: robot arm and laptop on the table" data-discover="true" href="/digital-transformation/how-to-build-your-first-ros-application"><div title="robot arm and laptop on the table"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt75f2ff24ee77648a/66bf655c7f44d0640a638237/image-1716x965_-_2024-08-16T103836.829.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt75f2ff24ee77648a/66bf655c7f44d0640a638237/image-1716x965_-_2024-08-16T103836.829.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="robot arm and laptop on the table" title="robot arm and laptop on the table"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_digitalTransformation ListPreview-Keyword" data-discover="true" href="/digital-transformation">Digital Transformation</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/digital-transformation/how-to-build-your-first-ros-application">How To Build Your First ROS Application</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/digital-transformation/how-to-build-your-first-ros-application">How To Build Your First ROS Application</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: the word AI above a powershell logo with arrows pointing to and from a microsoft word document" data-discover="true" href="/powershell/powershell-and-ai-create-a-basic-copilot-for-microsoft-word"><div title="the word AI above a powershell logo with arrows pointing to and from a microsoft word document"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt98bdaf2da315001c/66bcd843a3b2605cd3e21e22/powershell_ai_copilot_art.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt98bdaf2da315001c/66bcd843a3b2605cd3e21e22/powershell_ai_copilot_art.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="the word AI above a powershell logo with arrows pointing to and from a microsoft word document" title="the word AI above a powershell logo with arrows pointing to and from a microsoft word document"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/powershell-and-ai-create-a-basic-copilot-for-microsoft-word">PowerShell and AI: Create a Microsoft Word Copilot</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/powershell-and-ai-create-a-basic-copilot-for-microsoft-word">PowerShell and AI: Create a Microsoft Word Copilot</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 16, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: the words "open source" stamped on a document" data-discover="true" href="/linux-os/open-source-doesn-t-mean-a-trademark-free-for-all"><div title="the words "open source" stamped on a document"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt83adf9797b39d033/66bf20b5d998347b979ae9c5/open-source-stamp-1716x965.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt83adf9797b39d033/66bf20b5d998347b979ae9c5/open-source-stamp-1716x965.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="the words "open source" stamped on a document" title="the words "open source" stamped on a document"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/linux-os/open-source-doesn-t-mean-a-trademark-free-for-all">Open Source Doesn't Mean a Trademark Free-For-All</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/open-source-doesn-t-mean-a-trademark-free-for-all">Open Source Doesn't Mean a Trademark Free-For-All</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 16, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Forrester Blog Network" data-discover="true" href="/author/forrester-blog-network"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Forrester Blog Network" title="Picture of Forrester Blog Network"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/forrester-blog-network">Forrester Blog Network</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Google offices" data-discover="true" href="/android-os/us-considers-a-rare-antitrust-move-breaking-up-google"><div title="Google offices"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt000c9675065dff4c/66bc975d0268431619f8f688/Google-building-1716x965.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt000c9675065dff4c/66bc975d0268431619f8f688/Google-building-1716x965.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Google offices" title="Google offices"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_androidOs ListPreview-Keyword" data-discover="true" href="/operating-systems/android-os">Android OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/android-os/us-considers-a-rare-antitrust-move-breaking-up-google">US Considers a Rare Antitrust Move: Breaking Up Google</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/android-os/us-considers-a-rare-antitrust-move-breaking-up-google">US Considers a Rare Antitrust Move: Breaking Up Google</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 14, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Bloomberg News" data-discover="true" href="/author/bloomberg-news"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bloomberg News" title="Picture of Bloomberg News"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/bloomberg-news">Bloomberg News</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: photo of a robot and chart showing the steps in ROS 2 deployment process" data-discover="true" href="/digital-transformation/how-to-deploy-ros-2-on-ubuntu-22-04-a-step-by-step-guide"><div title="photo of a robot and chart showing the steps in ROS 2 deployment process"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9365261952531724/66bbdd501c62a6827d53f6c4/ROS.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9365261952531724/66bbdd501c62a6827d53f6c4/ROS.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="photo of a robot and chart showing the steps in ROS 2 deployment process" title="photo of a robot and chart showing the steps in ROS 2 deployment process"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_digitalTransformation ListPreview-Keyword" data-discover="true" href="/digital-transformation">Digital Transformation</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/digital-transformation/how-to-deploy-ros-2-on-ubuntu-22-04-a-step-by-step-guide">How To Deploy ROS 2 on Ubuntu 22.04: A Step-by-Step Guide</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/digital-transformation/how-to-deploy-ros-2-on-ubuntu-22-04-a-step-by-step-guide">How To Deploy ROS 2 on Ubuntu 22.04: A Step-by-Step Guide</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 14, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: gears on an abstract background" data-discover="true" href="/powershell/handle-long-powershell-scripts-with-background-jobs"><div title="gears on an abstract background"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt67e0623de1d8240b/66b64603d531642db759b3ca/image-1716x965_(96).jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt67e0623de1d8240b/66b64603d531642db759b3ca/image-1716x965_(96).jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="gears on an abstract background" title="gears on an abstract background"/></div></a><a class="ListPreview-IconWrapper" title="Link to all video" aria-label="Redirect to All page" data-testid="content-preview-icon-link" data-discover="true" href="/videos"><span data-component="icon" data-name="Play" class="ListPreview-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><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/handle-long-powershell-scripts-with-background-jobs">Handle Long PowerShell Scripts With Background Jobs</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/handle-long-powershell-scripts-with-background-jobs">Handle Long PowerShell Scripts With Background Jobs</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 12, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->View</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" data-discover="true" href="/author/brien-posey"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><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></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: digital shield with a keyhole" data-discover="true" href="/linux-os/introduction-to-writing-ebpf-programs-for-linux-security"><div title="digital shield with a keyhole"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9885a6803382a6af/66b39a0dc20b717ac496de15/digital_shield_with_a_keyhole.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9885a6803382a6af/66b39a0dc20b717ac496de15/digital_shield_with_a_keyhole.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="digital shield with a keyhole" title="digital shield with a keyhole"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_linuxOs ListPreview-Keyword" data-discover="true" href="/operating-systems/linux-os">Linux OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/linux-os/introduction-to-writing-ebpf-programs-for-linux-security">Introduction To Writing eBPF Programs for Linux Security</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/linux-os/introduction-to-writing-ebpf-programs-for-linux-security">Introduction To Writing eBPF Programs for Linux Security</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 8, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Grant Knoetze" data-discover="true" href="/author/grant-knoetze"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Grant Knoetze" title="Picture of Grant Knoetze"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/grant-knoetze">Grant Knoetze</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: logo for Google seen through the lens of glasses" data-discover="true" href="/android-os/google-s-antitrust-loss-is-a-hollow-victory-for-regulators"><div title="logo for Google seen through the lens of glasses"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcf5f01880e97e934/66b27c699cb293afa7b783ce/image-1716x965_(89).jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcf5f01880e97e934/66b27c699cb293afa7b783ce/image-1716x965_(89).jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="logo for Google seen through the lens of glasses" title="logo for Google seen through the lens of glasses"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_androidOs ListPreview-Keyword" data-discover="true" href="/operating-systems/android-os">Android OS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/android-os/google-s-antitrust-loss-is-a-hollow-victory-for-regulators">Google’s Antitrust Loss Is a Hollow Victory for Regulators</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/android-os/google-s-antitrust-loss-is-a-hollow-victory-for-regulators">Google’s Antitrust Loss Is a Hollow Victory for Regulators</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 6, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Bloomberg News" data-discover="true" href="/author/bloomberg-news"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bloomberg News" title="Picture of Bloomberg News"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" data-discover="true" href="/author/bloomberg-news">Bloomberg News</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: apple iphone against a background that says AI" data-discover="true" href="/macos/our-first-taste-of-apple-intelligence-is-here-here-s-what-works-"><div title="apple iphone against a background that says AI"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt79d95d2635a28398/66abd915e9c5d0164d524995/image-1716x965_(86).jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt79d95d2635a28398/66abd915e9c5d0164d524995/image-1716x965_(86).jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="apple iphone against a background that says AI" title="apple iphone against a background that says AI"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_macOs ListPreview-Keyword" data-discover="true" href="/operating-systems/macos">MacOS</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/macos/our-first-taste-of-apple-intelligence-is-here-here-s-what-works-">Our First Taste of ‘Apple Intelligence’ Is Here. Here’s What Works.</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/macos/our-first-taste-of-apple-intelligence-is-here-here-s-what-works-">Our First Taste of ‘Apple Intelligence’ Is Here. Here’s What Works.</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Aug 1, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="The Washington Post" data-discover="true" href="/author/the-washington-post"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt934dc95cced9fbe8/6613c9f64cef4f3fba38424c/wapo-logo.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt934dc95cced9fbe8/6613c9f64cef4f3fba38424c/wapo-logo.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of The Washington Post" title="Picture of The Washington Post"/></a></div><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/the-washington-post">The Washington Post</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: a powershell logo next to the words powershell tips and tricks midyear roundup on a tech themed background " data-discover="true" href="/powershell/top-10-powershell-tips-and-tricks-of-2024-so-far-"><div title="a powershell logo next to the words powershell tips and tricks midyear roundup on a tech themed background "><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt93e239e40332ac1e/66a3d1d1c489aee9d06d3402/Virtual.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt93e239e40332ac1e/66a3d1d1c489aee9d06d3402/Virtual.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="a powershell logo next to the words powershell tips and tricks midyear roundup on a tech themed background " title="a powershell logo next to the words powershell tips and tricks midyear roundup on a tech themed background "/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell ListPreview-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/top-10-powershell-tips-and-tricks-of-2024-so-far-">Top 10 PowerShell Tips and Tricks of 2024 (So Far)</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/top-10-powershell-tips-and-tricks-of-2024-so-far-">Top 10 PowerShell Tips and Tricks of 2024 (So Far)</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jul 29, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="ITPro Today Staff" data-discover="true" href="/author/itpro-today-staff"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cc8025f87b35f78/6647125c6e488f989a4ccdc7/ITP_ContributorPlaceholder.png?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cc8025f87b35f78/6647125c6e488f989a4ccdc7/ITP_ContributorPlaceholder.png?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of ITPro Today Staff" title="Picture of ITPro Today Staff"/></a></div><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/itpro-today-staff">ITPro Today Staff</a></div></div></div></div></div><nav role="navigation" aria-label="Pagination Navigation" data-component="pagination" class="ListContent-Pagination"><ul class="Pagination-Wrapper"><li><a tabindex="-1" aria-label="Cannot go to Previous page" class="Pagination-Link Pagination-Link_disabled" data-discover="true" href="/operating-systems"><span class="Pagination-PageWrapper"><span class="Pagination-ArrowIconWrapper Pagination-ArrowIconWrapper_disabled"><span data-component="icon" data-name="ArrowLeft" class="Pagination-ArrowIcon Pagination-ArrowIcon_disabled" style="mask-image:url(/build/_assets/ArrowLeft-LJREXKU3.svg);-webkit-mask-image:url(/build/_assets/ArrowLeft-LJREXKU3.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span><span data-testid="labelText" class="Pagination-Move">Previous</span></span></a></li><li><a tabindex="-1" aria-label="Current page, page 1" class="Pagination-PageNumber Pagination-PageNumber_current" data-discover="true" href="/operating-systems">1</a></li><li><a tabindex="0" aria-label="Go to page 2" class="Pagination-PageNumber" data-discover="true" href="/operating-systems?page=2">2</a></li><li><a tabindex="0" aria-label="Go to page 3" class="Pagination-PageNumber" data-discover="true" href="/operating-systems?page=3">3</a></li><li><a tabindex="0" aria-label="Go to page 4" class="Pagination-PageNumber" data-discover="true" href="/operating-systems?page=4">4</a></li><li><a tabindex="0" aria-label="Go to page 5" class="Pagination-PageNumber" data-discover="true" href="/operating-systems?page=5">5</a></li><li class="Pagination-Dots">…</li><li><a tabindex="0" aria-label="Go to page 533" class="Pagination-PageNumber Pagination-PageNumber_desktop" data-discover="true" href="/operating-systems?page=533">533</a></li><li><a tabindex="0" aria-label="Go to Next page 2" class="Pagination-Link" data-discover="true" href="/operating-systems?page=2"><span class="Pagination-PageWrapper"><span data-testid="labelText" class="Pagination-Move">Next</span><span class="Pagination-ArrowIconWrapper"><span data-component="icon" data-name="ArrowRight" class="Pagination-ArrowIcon" style="mask-image:url(/build/_assets/ArrowRight-KNUWEVNZ.svg);-webkit-mask-image:url(/build/_assets/ArrowRight-KNUWEVNZ.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></span></a></li></ul></nav></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Editor's Choice</h3></div><div class="ContentCards-Content ContentCards-Content_default"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool"><span class="HorizontalCard-ImageScreenReaderText">the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_powerShell HorizontalCard-Keyword" data-discover="true" href="/operating-systems/powershell">PowerShell</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool">How I Built My Own PowerShell Multi-File Search Tool</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/powershell/how-i-built-my-own-powershell-multi-file-search-tool">How I Built My Own PowerShell Multi-File Search Tool</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Oct 22, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/career-tips/am-i-burned-out-how-to-identify-and-address-burnout-in-it"><span class="HorizontalCard-ImageScreenReaderText">burnout gif featuring a mannequin surrounded by office technology on fire</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf8db9c6bab6974be/67191ffa32efaa4f10cc0da3/burnout_gif.gif?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf8db9c6bab6974be/67191ffa32efaa4f10cc0da3/burnout_gif.gif?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_careerTips HorizontalCard-Keyword" data-discover="true" href="/career-management/career-tips">Career Tips</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/career-tips/am-i-burned-out-how-to-identify-and-address-burnout-in-it">Am I Burned Out? How To Identify and Address Burnout in IT</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/career-tips/am-i-burned-out-how-to-identify-and-address-burnout-in-it">Am I Burned Out? How To Identify and Address Burnout in IT</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Oct 24, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/ops-and-more/choosing-between-cloud-and-on-prem-mlops-what-s-best-for-your-needs-"><span class="HorizontalCard-ImageScreenReaderText">MLOps</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6848a0ecb0125906/6718d881c3b38d9d32d538ac/ML-1716x965_-_2024-10-23.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6848a0ecb0125906/6718d881c3b38d9d32d538ac/ML-1716x965_-_2024-10-23.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_opsAndMore HorizontalCard-Keyword" data-discover="true" href="/it-management/ops-and-more">Ops and More</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/ops-and-more/choosing-between-cloud-and-on-prem-mlops-what-s-best-for-your-needs-">Choosing Between Cloud and On-Prem MLOps: What's Best for Your Needs?</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/ops-and-more/choosing-between-cloud-and-on-prem-mlops-what-s-best-for-your-needs-">Choosing Between Cloud and On-Prem MLOps: What's Best for Your Needs?</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Oct 23, 2024</p></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="Document" class="ContentList-Icon" style="mask-image:url(/build/_assets/Document-NG4YMZFA.svg);-webkit-mask-image:url(/build/_assets/Document-NG4YMZFA.svg);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Exclusive ITPro Resources</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a data-testid="content-list-item-title" data-discover="true" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" target=""><p class="ContentList-ListItemTitle">BCDR Basics: A Quick Reference Guide for Business Continuity & Disaster Recovery</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Oct 10, 2024<div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" data-discover="true" href="/career-management/itpro-today-s-2024-it-priorities-report" target=""><p class="ContentList-ListItemTitle">ITPro Today’s 2024 IT Priorities Report</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Sep 25, 2024<div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" data-discover="true" href="/career-management/tech-careers-quick-reference-guide-to-it-job-titles" target=""><p class="ContentList-ListItemTitle">Tech Careers: Quick Reference Guide to IT Job Titles</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Sep 13, 2024<div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" data-discover="true" href="/vmware/migrating-from-vmware-guide-to-a-successful-transition" target=""><p class="ContentList-ListItemTitle">Migrating From VMware: Guide to a Successful Transition</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Sep 3, 2024<div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" data-discover="true" href="/documents" target="_blank">See all ITPro Resources</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" 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></span></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Featured Technical Explainers</h3></div><div class="ContentCards-Content ContentCards-Content_default"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads"><span class="HorizontalCard-ImageScreenReaderText">AI chip</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfec5fcbd31c7f2a6/673b100cd675084d0707e288/AI-chip-1716x965_-_2024-11-18.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfec5fcbd31c7f2a6/673b100cd675084d0707e288/AI-chip-1716x965_-_2024-11-18.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cloudComputing HorizontalCard-Keyword" data-discover="true" href="/cloud-computing">Cloud Computing</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads">Cloud vs. On-Prem AI Accelerators: Choosing the Best Fit for Your AI Workloads</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads">Cloud vs. On-Prem AI Accelerators: Choosing the Best Fit for Your AI Workloads</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees"><span class="HorizontalCard-ImageScreenReaderText">SaaS concept on a tablet</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd277e0c4548d3c42/673278ac8d8bc463268a48b4/SaaS-1716x965_-_2024-11-11.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd277e0c4548d3c42/673278ac8d8bc463268a48b4/SaaS-1716x965_-_2024-11-11.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_cloudComputing HorizontalCard-Keyword" data-discover="true" href="/cloud-computing">Cloud Computing</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees">Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees">Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a data-discover="true" href="/devops/devops-key-to-faster-more-efficient-government-software-development"><span class="HorizontalCard-ImageScreenReaderText">DevOps logo on top of code</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdf272a7a39b366c2/672b48253c936766d5282090/DevOps-code-1716x965_-_2024-09-06.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdf272a7a39b366c2/672b48253c936766d5282090/DevOps-code-1716x965_-_2024-09-06.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_devOps HorizontalCard-Keyword" data-discover="true" href="/it-management/devops">DevOps</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" data-discover="true" href="/devops/devops-key-to-faster-more-efficient-government-software-development">DevOps: Key to Faster, More Efficient Government Software Development</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" data-discover="true" href="/devops/devops-key-to-faster-more-efficient-government-software-development">DevOps: Key to Faster, More Efficient Government Software Development</a></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_vertical"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Sign up for the ITPro Today newsletter</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message">Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.</div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_itpb86&ch=itpsitebtn" target="_blank" rel="nofollow" data-name="subscribe-banner" data-action-type="sign-up"><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Recent What Is</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">cartoon shows a person next to a checklist and several icons that represent disaster scenarios</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd6267f0056e427cb/6707f1e94c215e0bdbe8db2f/image-1795x965_(2).jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd6267f0056e427cb/6707f1e94c215e0bdbe8db2f/image-1795x965_(2).jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_disasterRecovery ContentPreview-Category" data-discover="true" href="/data-storage/disaster-recovery">Disaster Recovery</a><a class="ContentPreview-IconWrapper" title="Link to all document" data-testid="content-preview-icon-link" data-discover="true" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery"><span data-component="icon" data-name="Document" class="ContentPreview-Icon" style="mask-image:url(/build/_assets/Document-NG4YMZFA.svg);-webkit-mask-image:url(/build/_assets/Document-NG4YMZFA.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="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery">BCDR Basics: A Quick Reference Guide for Business Continuity & Disaster Recovery</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery">BCDR Basics: A Quick Reference Guide for IT Pros</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" data-discover="true" href="/powershell/introduction-to-powershell-environment-variables"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">technology interface with a person's hand drawing gears and cogs</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_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/introduction-to-powershell-environment-variables">Introduction To PowerShell Environment Variables</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" data-discover="true" href="/powershell/introduction-to-powershell-environment-variables">Introduction To PowerShell Environment Variables</a></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="ListContent-NewsletterSignupPromo"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_vertical TopicList-NewsletterContent"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Sign up for the ITPro Today newsletter</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message">Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.</div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_itpb86&ch=itpsitebtn" target="_blank" rel="nofollow" data-name="subscribe-banner" data-action-type="sign-up"><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png?width=700&auto=webp&quality=80&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&sr=pp&_t=pp:&qf=w_itpb86&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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt677f6470bd1b54d5/65d7393aac9ea2040a7bf57c/InformaTechBTYB_240x60.png?width=700&auto=webp&quality=80&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>((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\":8.216854,\"transactionName\":\"MhBSZQoZWEEDU0ZaXgtadUkIClNBEVpBHHYgIR8eUg==\",\"queueTime\":0,\"ttGuid\":\"2f0bb63c64d4a0c6\"}; (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":{"template":{"title":"Operating Systems","categories":[{"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"}],"categoryDesc":"","variant":"primary","breadcrumbs":[{"url":"/","title":"Home"},{"title":"Operating Systems","url":"/operating-systems"}],"newsletterSignUpPromo":{"title":"Sign up for the ITPro Today newsletter","message":"Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.","newsletterId":"blt96562e27e259477c","buttonText":"Newsletter Sign-Up","variant":"vertical","mode":"dark"},"pagination":{"totalCount":533,"currentPage":1},"contents":[{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg","alt":"person using a laptop with the Ubuntu logo on its scree"},"contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"articleName":"3 Simple Ways to Install and Run a Virtual Machine on Ubuntu","mobileHeadline":"3 Simple Ways to Install and Run a Virtual Machine on Ubuntu","articleUrl":"/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu","linkAttrs":{},"listPageUrl":"","date":"Nov 22, 2024","webinarStartTime":"","articleSummary":"Learn how to use VirtualBox, KVM, and virt-manager to create and manage virtual machines on Ubuntu, tailored to different expertise levels and use cases.","articleBodyJsonSummary":"","variant":"normal","categoryName":"IT Operations","categoryUrl":"/it-management/it-operations","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltca171e62de18c5ba/6737a2dfc6c283c2793f4169/dialog_box_example_in_powershell.gif","alt":"a collage showing a powershell script, a dialog box, and a cursor icon clicks a button"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"PowerShell Dialog Boxes: Using Button Click Actions and Menu Selections","mobileHeadline":"PowerShell Dialog Boxes: Using Button Click Actions and Menu Selections","articleUrl":"/powershell/powershell-dialog-boxes-using-button-click-actions-and-menu-selections","linkAttrs":{},"listPageUrl":"","date":"Nov 19, 2024","webinarStartTime":"","articleSummary":"This article builds on previous PowerShell GUI techniques by demonstrating how to open dialog boxes through button click actions and menu selections.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta5bc7718637c3441/6733a1495bd1c22c7043fe50/image-1716x1000_(4).jpg","alt":"a security padlock icon in front of a dark server room"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"Linux Server Security: Essential Guide for Hardening Servers","mobileHeadline":"Linux Server Security: Essential Guide for Hardening Servers","articleUrl":"/linux-os/linux-server-security-essential-guide-for-hardening-servers","linkAttrs":{},"listPageUrl":"","date":"Nov 13, 2024","webinarStartTime":"","articleSummary":"With Linux systems increasingly under threat, this guide outlines essential security practices to harden Linux servers.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdead2e361fdbdf2e/672bf8b4bd4adf1b0d410efc/1.png","alt":"the color dialog box next to a block of related PowerShell code"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Intro to Microsoft Dialog Boxes in PowerShell","mobileHeadline":"Intro to Microsoft Dialog Boxes in PowerShell","articleUrl":"/powershell/intro-to-microsoft-dialog-boxes-in-powershell","linkAttrs":{},"listPageUrl":"","date":"Nov 7, 2024","webinarStartTime":"","articleSummary":"Learn how to create GUIs in PowerShell that use Microsoft dialog boxes. Part 1 of this series explains the benefits of using dialog boxes and how to get started. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt56aa885ffcb485b5/6728b038af496830fd936d3a/Windows-11-1716x965_-_2024-11-04.jpg","alt":"Windows 11 logo on laptop screen"},"contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"articleName":"Exploring eBPF for Windows: Opportunities and Limitations","mobileHeadline":"Exploring eBPF for Windows: Opportunities and Limitations","articleUrl":"/microsoft-windows/exploring-ebpf-for-windows-opportunities-and-limitations","linkAttrs":{},"listPageUrl":"","date":"Nov 4, 2024","webinarStartTime":"","articleSummary":"Windows users can now experiment with eBPF, but significant limitations mean this powerful Linux tool isn't ready for production on Windows yet.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Microsoft Windows","categoryUrl":"/operating-systems/microsoft-windows","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt158a41aa292fdd30/67252a757aa93bcc67ae967c/hybrid_IT_cloud_powershell_gif.gif","alt":"an IT pro is thinking inside a data center as several clouds part to reveal the powershell logo"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"I’m Struggling to Update My Hybrid IT Environment—Can Powershell Help?","mobileHeadline":"I’m Struggling to Update My Hybrid IT Environment—Can Powershell Help?","articleUrl":"/powershell/i-m-struggling-to-update-my-hybrid-it-environment-can-powershell-help-","linkAttrs":{},"listPageUrl":"","date":"Nov 1, 2024","webinarStartTime":"","articleSummary":"An IT pro seeks to streamline patch deployment using PowerShell. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Video","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt38f703a51ce9d466/671ab835546e5b6e0baf699d/ps_exe_dependencies_hero.png","alt":"an illustration of a powershell script connected to different files alongside the words external dependencies in powershell exe"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"How To Make PowerShell EXEs Without External Dependencies (Tutorial)","mobileHeadline":"How To Make PowerShell EXEs Without External Dependencies (Tutorial)","articleUrl":"/powershell/how-to-make-powershell-exes-without-external-dependencies-tutorial-","linkAttrs":{},"listPageUrl":"/videos","date":"Oct 28, 2024","webinarStartTime":"","articleSummary":"Learn how to handle external dependencies when converting PowerShell scripts into executables with PS2EXE. This approach simplifies deployment for PowerShellers looking to create robust, standalone executables.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":11,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf71da9626306bfbe/67194ccdfeb7dd59a2839027/image-1716x1000_(5).jpg","alt":"microsoft sign outside of a building"},"contributors":[{"name":"Bloomberg News","link":"/author/bloomberg-news","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg"}],"articleName":"Microsoft Is Struggling to Retain Women, Minority Employees","mobileHeadline":"Microsoft Is Struggling to Retain Women, Minority Employees","articleUrl":"/microsoft-windows/microsoft-is-struggling-to-retain-women-minority-employees","linkAttrs":{},"listPageUrl":"","date":"Oct 23, 2024","webinarStartTime":"","articleSummary":"The software giant attributed the trends to poaching by rivals, as well as a continued shift away from its physical and online retail business.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Microsoft Windows","categoryUrl":"/operating-systems/microsoft-windows","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png","alt":"the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"How I Built My Own PowerShell Multi-File Search Tool","mobileHeadline":"How I Built My Own PowerShell Multi-File Search Tool","articleUrl":"/powershell/how-i-built-my-own-powershell-multi-file-search-tool","linkAttrs":{},"listPageUrl":"","date":"Oct 22, 2024","webinarStartTime":"","articleSummary":"A problem with Windows Search prompted the creation of a custom PowerShell tool for searching code fragments. Learn about the tool's development and its script.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2d781b21675bdf56/67114349c1c8b9611d0f7547/outlook_email_management_hero.gif","alt":"a person looking overwhelmed by incoming urgent emails against a background of unopened emails"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Can I Use Microsoft Outlook as a Makeshift Helpdesk Ticketing System?","mobileHeadline":"Can I Use Microsoft Outlook as a Makeshift Helpdesk Ticketing System?","articleUrl":"/microsoft-365/can-i-use-microsoft-outlook-as-a-makeshift-helpdesk-ticketing-system-","linkAttrs":{},"listPageUrl":"","date":"Oct 18, 2024","webinarStartTime":"","articleSummary":"We explore how Outlook might function as a DIY helpdesk ticketing system. Learn about using email templates, rules, categories, search folders, and other Outlook features.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Microsoft 365","categoryUrl":"/cloud-computing/cloud-services/microsoft-365","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5259e2bf4d97d736/67095a7881e990c81cacbfcd/powershell_menu_hero.png","alt":"a computer displays a powershell menu example with the words PowerShell Menus and an example menu floats beside it "},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"How To Create an Interactive PowerShell Menu","mobileHeadline":"How To Create an Interactive PowerShell Menu ","articleUrl":"/powershell/how-to-create-an-interactive-powershell-menu","linkAttrs":{},"listPageUrl":"","date":"Oct 14, 2024","webinarStartTime":"","articleSummary":"Learn how to build conventional menus in PowerShell GUI applications. We will explore three techniques for making menu items interactive.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf99e8de69c884e47/6703e85e7c36d207b980a3fa/Linux_Kernel_Security.png","alt":"a digital shield icon with a keyhole next to text that says linux kernel security"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"Linux Kernel Exploits: How Attackers Gain Root Access and How To Defend Against It","mobileHeadline":"Linux Kernel Exploits: Common Threats and How To Prevent Them","articleUrl":"/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it","linkAttrs":{},"listPageUrl":"","date":"Oct 8, 2024","webinarStartTime":"","articleSummary":"Learn about Linux kernel threats, including buffer overflows and use-after-free vulnerabilities, and implement effective defense strategies.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Vulnerabilities \u0026 Threats","categoryUrl":"/it-security/vulnerabilities-threats","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Slideshow","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a9a0dbd8dde321b/66fda35d90966335b5ea648b/skills-checklist-1716x965_-_2024-10-01.jpg","alt":"skills checklist"},"contributors":[{"name":"Nathan Eddy","link":"/author/nathan-eddy","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp"}],"articleName":"10 Most In-Demand Tech Skills: Microsoft Office Tops List","mobileHeadline":"10 Most In-Demand Tech Skills: Microsoft Office Tops List","articleUrl":"/career-tips/10-most-in-demand-tech-skills-microsoft-office-tops-list","linkAttrs":{},"listPageUrl":"/slideshows","date":"Oct 5, 2024","webinarStartTime":"","articleSummary":"This slideshow reveals the most sought-after tech skills among employers, highlighting the importance of fundamental productivity software in a tech-driven job market.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Career Tips","categoryUrl":"/career-management/career-tips","timeRead":10,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Video","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd604dd5379c2845e/66fc0395f7ab65a38e7c36e8/SSH_Security_for_Ubuntu_Servers_(1716_x_965_px).png","alt":"text says securing sshs access linux tutorial and shows cartoon padlock, laptop, and computer user"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"How To Secure SSH Access on Ubuntu Servers (Video Tutorial)","mobileHeadline":"How To Secure SSH Access on Ubuntu Servers (Video Tutorial)","articleUrl":"/ubuntu/how-to-secure-ssh-access-on-ubuntu-servers-video-tutorial-","linkAttrs":{},"listPageUrl":"/videos","date":"Oct 2, 2024","webinarStartTime":"","articleSummary":"SSH (Secure Shell) is a powerful tool for managing servers remotely, but it can be vulnerable to attacks without proper security measures. Follow these 10 steps to secure SSH access on Ubuntu servers.\n","articleBodyJsonSummary":"","variant":"normal","categoryName":"Ubuntu","categoryUrl":"/operating-systems/ubuntu","timeRead":11,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png","alt":"technology interface with a person's hand drawing gears and cogs"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Introduction To PowerShell Environment Variables","mobileHeadline":"Introduction To PowerShell Environment Variables","articleUrl":"/powershell/introduction-to-powershell-environment-variables","linkAttrs":{},"listPageUrl":"","date":"Sep 30, 2024","webinarStartTime":"","articleSummary":"Learn how to use PowerShell to manage your system's environment variables.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltabb6495f68b08620/66f46941167cd5e4a5c7062b/Linux-code-1716x965_-_2024-09-25.jpg","alt":"Linux written on top of code"},"contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"articleName":"How to Set Up a Separate /home Partition on Linux","mobileHeadline":"How to Set Up a Separate /home Partition on Linux","articleUrl":"/linux-os/how-to-set-up-a-separate-home-partition-on-linux","linkAttrs":{},"listPageUrl":"","date":"Sep 27, 2024","webinarStartTime":"","articleSummary":"By creating a separate /home partition, Linux users can preserve personal files and settings during OS reinstallations, avoiding data loss and simplifying the migration process.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltde3f35bf6a0be35a/66edc0b9815f1147b283e7c5/powershell_screenshots.png","alt":"screenshots of PowerShell code fly off of a laptop screen"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"PowerShell Screen Captures: How To Automate Screenshots in Your Scripts","mobileHeadline":"PowerShell Screen Captures: How To Automate Screenshots in Your Scripts","articleUrl":"/powershell/powershell-screen-capture-how-to-automate-screenshots-in-your-scripts","linkAttrs":{},"listPageUrl":"","date":"Sep 24, 2024","webinarStartTime":"","articleSummary":"Learn to modify your PowerShell scripts to capture and save screenshots. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7b56270ec611a65b/66e07eed18feb3808eb4e03d/“...Persistent_Teams_Issues...”.gif","alt":"a stressed employee at their laptop and collaboration icons gone amok"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Microsoft Teams Is Acting Up. What Can We Do?","mobileHeadline":"Microsoft Teams Is Acting Up. What Can We Do?","articleUrl":"/unified-communications/microsoft-teams-is-acting-up-what-can-we-do-","linkAttrs":{},"listPageUrl":"","date":"Sep 12, 2024","webinarStartTime":"","articleSummary":"Users have reported three issues: files randomly disappearing, phantom notifications for messages that don't exist, and persistent audio feedback during meetings.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Unified Communications","categoryUrl":"/cloud-computing/cloud-services/unified-communications","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf17ab6616215e498/66e047f962c7557fe20c148c/image-1719x965_(15).jpg","alt":"display of new apple products and features"},"contributors":[{"name":"Liz Hughes","link":"/author/liz-hughes","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt7bb13e1ce87144c0/66e08794308e85d45d1d6586/Untitled_design_-_2023-07-13T114540.575.png"},{"name":"AI Business","link":"/author/ai-business","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt5d5796e24048bea2/6675c3977ab673b5f8549c58/aibusiness-DR2ONH7U.ico"}],"articleName":"Apple Unveils iPhone 16 Built for AI; Apple Intelligence Coming to Product Lineup","mobileHeadline":"Apple Unveils iPhone 16 Built for AI; Apple Intelligence Coming to Product Lineup","articleUrl":"/macos/apple-unveils-iphone-16-built-for-ai-apple-intelligence-coming-to-product-lineup","linkAttrs":{},"listPageUrl":"","date":"Sep 10, 2024","webinarStartTime":"","articleSummary":"The personal intelligence system is scheduled to roll out next month for the iPhone, iPad and Mac.","articleBodyJsonSummary":"","variant":"normal","categoryName":"MacOS","categoryUrl":"/operating-systems/macos","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Video","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt0ab15143613f04da/66d9c2d9f580f073b5e13a72/speech_recognition_hero.png","alt":"A cartoon of a person sitting at a computer, with speech bubbles—one from the person saying Hello and one from the computer responding with Hello"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"PowerShell Speech Recognition: How To Set up Voice Commands and Responses","mobileHeadline":"PowerShell Speech Recognition: Set up Voice Commands and Responses","articleUrl":"/powershell/powershell-speech-recognition-how-to-set-up-voice-commands-and-responses","linkAttrs":{},"listPageUrl":"/videos","date":"Sep 6, 2024","webinarStartTime":"","articleSummary":"Learn how to create a PowerShell script that can listen to your voice and respond with spoken words.","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":10,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb1972aa79e23c1a8/66d724523a8d485776e1e487/linux_ransomware.png","alt":"a laptop infected with a virus and above it the words linux ransomware"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"Linux Ransomware Threats: How Attackers Target Linux Systems","mobileHeadline":"Linux Ransomware Threats: How Attackers Target Linux Systems","articleUrl":"/linux-os/linux-ransomware-threats-how-attackers-target-linux-systems","linkAttrs":{},"listPageUrl":"","date":"Sep 4, 2024","webinarStartTime":"","articleSummary":"Ransomware has evolved to target Linux systems. Learn about methods for infection and how to protect your IT environments from attacks.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Video","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbd7c8f7dbc67e2/66c8c7eb9aeab424dd358da0/linux_ufw_hero.png","alt":"a wall and fire with the words linux uncomplicated firewall (ufw) tutorial, configure and manage"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"Linux UFW (Uncomplicated Firewall) Configuration Made Easy","mobileHeadline":"Linux UFW (Uncomplicated Firewall) Configuration Made Easy","articleUrl":"/linux-os/linux-ufw-uncomplicated-firewall-configuration-made-easy","linkAttrs":{},"listPageUrl":"/videos","date":"Aug 28, 2024","webinarStartTime":"","articleSummary":"Learn how to configure and manage a firewall using UFW, a critical skill for securing Linux systems.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":13,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc73d6d3d8f3276c7/66cdb915c8f3fe02d64615c3/Red-Hat-1716x965_-_2024-08-27.jpg","alt":"Red Hat logo on the side of a building"},"contributors":[{"name":"Channel Futures","link":"/author/channel-futures","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdaac2af83b1c03df/664bac464034763ae69be149/Channel_Futures_2024_500x500.png"}],"articleName":"Red Hat Makes OpenStack Services Generally Available","mobileHeadline":"Red Hat Makes OpenStack Services Generally Available","articleUrl":"/openstack-cloud/red-hat-makes-openstack-services-generally-available","linkAttrs":{},"listPageUrl":"","date":"Aug 27, 2024","webinarStartTime":"","articleSummary":"The open source platform provider has made its latest version of OpenStack Services available to better serve telecom providers.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Openstack Cloud","categoryUrl":"/cloud-computing/private-cloud/openstack-cloud","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Document","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltaaab2fcaa4524027/66c8a0cdcba99c1d6e2d44f4/image-1716x965_-_2024-08-23T104624.156.jpg","alt":"person wearing HoloLens device interacts with digital globe"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Developing Immersive HoloLens Apps (Download Your Free Guide)","mobileHeadline":"Developing Immersive HoloLens Apps (Download Your Free Guide)","articleUrl":"/digital-transformation/developing-immersive-hololens-apps-download-your-free-guide-","linkAttrs":{},"listPageUrl":"/documents","date":"Aug 26, 2024","webinarStartTime":"","articleSummary":"Step into the world of augmented reality with our comprehensive three-part guide on developing HoloLens 2 applications.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Digital Transformation","categoryUrl":"/digital-transformation","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb2b87f16d3c5d33c/66c8b0cff3ae867f5c303564/image-1716x965_-_2024-08-23T115446.735.jpg","alt":"the Microsoft Windows Recovery screen displayed at John F. Kennedy International Airport in New York, on July 19"},"contributors":[{"name":"Bloomberg News","link":"/author/bloomberg-news","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg"}],"articleName":"Microsoft, Cyber Firms To Meet on Fixes After CrowdStrike Crash","mobileHeadline":"Microsoft, Cyber Firms To Meet on Fixes After CrowdStrike Crash","articleUrl":"/vulnerabilities-threats/microsoft-cyber-firms-to-meet-on-fixes-after-crowdstrike-crash","linkAttrs":{},"listPageUrl":"","date":"Aug 23, 2024","webinarStartTime":"","articleSummary":"The global IT issue ensnared Windows computers, sparking concern.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Vulnerabilities \u0026 Threats","categoryUrl":"/it-security/vulnerabilities-threats","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt75f2ff24ee77648a/66bf655c7f44d0640a638237/image-1716x965_-_2024-08-16T103836.829.jpg","alt":"robot arm and laptop on the table"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"How To Build Your First ROS Application","mobileHeadline":"How To Build Your First ROS Application","articleUrl":"/digital-transformation/how-to-build-your-first-ros-application","linkAttrs":{},"listPageUrl":"","date":"Aug 20, 2024","webinarStartTime":"","articleSummary":"In this tutorial to deploying ROS, you will learn how to build a sample application to test your ROS 2 setup on Ubuntu 22.04. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"Digital Transformation","categoryUrl":"/digital-transformation","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt98bdaf2da315001c/66bcd843a3b2605cd3e21e22/powershell_ai_copilot_art.png","alt":"the word AI above a powershell logo with arrows pointing to and from a microsoft word document"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"PowerShell and AI: Create a Microsoft Word Copilot","mobileHeadline":"PowerShell and AI: Create a Microsoft Word Copilot","articleUrl":"/powershell/powershell-and-ai-create-a-basic-copilot-for-microsoft-word","linkAttrs":{},"listPageUrl":"","date":"Aug 16, 2024","webinarStartTime":"","articleSummary":"Explore a PowerShell script that allows users to interact with a Word document using natural language queries, inspired by Microsoft’s Copilot. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt83adf9797b39d033/66bf20b5d998347b979ae9c5/open-source-stamp-1716x965.jpg","alt":"the words \"open source\" stamped on a document"},"contributors":[{"name":"Forrester Blog Network","link":"/author/forrester-blog-network","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfaedff1acefcdf54/665892e6ca5ec11c141bd360/forrester-logo.png"}],"articleName":"Open Source Doesn't Mean a Trademark Free-For-All","mobileHeadline":"Open Source Doesn't Mean a Trademark Free-For-All","articleUrl":"/linux-os/open-source-doesn-t-mean-a-trademark-free-for-all","linkAttrs":{},"listPageUrl":"","date":"Aug 16, 2024","webinarStartTime":"","articleSummary":"Open-source licenses give you rights to copy, and in some cases, they define patent rights and responsibilities, but when they mention trademarks at all, most of them exclude rights rather than include them.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt000c9675065dff4c/66bc975d0268431619f8f688/Google-building-1716x965.jpg","alt":"Google offices"},"contributors":[{"name":"Bloomberg News","link":"/author/bloomberg-news","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg"}],"articleName":"US Considers a Rare Antitrust Move: Breaking Up Google","mobileHeadline":"US Considers a Rare Antitrust Move: Breaking Up Google","articleUrl":"/android-os/us-considers-a-rare-antitrust-move-breaking-up-google","linkAttrs":{},"listPageUrl":"","date":"Aug 14, 2024","webinarStartTime":"","articleSummary":"This action would mark Washington's first attempt to break up a company for illegal monopolization since the failed bid to dismantle Microsoft two decades ago.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Android OS","categoryUrl":"/operating-systems/android-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9365261952531724/66bbdd501c62a6827d53f6c4/ROS.png","alt":"photo of a robot and chart showing the steps in ROS 2 deployment process"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"How To Deploy ROS 2 on Ubuntu 22.04: A Step-by-Step Guide","mobileHeadline":"How To Deploy ROS 2 on Ubuntu 22.04: A Step-by-Step Guide","articleUrl":"/digital-transformation/how-to-deploy-ros-2-on-ubuntu-22-04-a-step-by-step-guide","linkAttrs":{},"listPageUrl":"","date":"Aug 14, 2024","webinarStartTime":"","articleSummary":"From installing the ROS key to setting up the environment, we will walk you through everything you need to get started.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Digital Transformation","categoryUrl":"/digital-transformation","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Video","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt67e0623de1d8240b/66b64603d531642db759b3ca/image-1716x965_(96).jpg","alt":"gears on an abstract background"},"contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"articleName":"Handle Long PowerShell Scripts With Background Jobs","mobileHeadline":"Handle Long PowerShell Scripts With Background Jobs","articleUrl":"/powershell/handle-long-powershell-scripts-with-background-jobs","linkAttrs":{},"listPageUrl":"/videos","date":"Aug 12, 2024","webinarStartTime":"","articleSummary":"PowerShell expert Brien Posey demonstrates a technique for managing long-running scripts. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":9,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9885a6803382a6af/66b39a0dc20b717ac496de15/digital_shield_with_a_keyhole.jpg","alt":"digital shield with a keyhole"},"contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"articleName":"Introduction To Writing eBPF Programs for Linux Security","mobileHeadline":"Introduction To Writing eBPF Programs for Linux Security","articleUrl":"/linux-os/introduction-to-writing-ebpf-programs-for-linux-security","linkAttrs":{},"listPageUrl":"","date":"Aug 8, 2024","webinarStartTime":"","articleSummary":"eBPF is a versatile tool for improving Linux kernel security. This guide shows you how to write eBPF programs and discusses potential challenges.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Linux OS","categoryUrl":"/operating-systems/linux-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcf5f01880e97e934/66b27c699cb293afa7b783ce/image-1716x965_(89).jpg","alt":"logo for Google seen through the lens of glasses"},"contributors":[{"name":"Bloomberg News","link":"/author/bloomberg-news","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcd74bdee4f5e0b4a/6658962d93383734e56f0319/bloomberg-logo-4.jpg"}],"articleName":"Google’s Antitrust Loss Is a Hollow Victory for Regulators","mobileHeadline":"Google’s Antitrust Loss Is a Hollow Victory for Regulators","articleUrl":"/android-os/google-s-antitrust-loss-is-a-hollow-victory-for-regulators","linkAttrs":{},"listPageUrl":"","date":"Aug 6, 2024","webinarStartTime":"","articleSummary":"The Justice Department notches a win, but it comes way too late to curb the company's dominance in search.","articleBodyJsonSummary":"","variant":"normal","categoryName":"Android OS","categoryUrl":"/operating-systems/android-os","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt79d95d2635a28398/66abd915e9c5d0164d524995/image-1716x965_(86).jpg","alt":"apple iphone against a background that says AI"},"contributors":[{"name":"The Washington Post","link":"/author/the-washington-post","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt934dc95cced9fbe8/6613c9f64cef4f3fba38424c/wapo-logo.jpg"}],"articleName":"Our First Taste of ‘Apple Intelligence’ Is Here. Here’s What Works.","mobileHeadline":"Our First Taste of ‘Apple Intelligence’ Is Here. Here’s What Works.","articleUrl":"/macos/our-first-taste-of-apple-intelligence-is-here-here-s-what-works-","linkAttrs":{},"listPageUrl":"","date":"Aug 1, 2024","webinarStartTime":"","articleSummary":"Apple released an early preview of the AI tools in the iOS 18.1 software. Here‘s what’s been helpful so far.","articleBodyJsonSummary":"","variant":"normal","categoryName":"MacOS","categoryUrl":"/operating-systems/macos","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"},{"contentType":"Article","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt93e239e40332ac1e/66a3d1d1c489aee9d06d3402/Virtual.png","alt":"a powershell logo next to the words powershell tips and tricks midyear roundup on a tech themed background "},"contributors":[{"name":"ITPro Today Staff","link":"/author/itpro-today-staff","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt4cc8025f87b35f78/6647125c6e488f989a4ccdc7/ITP_ContributorPlaceholder.png"}],"articleName":"Top 10 PowerShell Tips and Tricks of 2024 (So Far)","mobileHeadline":"Top 10 PowerShell Tips and Tricks of 2024 (So Far)","articleUrl":"/powershell/top-10-powershell-tips-and-tricks-of-2024-so-far-","linkAttrs":{},"listPageUrl":"","date":"Jul 29, 2024","webinarStartTime":"","articleSummary":"Our most-read PowerShell tips focus on extending the system’s capabilities and automating complex tasks. ","articleBodyJsonSummary":"","variant":"normal","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]},"articleSize":"big"}],"sidebarModules":[{"type":"module_content_cards","data":{"title":"Editor's Choice","moduleLabel":"Editor's Choice","variant":"default","contents":[{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte7be8ee65ed686ae/67128e1e98e874167c4f05e1/hero_powershell_multifile_tool.png","alt":"the interface of the PowerShell search tool with a hand holding a magnifying glass on a background of a blue sky and clouds in the shape of gears"},"articleName":"How I Built My Own PowerShell Multi-File Search Tool","mobileHeadline":"How I Built My Own PowerShell Multi-File Search Tool","articleUrl":"/powershell/how-i-built-my-own-powershell-multi-file-search-tool","listPageUrl":"/powershell/how-i-built-my-own-powershell-multi-file-search-tool","linkAttrs":{},"date":"Oct 22, 2024","webinarStartTime":"","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"timeRead":10,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"ad","data":{"pos":"native_right_1v"}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf8db9c6bab6974be/67191ffa32efaa4f10cc0da3/burnout_gif.gif","alt":"burnout gif featuring a mannequin surrounded by office technology on fire"},"articleName":"Am I Burned Out? How To Identify and Address Burnout in IT","mobileHeadline":"Am I Burned Out? How To Identify and Address Burnout in IT","articleUrl":"/career-tips/am-i-burned-out-how-to-identify-and-address-burnout-in-it","listPageUrl":"/career-tips/am-i-burned-out-how-to-identify-and-address-burnout-in-it","linkAttrs":{},"date":"Oct 24, 2024","webinarStartTime":"","categoryName":"Career Tips","categoryUrl":"/career-management/career-tips","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,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6848a0ecb0125906/6718d881c3b38d9d32d538ac/ML-1716x965_-_2024-10-23.jpg","alt":"MLOps"},"articleName":"Choosing Between Cloud and On-Prem MLOps: What's Best for Your Needs?","mobileHeadline":"Choosing Between Cloud and On-Prem MLOps: What's Best for Your Needs?","articleUrl":"/ops-and-more/choosing-between-cloud-and-on-prem-mlops-what-s-best-for-your-needs-","listPageUrl":"/ops-and-more/choosing-between-cloud-and-on-prem-mlops-what-s-best-for-your-needs-","linkAttrs":{},"date":"Oct 23, 2024","webinarStartTime":"","categoryName":"Ops and More","categoryUrl":"/it-management/ops-and-more","contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"ad","data":{"pos":"native_right_2v"}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltf99e8de69c884e47/6703e85e7c36d207b980a3fa/Linux_Kernel_Security.png","alt":"a digital shield icon with a keyhole next to text that says linux kernel security"},"articleName":"Linux Kernel Exploits: How Attackers Gain Root Access and How To Defend Against It","mobileHeadline":"Linux Kernel Exploits: Common Threats and How To Prevent Them","articleUrl":"/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it","listPageUrl":"/vulnerabilities-threats/linux-kernel-exploits-how-attackers-gain-root-access-and-how-to-defend-against-it","linkAttrs":{},"date":"Oct 8, 2024","webinarStartTime":"","categoryName":"Vulnerabilities \u0026 Threats","categoryUrl":"/it-security/vulnerabilities-threats","contributors":[{"name":"Grant Knoetze","link":"/author/grant-knoetze","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg"}],"timeRead":6,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}}],"dateDisplay":"show","contributorDisplay":"show"},"adConfig":{"nativeAdOption":true}},{"type":"module_link_list","data":{"listOption":"Dynamic","listTitle":"Exclusive ITPro Resources","icon":"Document","externalFeed":"","ctaButton":{"ctaButtonLink":"/documents","ctaButtonText":"See all ITPro Resources"},"openInNewTab":false,"articles":[{"contentType":"Document","title":"BCDR Basics: A Quick Reference Guide for Business Continuity \u0026 Disaster Recovery","url":"/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery","isExternalLink":false,"readTime":1,"publishedDate":"2024-10-10T15:22:31.000Z","eventDate":"","webinarStartTime":""},{"contentType":"Document","title":"ITPro Today’s 2024 IT Priorities Report","url":"/career-management/itpro-today-s-2024-it-priorities-report","isExternalLink":false,"readTime":1,"publishedDate":"2024-09-25T10:00:00.000Z","eventDate":"","webinarStartTime":""},{"contentType":"Document","title":"Tech Careers: Quick Reference Guide to IT Job Titles","url":"/career-management/tech-careers-quick-reference-guide-to-it-job-titles","isExternalLink":false,"readTime":1,"publishedDate":"2024-09-13T10:45:00.000Z","eventDate":"","webinarStartTime":""},{"contentType":"Document","title":"Migrating From VMware: Guide to a Successful Transition","url":"/vmware/migrating-from-vmware-guide-to-a-successful-transition","isExternalLink":false,"readTime":1,"publishedDate":"2024-09-03T09:45:00.000Z","eventDate":"","webinarStartTime":""}]}},{"type":"module_content_cards","data":{"title":"Technical Explainers","moduleLabel":"Featured Technical Explainers","variant":"default","contents":[{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfec5fcbd31c7f2a6/673b100cd675084d0707e288/AI-chip-1716x965_-_2024-11-18.jpg","alt":"AI chip"},"articleName":"Cloud vs. On-Prem AI Accelerators: Choosing the Best Fit for Your AI Workloads","mobileHeadline":"Cloud vs. On-Prem AI Accelerators: Choosing the Best Fit for Your AI Workloads","articleUrl":"/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads","listPageUrl":"/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads","linkAttrs":{},"date":"Nov 18, 2024","webinarStartTime":"","categoryName":"Cloud Computing","categoryUrl":"/cloud-computing","contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd277e0c4548d3c42/673278ac8d8bc463268a48b4/SaaS-1716x965_-_2024-11-11.jpg","alt":"SaaS concept on a tablet"},"articleName":"Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees","mobileHeadline":"Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees","articleUrl":"/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees","listPageUrl":"/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees","linkAttrs":{},"date":"Nov 12, 2024","webinarStartTime":"","categoryName":"Cloud Computing","categoryUrl":"/cloud-computing","contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"timeRead":5,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-horizontal","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdf272a7a39b366c2/672b48253c936766d5282090/DevOps-code-1716x965_-_2024-09-06.jpg","alt":"DevOps logo on top of code"},"articleName":"DevOps: Key to Faster, More Efficient Government Software Development","mobileHeadline":"DevOps: Key to Faster, More Efficient Government Software Development","articleUrl":"/devops/devops-key-to-faster-more-efficient-government-software-development","listPageUrl":"/devops/devops-key-to-faster-more-efficient-government-software-development","linkAttrs":{},"date":"Nov 6, 2024","webinarStartTime":"","categoryName":"DevOps","categoryUrl":"/it-management/devops","contributors":[{"name":"Christopher Tozzi","link":"/author/christopher-tozzi","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt363e2b757d4697ca/6613c9a4e92bcfe48a891995/christophertozzi_2.jpg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}}],"dateDisplay":"hide","contributorDisplay":"hide"},"adConfig":{"nativeAdOption":false}},{"type":"module_newsletter_promo","uid":"blt96562e27e259477c","data":{"title":"Sign up for the ITPro Today newsletter","message":"Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.","newsletterId":"blt96562e27e259477c","buttonText":"Newsletter Sign-Up","variant":"vertical","mode":"dark","isOnHomepage":false,"moduleLocation":"sidebar"}},{"type":"module_content_cards","data":{"title":"What Is","moduleLabel":"Recent What Is","variant":"column","contents":[{"type":"contentPreview","data":{"contentType":"Document","variant":"card-vertical","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd6267f0056e427cb/6707f1e94c215e0bdbe8db2f/image-1795x965_(2).jpg","alt":"cartoon shows a person next to a checklist and several icons that represent disaster scenarios"},"articleName":"BCDR Basics: A Quick Reference Guide for Business Continuity \u0026 Disaster Recovery","mobileHeadline":"BCDR Basics: A Quick Reference Guide for IT Pros","articleUrl":"/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery","listPageUrl":"/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery","linkAttrs":{},"date":"Oct 10, 2024","webinarStartTime":"","categoryName":"Disaster Recovery","categoryUrl":"/data-storage/disaster-recovery","contributors":[{"name":"Ian Horowitz","link":"/author/ian-horowitz","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc93aa705007174ee/66a10526893fa79494559f62/itpro-contributor-icon2.png"}],"timeRead":1,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}},{"type":"contentPreview","data":{"contentType":"Article","variant":"card-vertical","thumbnail":{"src":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png","alt":"technology interface with a person's hand drawing gears and cogs"},"articleName":"Introduction To PowerShell Environment Variables","mobileHeadline":"Introduction To PowerShell Environment Variables","articleUrl":"/powershell/introduction-to-powershell-environment-variables","listPageUrl":"/powershell/introduction-to-powershell-environment-variables","linkAttrs":{},"date":"Sep 30, 2024","webinarStartTime":"","categoryName":"PowerShell","categoryUrl":"/operating-systems/powershell","contributors":[{"name":"Brien Posey","link":"/author/brien-posey","avatar":"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg"}],"timeRead":4,"paidGating":{"paidContent":false,"paidProductTaxonomy":[]}}}],"dateDisplay":"hide","contributorDisplay":"hide"},"adConfig":{"nativeAdOption":false}}]},"metadata":{"uid":"blt2d763f782674b6b5","aid":"912013"},"schema":[{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.itprotoday.com"},{"@type":"ListItem","position":2,"name":"Operating Systems","item":"https://www.itprotoday.com/operating-systems"}]}],"seo":{"canonicalUrl":"https://www.itprotoday.com/operating-systems","metaDescription":"Explore the latest news and expert commentary on Operating Systems brought to you by the editors of ITPro Today","metaTitle":"Operating Systems Recent News | ITPro Today","noIndex":false,"imageUrl":"https://www.itprotoday.com/build/_assets/itprotoday-TDRQNNNW.ico","siteName":"ITPro Today"},"type":"topic","pageName":"topic","isAuthenticated":false}},"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&version=v3.2"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script></body></html>