CINXE.COM

Adding .NET Text-to-Speech Functionality to PowerShell

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><script async="" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script><script async="" defer="" src="https://connect.facebook.net/en_US/sdk.js?xfbml=1&amp;version=v3.2&amp;hash=606879e94b06283a619cebf5b7449644"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script><meta name="robots" content="max-image-preview:large"/><title>Adding .NET Text-to-Speech Functionality to PowerShell</title><meta name="description" content="Using .NET text-to-speech functionality, you can make PowerShell speak. Watch the video tutorial to learn how."/><meta property="og:title" content="Adding .NET Text-to-Speech Functionality to PowerShell"/><meta property="og:description" content="Using .NET text-to-speech functionality, you can make PowerShell speak. Watch the video tutorial to learn how."/><meta property="og:url" content="https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"/><meta property="og:type" content="article"/><meta property="og:image" content="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcfe5169561d25ee0/66830b8bee4f24dcb987a120/image-1716x965_(44).jpg?disable=upscale&amp;width=1200&amp;height=630&amp;fit=crop"/><meta property="oc:keywords" content="PowerShell, PowerShell"/><link rel="canonical" href="https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcfe5169561d25ee0/66830b8bee4f24dcb987a120/image-1716x965_(44).jpg?width=1280&amp;auto=webp&amp;quality=10&amp;format=jpg&amp;disable=upscale&amp;blur=40" as="image"/><meta property="twitter:card" content="summary"/><link rel="preconnect" href="https://cdn.cookielaw.org"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"/><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="icon" type="image/x-icon" href="/assets/itprotoday-DWmeQ76g.ico"/><link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com"/><link rel="modulepreload" href="/assets/entry.client-fWB18xdV.js"/><link rel="modulepreload" href="/assets/chunk-K6AXKMTT-D00r_oVc.js"/><link rel="modulepreload" href="/assets/index-BlRIwUgC.js"/><link rel="modulepreload" href="/assets/with-props-C4rFUyxV.js"/><link rel="modulepreload" href="/assets/gtm-DGm0KW_T.js"/><link rel="modulepreload" href="/assets/contentPreview-raReixWB.js"/><link rel="modulepreload" href="/assets/_-BJdr63HM.js"/><link rel="modulepreload" href="/assets/useArticleProps-B5v1naMg.js"/><link rel="modulepreload" href="/assets/provider-vRHVWpv0.js"/><link rel="modulepreload" href="/assets/newsletterSignupPromo-C5ZmaayE.js"/><link rel="modulepreload" href="/assets/socialShare-BbqkDzDu.js"/><link rel="modulepreload" href="/assets/link-C1MkzDH5.js"/><link rel="modulepreload" href="/assets/button-DlgCHeeG.js"/><link rel="modulepreload" href="/assets/util-BlbSWXsE.js"/><link rel="modulepreload" href="/assets/searchBar-CEbzLjII.js"/><link rel="modulepreload" href="/assets/useSearchBar-B0qpfoK9.js"/><link rel="modulepreload" href="/assets/navigation-BPrJWSO7.js"/><link rel="modulepreload" href="/assets/redirection-DiAII56c.js"/><link rel="modulepreload" href="/assets/meta-DL0KpjEK.js"/><link rel="modulepreload" href="/assets/form-5uUV5058.js"/><link rel="modulepreload" href="/assets/root-BIuf-57F.js"/><link rel="modulepreload" href="/assets/sidebar-C38SyLXI.js"/><link rel="modulepreload" href="/assets/articleMultiSection-B_lQ5uys.js"/><link rel="modulepreload" href="/assets/contentDomain.generated-DIEwSG95.js"/><link rel="modulepreload" href="/assets/topicList-DLI_z99T.js"/><link rel="modulepreload" href="/assets/gridLayout-wIbp2Hs_.js"/><link rel="modulepreload" href="/assets/featureImageHeader-B2n6UlsK.js"/><link rel="modulepreload" href="/assets/useWeatherWidget-CqdUxz0N.js"/><link rel="modulepreload" href="/assets/string-BS_NwYxO.js"/><link rel="modulepreload" href="/assets/weatherWidget-BYzhjHC9.js"/><link rel="modulepreload" href="/assets/changeLocationBar-BNl0rC1C.js"/><link rel="modulepreload" href="/assets/contentCards-aFwo1o7S.js"/><link rel="modulepreload" href="/assets/videoPlaylist-BaLxtSEs.js"/><link rel="modulepreload" href="/assets/toNumber-DCajaT_r.js"/><link rel="modulepreload" href="/assets/contributorSummary-CYbbZoZR.js"/><link rel="modulepreload" href="/assets/programHeader-UEd8-rbR.js"/><link rel="modulepreload" href="/assets/categoryHeader-BNorRpUl.js"/><link rel="modulepreload" href="/assets/resources-DIZqnfs4.js"/><link rel="modulepreload" href="/assets/index-BObwWQ7a.js"/><link rel="modulepreload" href="/assets/breadcrumb-D99WjBeI.js"/><link rel="modulepreload" href="/assets/listContent-DPrFxO8G.js"/><link rel="modulepreload" href="/assets/utils-Bn24zYNJ.js"/><link rel="modulepreload" href="/assets/pagination-CotFOi0g.js"/><link rel="modulepreload" href="/assets/commodityPrices-CuYN6Jxx.js"/><link rel="modulepreload" href="/assets/_getPrototype-3cCw-LUg.js"/><link rel="modulepreload" href="/assets/useStorage-gorQNo4e.js"/><link rel="modulepreload" href="/assets/_topic._slug._index-NLhdOpms.js"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"VideoObject","name":"How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)","description":"Here is a quick and easy method for setting up text-to-speech in PowerShell.","thumbnailUrl":["https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcfe5169561d25ee0/66830b8bee4f24dcb987a120/image-1716x965_(44).jpg"],"uploadDate":"2024-07-05T11:00:00.000Z","duration":"P0Y0M0DT0H8M15S","contentUrl":"https://youtu.be/wiZLJS3qd34?si=Lu2dK5R0R8J8d8Rf"}</script><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":"PowerShell","item":"https://www.itprotoday.com/operating-systems/powershell"}]}</script><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":7.682189,"transactionName":"MhBSZQoZWEEDU0ZaXgtac0QLDFlfTR9CXEYAB0NZHRRaHQpfRR5FClhdUBMdG0INR1dBQg0QXF1VC0ZXA1sfR1QdAR1FF1VFQgdVUVscCxBEHAwNQl0QWVNfHA==","queueTime":0,"ttGuid":"18205ebae8528c99"}; (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.283.1.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(3333);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={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){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,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},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,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.283.1",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9414:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get("logger")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],"wrap-logger-",(()=>s.get(f))),u}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=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(8154),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()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>T,uP:()=>s,wW:()=>E,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",E="cb"+R,A="jsTime",T="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")},8969:(e,t,r)=>{"use strict";r.d(t,{j:()=>O});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(8154),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(9414);function x(){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 A=r(9417),T=r(5603),N=r(5284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let _=!1;function O(e,t={},g,O){let{init:I,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();P||(I=L.init,P=L.info,j=L.loader_config),(0,A.xN)(e.agentIdentifier,I||{}),(0,T.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},d.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const H=(0,A.D0)(e.agentIdentifier),M=[P.beacon,P.errorBeacon];_||(H.proxy.assets&&(S(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon&&M.push(H.proxy.beacon),x(),(0,h.US)("activatedFeatures",N.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var x=s.ee.get(e),A=x.get("tracer");E[e]=b.g.OFF,x.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var T="api-",N=T+"ixn-";function S(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(T,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,w.R)(x,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,x),(0,R.J)(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(T,e,!0,"api")})),g.addPageAction=I(T,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=I(T,"recordCustomEvent",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(T,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return S(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 S("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return S("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,x),x.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,x),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},g.interaction=function(e){return(new _).get("object"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(N+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(A.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 A.emit("fn-err",[arguments,this,t],r),t}finally{A.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,x),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{O[e]=I(N,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(N,"routeName",void 0,n.K7.softNav):I(T,"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,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},d.RI?(0,u.GG)((()=>P()),!0):P(),g}(e.agentIdentifier,O,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),_=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.283.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.1.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-xh2gny9FbPW5pomtWyy7hHdQHGboXB/N4nyn8DfA0WA2vCwX0A4j2oDh5iaHPZ7LExtpCN1wH+cmFhC5+XZpvw==",249:"sha512-QwbAv951CmpiBMYrGDX13s51PFIraP7TGD1mhcZv8jILwi1qPZbPL+c98zB6u5kWpOPcdfGLroZW+38lG3ZVHA==",212:"sha512-hVJwKgbpekN6SB9bmRkjdGJxXRXeHDsrVRlTC1EMUEYSeaO8NWR6CjzsDA2iUrhmD1sv4p1TCx6tYULmyZ2Tbw=="};(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.283.1.PROD"]=self["webpackChunk:NRBA-1.283.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(8969);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),A=i(3878),T=i(782),N=i(1863);class S extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,N.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,N.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var _=i(8154);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,N.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,N.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,N.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 D=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,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-",J=Y+"body-",X=["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,X.forEach((e=>{r(Q[te],e,J),r(ee[te],e,J)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,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,N.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,N.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,N.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,N.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,N.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,N.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,N.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,N.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(_.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Ae,uP:Te,Rz:Ne}=be;class Se extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,N.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,N.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+Re,(function(e){this.time=(0,N.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(_e.H3,"_").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL&&this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==_e.g.FULL&&(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,N.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,N.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,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 Me(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const De={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Je,wW:Xe,e5:$e,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,N.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,N.t)();this[$e]=~~this[$e]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,N.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Xe,m),o.on(Xe,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+"-done",Qe+Je+Ze,Qe+Je+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Xe,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,Qe+Ze),v(d,Qe+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,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,e.init.performance.resources.enabled];if(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=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled&&p.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785),ct=i(9414);class ut extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;(0,ct.J)(r,p.gm.console,"log",{level:"info"}),(0,ct.J)(r,p.gm.console,"error",{level:"error"}),(0,ct.J)(r,p.gm.console,"warn",{level:"warn"}),(0,ct.J)(r,p.gm.console,"info",{level:"info"}),(0,ct.J)(r,p.gm.console,"debug",{level:"debug"}),(0,ct.J)(r,p.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,S,Se,Oe,O,M,ot,ut,Pe,nt],loaderType:"spa"})})()})();</script><link rel="stylesheet" href="/assets/styles.generated-CmzcVq8e.css"/><link rel="stylesheet" href="/assets/brand.generated-ChPKH9i1.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&amp;display=swap"/><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 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></head><body class="brand-itprotoday gptHideContent"><noscript></noscript><div id="bigsky_v"></div><div id="welcome_v"></div><main data-theme="theme1" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position:absolute;left:-999em;top:-999em"></div><div><div data-template="layout" class="Layout"><nav data-module="navigation" aria-label="navigation" class="Navigation"><div data-testid="header" class="Navigation-HeaderWrapper"><div class="FullScreenBackground Navigation-HeaderBackground"></div><div class="Navigation-Header"><div class="InformaBarTech" data-component="informa-bar"><div class="InformaBarTech-LogoSectionWrapper"><div class="InformaBarTech-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBarTech-LogoWrapper"><img class="InformaBarTech-Logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAekAAABqCAYAAACYnalVAAAACXBIWXMAAAsSAAALEgHS3X78AAAPZklEQVR4nO2d320bSRKHew0/HkDe4t41jkDcCMSNwNwIpI3AdATWRmA6AksRrAzcu8UIjoxgxffDQYzAh9mtvmsPKHJIVvVUz3wfQNgWrOHM9J9fV3V11Q/fvn0Le7gJIUxDCFUI4Ur+2zKE8BxCeJDP874LQPGMpQ9M5M/635d7HmoTQngKITyGEFbyeaIbAAAcz0siXYvzbQjh4sAVtyGEhfxf6A+1EM/k81bhqdYi2nci2gAA0IKmSI9lIj12Yl6LlYVVXTZ1+8/lMzJ6krUs7PDCAAAcoCnSqwOuzH0g1GUzkwWalTg3iV6YBX0GAGA3r5KfLs4Q6CC/e8d7Lo7oPfk9o0AH+a4PYrUDAMAOokjXFvA7hRf0ViwyKIOx7BVf014AAP6IIq1pzRBEVgZRoM/xngAAgCGvZLLWiOCNXMpxHfANAg0A4JxXRoI6peFdc278AQAAZOCVkaCOaTy3aMUfAACAMbVI/4OXPCiIwAcAKIRapP8dQvgPDTYIblpkkQMAACe8lgQmP4pQ/0jD9JockfcxBeiz9K00Ucn0hb8DAMAOXie5lDWF+pGX7Q5LK3ojwWh3B7KH0S8AAI7glVQoWsuv/Kjg+t4wGbvEKsnMvZwQIL0nAIAyMZnJIrnsuUJNYJI/tM/CR96LhY44AwAYkBbYeExqRocTXd9rEpm4pBbSz8o3di/XBQAAI9ICGzOpTBQ51qLeMmm7RdvVvaUwBgCAPalIP0v07Sb5WVuh3srvUtDfJ9reDfafAQAy8KrxFSuZ0O+Tnx0S6qX8DgLtk8ogqpu4AwCADDRFOoiFVLut34QQPoll3RTqjQj5z2JBP9FYbqmUb2xNewMA5OH1nm95kn3HuPdYi/HfQgj/pG2KQjtpCMfrAAAysU+kmzA5Q8CKBgDIxy53N/QLbUua2AMAgEwg0gAAAE45xt0N/2eXdfo8ECuz79se4xZH1p5w+0NLXupP3vvQkOe4SHUg8LZZQMgERHo/Y+msUxlo9Wd04Hc20ni1mD0wmbukStpzIu18deKNLpPJ6zHXwAW3TBtzxqH5Yi195iGpHpebShIexXs+dGSzb3NcOr9XLdstZSPvYNX4qJCmBYW/iB22PoZ2qfBO1kmFqC7QbuAfOnqOc4iLrTgRWdfUjuU64yQG/WaWfI6Z3Jtspb/cZhA+zXmu6znuWCbJfHDq4vwQ22Th9XDO4iuKdDNv97mcMpF3fQ838rFstLlyR+7DCus3wzrXcRKyKC7SljhYFx26CjX7yVIxGLFqWDCpa/GxRb+o7+Or0r2EI/tiJeP55kxhfol7ub62ZT2V61qMiY28P49iXSVzvPUivclZc8DQ3d2x4eZGAy1lJEUuYkfBDW7DOGnT3INxF3W7X8tnKQN1qNZ16ladHhhzXmMfKhGia+PvuU4WmRr95Ubu23JMXCRz3MzJto+18dWG5hxwe0z/Hmp0dyWrvT9CCB8yCHTKVZJ+FXSJi5+PTgS6Sd32v0v7ax+N80q0OFcy3j6KFZdzzGmQzhnWAh0ZSX85x9MUx8TnjGPiSr6zyzkufe4uBbrJlXh/HtpmgxyaSI87GGi7GMlKiqphOsTc8Z8Lmfwvk4E6dnA/FtxIH4/CrBHf0QUe5owPJ7iQp8mY6GLBGue43ELdxaLkFN5K+xzUgCGJdAzG6FKcU0bi+sSiPo+6Xf9VqAi8lT6pXUq0K8bSHs8OLZhTmDuaM65bLuorEcevDsZETqGeFSLOKXELdO8CbAgiHQuA5HZrtyF24r5aU5aM5d19KPw5oktz4eBeTmWcLII9jrNjiUL30dmzfN4jeLEN/nC2OBoZe4ziPPB7QeLc5HqfUPdZpMcy8X113ngjjukczcTgNEDXvCt0wdYncQ5ira4c961dghdd214XrBeGEd+TnswDLwp1n0V6JRNfCVyxP92aKNCl7nHu46ogofbsoTqVeQFxDRdJZcKxiLZ3QyTI1k5ftnWsuN7lUeuzSJfm+rA6K9wnomurL6Kwi0vnQl2Kh+oUSulX8yRAqsscAMdS8pZOLt41FzMU2PDDBdb0XoYg0JFLx1sglwV5qPrKqKCTDCnMce24SxfpiLQvsKZf5q6nLu6XuMLygB4yp1EPMkq1YOgZx7xxIa4OAsm+xyqN4Uusk4T5KTF1Za5AlXfk/4aecZnkNchNWgwnrejVpijOpJHz29qL8S4eZ0Sk/YFIf0+VycOwFGu9bTL8aZL+0HLA3sk7oLIW9IWbDBb1OqlKt1JYFMRrxAjsHOlG63d0i0j/xTYpvfZSnde4irK26I6JgPytxf/RPpZxr5x3/FAO24WxCB6dS1d4TAK85obHX0YyMRAZ64dNQwCa5JorjmGb3POuvl5ltBJnBiK9SapO5Sj5eSefucwfFu/sz3zrfa6CdYhl0qjHrLJi0gDL4JmfFN1B2pWyfs5Y/EC7ylHKVtpRa9+3kv5ktW9+znv3UC1t2ai3nS6Gx40kHdNkst2HZf9osk48LW0XqZX0r67EepuISdv5ZJwU47AU6zdKi/2xvOeuKswF6bsPRqcdfhqaSK+TTnvuSutGIiwteK8oHiWLtFWf2CYJIDSJx5Ms0kiuz0iv2IVIx/J8D4bbNzlE+l6hzKjlXLGLZTLPnYr1ovPXgupPtyEuFLQXNu+HEt19L9bpRAachivkTjqaBUOpkLSPaWECHaRf3Uh/0+aykOMraxkXlWKZxS74FEL4e5KB7BzuZOFtzVIW0VMFAXyS62yM7rlvNQuscvBP+y7S9+JW0Rhou6gHwheD67YqYdYSq0FmjVVgiZVAp9zIhKmN5+MrUSAmSp6qrljKnDFXfoaFUZ8IMsZ/SbYJtHg2XBj2sbDQo8ECveqzSL9JsvJYYjFxarqYrJ/fgspoH+99xr2rmVjtmlw69LKk1luubRArPiXpTi2wOKWwTfZELbAQntDj6n/abXzZZ5HOJU5PRtb0kCtjWbiNlpmTg1hZIV5c3useiXPE2vp/lPemySjDfVssLvqaOVBdD8g4poPFKnbIdaYthKgLV/GDgYtz1vECbit7zpMeiXNOLIKlrL0rTwaLi9BjQ0R1XCDSOjBZ6VEZRJTed3hEQ9sKGXV8ZnrVs6jc3JQ6V1i0eV8NEdW5BpHW4clg/3GoWAhQl6LyaGBNE/1fLqtC54ouzyGXBiLtFDqxDtoCtHZgvWjvhZN9rGxKnCvwFrZHNUYAkdajxChqj2iLtAfX7IOy9TQaeMxC6ZR6PM1iXxoOgEjrgUifT2UQ9eklmYb2feDyLpdSvW4UeekARBo8oW0drh0tnrRFGksacoMh0gGINHhCW3g87aNp34tmVjqANiDSHUCpSvBEn0X6WSx7reNlOSvGAQydiZzrTiu2Nau3BYtxiUiDJ7STG3jb+1spnwEfs09YJFikPhkntcAr+Uy6zo6GSIMntF243ibDlXIZS7J+lQki7YMoyFP5u0U96LNBpMETmoPEquLQOXCWHqA7xpJjYCp/FpE/HJEGyIe2a7pPxS0ArJjJR9OLlQ1EGrygvR/tUbywpAHyEK3mW69u7LYg0uAFzv0CgAZzEedelMNEpAEAoA9MJQ1w0ZZzE5KZAABAyYyliM3Xvgl0wJIGAICCqSTlrnYNejdgSQMAQIlMDBIEaaB6/BNLGgAASiMm8ukiOGwri4NHSUyTfiLftL4MkQYvkN4SANpQZRbojXzfYyLM2UCkwQucIQaANjxkEOiNfM9d13MTIg19xeO5a+3c5HgfYGjcGu9BLyVSXLv++8kg0tBXtDOYaaAt0ngfYEjUC+8PRs+7lAWAu0yFRHeDJzSjIodgSQMMiYXBs9ZBYO8958HHkoa+4jEloLZIU1wDhkK96L5Sfta15Pd2XToUSxo8oS06U2fPR35ygNOYK7+3tcwP7mt7I9LgCe0B400UNe/HY71sACtmitfdikAXEXiJSIMntEXakyVdKecVJmgMhsJMeftqVtLJCEQaPNFnd7f2vSDSMBQ0x86ytFgORBq8oenGHTlyeSPSAKehOYbvSmsDRBq8ob3KvXHyfNp7aog0DAXNqO4cSUpUF+SINHhDW6Q1xfFUbpT31Dh6BUNB89jiJtNetOpRS0QavPEolqIWFw72prWteTcpCwGM0RS8XMetsKSh92iL0G2HL6wySMKASAMcT65UwareO0QaPKItQlcdWtPaqQy/UFgD4CQsC3NEtLe2EGlwyYPsH2nShTVdLwzeKl8TKxrgdKzz56vPM4g0eEX7qMSVQWrBQ2hb0ZsSj5AAOMLSozZXTlj0J4g0eGWhHEAWZJWb69z0wsC9hkADnIfVkcyJlbcOkQavPBtYoiMROusAknoieKd8za1RqT4Az2jHX1jEp4xlXjGpvIdIg2csrOlLOeZlJdS1QH82uO6CgDEYIBZJezQXu2OZT8yC0hBp8IyFNR0SodZ2fd8aCfQGKxoGzFr50S+Vto4m1gIdEGkogFuDQRoSodYIJqvkWh8UrrWLOVY0DBiLDHvXZwr1PIdAB0QaCsEq2KPeQ/oomYhO+Y6JDPQ/DBKWRL5w7AoGjlXA5LW404/Zo76R+eKj1R50k9c5vgTgTOqB9F4GhgUX4qZeyOr4Ub7zqZFKcCp7UFP5WK+iN44KhAB0xUrGgvrxJhnDX8VbdyfftUo8V1PxlE0N6lq3ApGGUliI5XpteL8jST6inYDkFLalFacHMOTOcDspiFhrGgFbWeCfvZDH3Q0lMTfan/bInHKUAP/D4qSHFVuxvFUW2Ig0lMSzdP6+C/WvJC4B+I7nDjIGnorqAhuRhtLou1Aj0AC7qcfF0vm7UR+/iDSUSBRq7wP2GGoX2S8INMBeZk7d3mbjF5GGUolC/akHLbiWZ+GoFcB+4rj3JNRby/GLSEPp1Ps/PxuUtszFJxngBIkBtGPlSKiXckTLbPwi0tAHYorPkqzqjSwuyCYGcDxdC/VWcjeoRXG/BCINfSFGf74JIdw7fqaNBJdURukOAYbCSsZR7tiUpRgFWfLpI9LQN2KKzyjWXvau1ok4ExwGoEPco/41w1hfivdr2shEaErMOOZhP6z0Pbkn5RWdlgtF+72W4pqNYj2WiNBZB5nENhJMctdx/9bsl57G6bPys+WaeLXvO9eY9DrHBRljD+JNu1FOIfolSRl8DCpj5Ydv375pXAegFGayEp4YFMXYJHm/H3KutgHgO2bJ55R828tkgd2pYYJIw9CZJEUzQvLvQ8RVdSzCwf4ygE/qMV1/YqGMXaTj2M9YDiH8F/cmbyXaV5JLAAAAAElFTkSuQmCC" alt="Logo Informa"/></div><span class="InformaBarTech-IconWrapper InformaBarTech-IconWrapper_closed"><svg viewBox="0 0 320 512" aria-hidden="true" focusable="false" role="img" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor" height="100%"><path fill="#ffffff" d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path></svg></span></div><p class="InformaBarTech-LogoInfoWrapper"><span class="InformaBarTech-LogoInfo">TechTarget and Informa Tech’s Digital Business Combine.</span><span class="InformaBarTech-LogoInfo InformaBarTech-LogoInfo_isMobile">TechTarget and Informa</span></p></div><div class="InformaBarTech-TopSection InformaBarTech-TopSection_hidden"><h2 class="InformaBarTech-TopSectionTitle">TechTarget and Informa Tech’s Digital Business Combine.</h2><p class="InformaBarTech-TopSectionDescription">Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.</p></div></div></div></div><div class="Navigation-SecondaryMenuWrapper"><div class="FullScreenBackground Navigation-SecondaryMenuBackground"></div><div class="Navigation-SecondaryMenu"><nav data-testid="SecondaryMenu" class="SecondaryMenu"><a class="SecondaryMenu-Link" href="/documents" data-discover="true">Documents</a><a class="SecondaryMenu-Link" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar" data-discover="true">Online Events</a><a class="SecondaryMenu-Link" href="/advertise" data-discover="true">Advertise</a><a class="SecondaryMenu-Link" href="/about-us" data-discover="true">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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" href="/" data-discover="true"><img data-testid="logo-image" data-component="image" class="NavBase-LogoImage" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="ITPro Today Logo" title="ITPro Today Logo"/></a></div><div class="NavBase-RegisterWrapper"><div data-module="newsletter-signup-promo"><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_small NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_medium 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" class="Layout-SocialLink" href="https://twitter.com/ITProToday"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" class="Layout-SocialLink" href="https://www.linkedin.com/company/itpro-today/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Youtube" class="Layout-SocialLink" href="https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" class="Layout-SocialLink" href="https://news.google.com/publications/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_self" 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div><a data-component="button" data-testid="headerMediumNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div><button data-testid="RegisterSearchButton" class="NavBase-RegisterSearchButton" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="NavBase-SearchWrapper"><div class="FullScreenBackground NavBase-SearchBackground"></div><button data-testid="SearchCloseButton" class="NavBase-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div><div class="Navigation-MainMenu"><div data-testid="mainMenu"><div class="FullScreenBackground MainMenu-BackgroundSubmenu"></div><div class="FullScreenBackground MainMenu-BackgroundMenuItem"></div><div class="MainMenu-Content"><div class="MainMenu-MegaMenuButtonWrapper"><button data-testid="mainMenu-MegaMenuButton" aria-label="Open MegaMenu" class="MainMenu-MegaMenuButton"><span data-component="icon" data-name="Bars" class="MainMenu-MegaMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;15&#x27;%20viewBox=&#x27;0%200%2018%2015&#x27;%3e%3cpath%20id=&#x27;Hamburger&#x27;%20d=&#x27;M17.518,70.234H.482A.48.48,0,0,1,0,69.755V68.479A.48.48,0,0,1,.482,68H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,70.234Zm0,6.383H.482A.48.48,0,0,1,0,76.138V74.862a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,76.617Zm0,6.383H.482A.48.48,0,0,1,0,82.521V81.245a.48.48,0,0,1,.482-.479H17.518a.48.48,0,0,1,.482.479v1.277A.48.48,0,0,1,17.518,83Z&#x27;%20transform=&#x27;translate(0%20-68)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="MainMenu-ItemsWrapper" role="menu"><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Cloud"><span class="MainMenu-MainTitle">Cloud<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/cloud-services" data-discover="true">Cloud Services</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/hybrid-cloud" data-discover="true">Hybrid Cloud</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/private-cloud" data-discover="true">Private Cloud</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/cloud-computing/public-cloud" data-discover="true">Public Cloud</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/cloud-computing" data-discover="true">Cloud</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/cloud-computing" data-discover="true"><span class="SubMenu-SeeMoreText">SEE ALL Cloud</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">cloud Kubernetes helm concept with the containers</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9a67f57273c07d90/67b473773875e33a243b106a/Kubenetes-1716x965_-_2025-02-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9a67f57273c07d90/67b473773875e33a243b106a/Kubenetes-1716x965_-_2025-02-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true">Mastering Kubernetes in the Cloud: A Guide to Cloud Controller Manager</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true">Mastering Kubernetes in the Cloud: A Guide to Cloud Controller Manager</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" data-discover="true">Christopher Tozzi</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 18, 2025</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" href="/hybrid-cloud/how-to-avoid-common-hybrid-cloud-pitfalls" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">hybrid cloud spelled out above a tablet</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbbbd88e5773ffc6b/67ac97b77c6ab0666ea09ca5/hybrid-cloud-1716x965_-_2024-12-27.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbbbd88e5773ffc6b/67ac97b77c6ab0666ea09ca5/hybrid-cloud-1716x965_-_2024-12-27.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_hybridCloud ContentPreview-Category" href="/cloud-computing/hybrid-cloud" data-discover="true">Hybrid Cloud</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/hybrid-cloud/how-to-avoid-common-hybrid-cloud-pitfalls" data-discover="true">How to Avoid Common Hybrid Cloud Pitfalls</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/hybrid-cloud/how-to-avoid-common-hybrid-cloud-pitfalls" data-discover="true">How to Avoid Common Hybrid Cloud Pitfalls</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/lisa-morgan" data-discover="true">Lisa Morgan<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/informationweek" data-discover="true">InformationWeek</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 12, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of OS"><span class="MainMenu-MainTitle">OS<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/microsoft-windows" data-discover="true">Microsoft Windows</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/windows-server" data-discover="true">Windows Server</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/powershell" data-discover="true">PowerShell</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/linux-os" data-discover="true">Linux OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/sql-server" data-discover="true">SQL Server</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/macos" data-discover="true">MacOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/android-os" data-discover="true">Android OS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/chromeos" data-discover="true">ChromeOS</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/ubuntu" data-discover="true">Ubuntu</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/operating-systems/red-hat-os" data-discover="true">Red Hat OS</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/operating-systems" data-discover="true">OS</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/operating-systems" data-discover="true"><span class="SubMenu-SeeMoreText">See All OS</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/powershell/powershell-gui-tutorial-building-whiteboard-apps-with-wpf" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a dry erase boards with doodles, powershell code snippet, powershell logo, and a hand drawing with a market</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1ef028e07e495a1a/67b518be149b7e2c6c0df150/Your_paragraph_text_(1).png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1ef028e07e495a1a/67b518be149b7e2c6c0df150/Your_paragraph_text_(1).png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" href="/operating-systems/powershell" data-discover="true">PowerShell</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/powershell/powershell-gui-tutorial-building-whiteboard-apps-with-wpf" data-discover="true">PowerShell GUI Tutorial: Building Whiteboard Apps With WPF</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/powershell/powershell-gui-tutorial-building-whiteboard-apps-with-wpf" data-discover="true">PowerShell GUI Tutorial: Building Whiteboard Apps With WPF</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/brien-posey" data-discover="true">Brien Posey</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 19, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>13 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/linux-os/beyond-the-basics-advanced-linux-hardening-techniques" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">a magnifying glass being help up to an open padlock icon that is set within rows of locked padlocks</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt55c34441e4c5f4cf/67ae572a2ba611390a866d2b/image-1716x965_-_2025-02-13T153328.829.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt55c34441e4c5f4cf/67ae572a2ba611390a866d2b/image-1716x965_-_2025-02-13T153328.829.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_linuxOs ContentPreview-Category" href="/operating-systems/linux-os" data-discover="true">Linux OS</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/linux-os/beyond-the-basics-advanced-linux-hardening-techniques" data-discover="true">Beyond the Basics: Advanced Linux Hardening Techniques</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/linux-os/beyond-the-basics-advanced-linux-hardening-techniques" data-discover="true">Beyond the Basics: Advanced Linux Hardening Techniques</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/grant-knoetze" data-discover="true">Grant Knoetze</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 14, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>7 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/it-operations" data-discover="true">IT Operations</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/devops" data-discover="true">DevOps</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/ops-and-more" data-discover="true">Ops and More</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/it-sustainability" data-discover="true">IT Sustainability</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-management/it-automation" data-discover="true">IT Automation</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/it-management" data-discover="true">IT Mgmt</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-management" data-discover="true"><span class="SubMenu-SeeMoreText">See All IT Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">disaster recovery playbook on a desk near a keyboard</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9fc49f74c870f57b/67b859beabe3fd2cdd69ba66/disaster-recovery-1716x965_-_2025-02-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9fc49f74c870f57b/67b859beabe3fd2cdd69ba66/disaster-recovery-1716x965_-_2025-02-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_disasterRecovery ContentPreview-Category" href="/data-storage/disaster-recovery" data-discover="true">Disaster Recovery</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true">Disaster Recovery Strategies for a Disaster-Prone World</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true">Disaster Recovery Strategies for a Disaster-Prone World</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 2025</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" href="/it-sustainability/7-top-data-center-sustainability-strategies-for-2025" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">eco icons and data processing over computer servers</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt253192bcd42230d9/67b798981f1ef5d72674f1f5/image-1716x965_-_2025-02-20T160308.726.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt253192bcd42230d9/67b798981f1ef5d72674f1f5/image-1716x965_-_2025-02-20T160308.726.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_itSustainability ContentPreview-Category" href="/it-management/it-sustainability" data-discover="true">IT Sustainability</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/it-sustainability/7-top-data-center-sustainability-strategies-for-2025" data-discover="true">7 Top Data Center Sustainability Strategies for 2025</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/it-sustainability/7-top-data-center-sustainability-strategies-for-2025" data-discover="true">7 Top Data Center Sustainability Strategies for 2025</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/christopher-tozzi" data-discover="true">Christopher Tozzi<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/data-center-knowledge" data-discover="true">Data Center Knowledge</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 20, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Career"><span class="MainMenu-MainTitle">Career<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/career-management/career-tips" data-discover="true">Career Tips</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/career-management/certifications" data-discover="true">Certifications</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/career-management/training" data-discover="true">Training</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/career-management" data-discover="true">Career</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/career-management" data-discover="true"><span class="SubMenu-SeeMoreText">See All Career Mgmt</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">an unhappy employee is surrounded by smiley faces and the words &quot;Stay Positive&quot;</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt373cd0b4af7d9b4c/67b74c33531f576610137525/toxic_positivity_hero.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt373cd0b4af7d9b4c/67b74c33531f576610137525/toxic_positivity_hero.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_careerTips ContentPreview-Category" href="/career-management/career-tips" data-discover="true">Career Tips</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true">Toxic Positivity at Work Is Silencing My Team’s Concerns</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true">Toxic Positivity at Work Is Silencing My Team’s Concerns</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/danielle-meinert" data-discover="true">Danielle Meinert</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/software-development/process-standardization-is-stifling-my-creativity" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">an annoyed-looking software developer is covered by red tape and the words &quot;process compliance&quot;</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9559a8f9078d3a4e/67aa33c656339648630cc13d/Process_Compliance_(1).gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9559a8f9078d3a4e/67aa33c656339648630cc13d/Process_Compliance_(1).gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopment ContentPreview-Category" href="/software-development" data-discover="true">Software Development</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/software-development/process-standardization-is-stifling-my-creativity" data-discover="true">Process Standardization Is Stifling My Creativity</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/software-development/process-standardization-is-stifling-my-creativity" data-discover="true">Process Standardization Is Stifling My Creativity</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/danielle-meinert" data-discover="true">Danielle Meinert</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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 Storage"><span class="MainMenu-MainTitle">Storage<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/cloud-storage" data-discover="true">Cloud Storage</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/high-speed-storage" data-discover="true">High Speed Storage</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/data-backup" data-discover="true">Data Backup</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/data-storage/disaster-recovery" data-discover="true">Disaster Recovery</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/data-storage" data-discover="true">Storage</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/data-storage" data-discover="true"><span class="SubMenu-SeeMoreText">See All Data Storage</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">disaster recovery playbook on a desk near a keyboard</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9fc49f74c870f57b/67b859beabe3fd2cdd69ba66/disaster-recovery-1716x965_-_2025-02-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9fc49f74c870f57b/67b859beabe3fd2cdd69ba66/disaster-recovery-1716x965_-_2025-02-21.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_disasterRecovery ContentPreview-Category" href="/data-storage/disaster-recovery" data-discover="true">Disaster Recovery</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true">Disaster Recovery Strategies for a Disaster-Prone World</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world" data-discover="true">Disaster Recovery Strategies for a Disaster-Prone World</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 2025</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" href="/linux-os/how-to-identify-and-remove-linux-malware-infections" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">the word malware on top of a digital background</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88f81fb36d6cbe4a/67a4e82ca4ff164b53d978f6/image-1716x965_-_2025-02-06T113039.208.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88f81fb36d6cbe4a/67a4e82ca4ff164b53d978f6/image-1716x965_-_2025-02-06T113039.208.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_linuxOs ContentPreview-Category" href="/operating-systems/linux-os" data-discover="true">Linux OS</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/linux-os/how-to-identify-and-remove-linux-malware-infections" data-discover="true">How To Identify and Remove Linux Malware Infections</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/linux-os/how-to-identify-and-remove-linux-malware-infections" data-discover="true">How To Identify and Remove Linux Malware Infections</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/grant-knoetze" data-discover="true">Grant Knoetze</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 7, 2025</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 Security"><span class="MainMenu-MainTitle">Security<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/vulnerabilities-threats" data-discover="true">Vulnerabilities &amp; Threats</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/attacks-breaches" data-discover="true">Attacks &amp; Breaches</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/regulatory-compliance" data-discover="true">Regulatory Compliance</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/data-privacy" data-discover="true">Data Privacy</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/cloud-security" data-discover="true">Cloud Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/endpoint-security" data-discover="true">Endpoint Security</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-security/identity-management-access-control" data-discover="true">Identity Mgmt &amp; Access Control</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/it-security" data-discover="true">Security</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-security" data-discover="true"><span class="SubMenu-SeeMoreText">See All IT Security</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">robot and human fingers touching</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfc15224b242e5649/67b6eb780ae52c6f2ede6380/AI-robot-finger-1716x965_-_2025-02-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfc15224b242e5649/67b6eb780ae52c6f2ede6380/AI-robot-finger-1716x965_-_2025-02-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true">The Role of Human Touch in Agentic AI Data Management</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true">The Role of Human Touch in Agentic AI Data Management</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 20, 2025</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" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">xerox logo on sign outside xerox square building </span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt422134f81885f07c/67b60c8c0ae52c0d13de60c7/image-1716x965_-_2025-02-19T115324.570.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt422134f81885f07c/67b60c8c0ae52c0d13de60c7/image-1716x965_-_2025-02-19T115324.570.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_vulnerabilitiesThreats ContentPreview-Category" href="/it-security/vulnerabilities-threats" data-discover="true">Vulnerabilities &amp; Threats</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true">Xerox Printer Vulnerabilities Enable Credential Capture</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true">Xerox Printer Vulnerabilities Enable Credential Capture</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/jai-vijayan" data-discover="true">Jai Vijayan</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 19, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Dev"><span class="MainMenu-MainTitle">Dev<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/cloud-native" data-discover="true">Cloud Native</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/programming-languages" data-discover="true">Programming Languages</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/no-code-low-code" data-discover="true">No-Code/Low-Code</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/software-development/software-development-techniques" data-discover="true">Software Development Techniques</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/software-development" data-discover="true">Dev</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/software-development" data-discover="true"><span class="SubMenu-SeeMoreText">See All Software Dev</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">an unhappy employee is surrounded by smiley faces and the words &quot;Stay Positive&quot;</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt373cd0b4af7d9b4c/67b74c33531f576610137525/toxic_positivity_hero.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt373cd0b4af7d9b4c/67b74c33531f576610137525/toxic_positivity_hero.gif?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_careerTips ContentPreview-Category" href="/career-management/career-tips" data-discover="true">Career Tips</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true">Toxic Positivity at Work Is Silencing My Team’s Concerns</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns" data-discover="true">Toxic Positivity at Work Is Silencing My Team’s Concerns</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/danielle-meinert" data-discover="true">Danielle Meinert</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/software-development-techniques/the-overlooked-art-of-software-localization-for-non-traditional-markets" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">software developer writing code on a laptop</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta837190fc0e7c602/67ade2fd64f859b14b05f5fd/software-developer-code-1716x965_-_2024-10-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta837190fc0e7c602/67ade2fd64f859b14b05f5fd/software-developer-code-1716x965_-_2024-10-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_softwareDevelopmentTechniques ContentPreview-Category" href="/software-development/software-development-techniques" data-discover="true">Software Development Techniques</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/software-development-techniques/the-overlooked-art-of-software-localization-for-non-traditional-markets" data-discover="true">The Overlooked Art of Software Localization for Non-Traditional Markets</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/software-development-techniques/the-overlooked-art-of-software-localization-for-non-traditional-markets" data-discover="true">The Overlooked Art of Software Localization for Non-Traditional Markets</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 13, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>7 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/digital-transformation/ai-machine-learning" data-discover="true">AI &amp; Machine Learning</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/digital-transformation/edge-computing" data-discover="true">Edge Computing</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/digital-transformation/iot" data-discover="true">IoT</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/digital-transformation" data-discover="true">DX</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/digital-transformation" data-discover="true"><span class="SubMenu-SeeMoreText">See All Digital Transformation</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">robot and human fingers touching</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfc15224b242e5649/67b6eb780ae52c6f2ede6380/AI-robot-finger-1716x965_-_2025-02-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfc15224b242e5649/67b6eb780ae52c6f2ede6380/AI-robot-finger-1716x965_-_2025-02-20.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true">The Role of Human Touch in Agentic AI Data Management</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management" data-discover="true">The Role of Human Touch in Agentic AI Data Management</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 20, 2025</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" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">xerox logo on sign outside xerox square building </span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt422134f81885f07c/67b60c8c0ae52c0d13de60c7/image-1716x965_-_2025-02-19T115324.570.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt422134f81885f07c/67b60c8c0ae52c0d13de60c7/image-1716x965_-_2025-02-19T115324.570.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_vulnerabilitiesThreats ContentPreview-Category" href="/it-security/vulnerabilities-threats" data-discover="true">Vulnerabilities &amp; Threats</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true">Xerox Printer Vulnerabilities Enable Credential Capture</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture" data-discover="true">Xerox Printer Vulnerabilities Enable Credential Capture</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/jai-vijayan" data-discover="true">Jai Vijayan</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 19, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Infrastructure"><span class="MainMenu-MainTitle">Infrastructure<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-infrastructure/high-performance-computing" data-discover="true">High Performance Computing</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-infrastructure/containerization" data-discover="true">Containerization</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/it-infrastructure/server-virtualization" data-discover="true">Server Virtualization</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/it-infrastructure" data-discover="true">Infrastructure</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/it-infrastructure" data-discover="true"><span class="SubMenu-SeeMoreText">See All Infrastructure</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">cloud Kubernetes helm concept with the containers</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9a67f57273c07d90/67b473773875e33a243b106a/Kubenetes-1716x965_-_2025-02-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9a67f57273c07d90/67b473773875e33a243b106a/Kubenetes-1716x965_-_2025-02-18.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_cloudComputing ContentPreview-Category" href="/cloud-computing" data-discover="true">Cloud Computing</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true">Mastering Kubernetes in the Cloud: A Guide to Cloud Controller Manager</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager" data-discover="true">Mastering Kubernetes in the Cloud: A Guide to Cloud Controller Manager</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/christopher-tozzi" data-discover="true">Christopher Tozzi</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 18, 2025</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" href="/ai-machine-learning/how-silicon-diversity-optimizes-cost-performance-across-the-ai-lifecycle" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">computer CPU</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte1ae920643569ab5/67a52cba2f8fd4865d38e4c5/silicon-1716x965_-_2025-02-06.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte1ae920643569ab5/67a52cba2f8fd4865d38e4c5/silicon-1716x965_-_2025-02-06.jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_aiMachineLearning ContentPreview-Category" href="/digital-transformation/ai-machine-learning" data-discover="true">AI &amp; Machine Learning</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/ai-machine-learning/how-silicon-diversity-optimizes-cost-performance-across-the-ai-lifecycle" data-discover="true">How Silicon Diversity Optimizes Cost, Performance Across the AI Lifecycle</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/ai-machine-learning/how-silicon-diversity-optimizes-cost-performance-across-the-ai-lifecycle" data-discover="true">How Silicon Diversity Optimizes Cost, Performance Across the AI Lifecycle</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/industry-perspectives" data-discover="true">Industry Perspectives</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 7, 2025</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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;%20transform=&#x27;translate(21)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" rel="nofollow" target="_self" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpnav">Newsletters</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/latest-how-to" data-discover="true">How To…?</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/program/industry-perspectives" data-discover="true">Industry Perspectives</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources" data-discover="true">Business Resources</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?types=Survey+Report&amp;page=1" data-discover="true">Reports/Research</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?page=1&amp;types=Virtual+Event&amp;types=Webinar" data-discover="true">Online Events</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/events" data-discover="true">Live Events</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/videos" data-discover="true">Videos</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/resources?page=1&amp;types=White+Paper" data-discover="true">White Papers</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/advertise" data-discover="true">Advertise With Us</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/about-us" data-discover="true">About Us</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" href="/resources" data-discover="true"><span class="SubMenu-SeeMoreText">Resource Library</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div></div></div></div></div></div></div></div><div class="MainMenu-SearchButtonWrapper"><button data-testid="mainMenu-SearchButton" aria-label="Open Search" class="MainMenu-SearchButton"><span data-component="icon" data-name="Search" class="MainMenu-SearchButtonIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;22&#x27;%20height=&#x27;21.789&#x27;%20viewBox=&#x27;0%200%2022%2021.789&#x27;%3e%3cg%20id=&#x27;search_icon&#x27;%20data-name=&#x27;search%20icon&#x27;%20transform=&#x27;translate(-1387%20-125)&#x27;%3e%3cpath%20id=&#x27;search_icon-2&#x27;%20data-name=&#x27;search%20icon&#x27;%20d=&#x27;M1395.176,138.7a5.606,5.606,0,1,1,5.661-5.606A5.626,5.626,0,0,1,1395.176,138.7Zm7.547,0h-.994l-.351-.336a8.02,8.02,0,0,0,1.975-5.27,8.154,8.154,0,1,0-2.856,6.142l.34.349v.984l6.289,6.217,1.875-1.856Z&#x27;%20transform=&#x27;translate(0%200)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div><div class="MainMenu-SearchWrapper"><div class="FullScreenBackground MainMenu-SearchBackground MainMenu-SearchBackground_withSearchBar"></div><button data-testid="mainMenu-SearchCloseButton" class="MainMenu-SearchCloseButton" aria-label="Close Search"><span data-component="icon" data-name="Close" class="MainMenu-SearchCloseIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18.001&#x27;%20viewBox=&#x27;0%200%2018%2018.001&#x27;%3e%3cpath%20id=&#x27;times&#x27;%20d=&#x27;M11.685,105l6.059-6.059a.9.9,0,0,0,0-1.27L16.336,96.26a.9.9,0,0,0-1.27,0l-6.059,6.06L2.948,96.261a.9.9,0,0,0-1.27,0L.27,97.668a.9.9,0,0,0,0,1.27L6.33,105,.27,111.057a.9.9,0,0,0,0,1.27l1.408,1.408a.9.9,0,0,0,1.27,0l6.059-6.06,6.059,6.059a.9.9,0,0,0,1.27,0l1.408-1.408a.9.9,0,0,0,0-1.27Z&#x27;%20transform=&#x27;translate(-0.008%20-95.998)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div></div></nav><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div data-template="article"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="ArticleBase-Header"><ul class="ArticleBase-Topics" data-testid="article-topics"><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_powerShell" href="/operating-systems/powershell" data-discover="true">PowerShell</a></li><li class="ArticleBase-Topic"><a data-component="keyword" class="Keyword Keyword_variant_category Keyword_title_powerShell" href="/operating-systems/powershell" data-discover="true">PowerShell</a></li></ul><div><h1 class="ArticleBase-HeaderTitle"><noscript><span class="ArticleBase-LargeTitle">How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)</span></noscript><span class="ArticleBase-LargeTitle" data-testid="article-title">How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)</span><span class="ArticleBase-DefaultTitle" data-testid="article-default-title">How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)</span></h1><p class="ArticleBase-HeaderSummary" data-testid="article-summary">Here is a quick and easy method for setting up text-to-speech in PowerShell.</p></div></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ArticleBase-Body" data-testid="article-base-body"><div class="ArticleBase-Contributors" data-testid="article-base-contributors"><div class="Contributors Contributors_variant_normal Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brien Posey" href="/author/brien-posey" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Brien Posey" title="Picture of Brien Posey"/></a></div><div class="Contributors-InfoWrapper"><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/brien-posey" data-discover="true">Brien Posey</a><p class="Contributors-Date" data-testid="contributors-date">July 5, 2024</p></div></div><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_normal"><span data-component="icon" data-name="Clock" class="ArticleReadTime-Icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;clock&#x27;%20d=&#x27;M20.5,8A12.5,12.5,0,1,0,33,20.5,12.5,12.5,0,0,0,20.5,8Zm0,22.581A10.081,10.081,0,1,1,30.581,20.5,10.078,10.078,0,0,1,20.5,30.581Zm3.115-5.262-4.279-3.11a.609.609,0,0,1-.247-.489V13.444a.607.607,0,0,1,.6-.6h1.613a.607.607,0,0,1,.6.6v7.142l3.367,2.45a.6.6,0,0,1,.131.847l-.948,1.305a.609.609,0,0,1-.847.131Z&#x27;%20transform=&#x27;translate(-8%20-8)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;clock&#x27;%20d=&#x27;M20.5,8A12.5,12.5,0,1,0,33,20.5,12.5,12.5,0,0,0,20.5,8Zm0,22.581A10.081,10.081,0,1,1,30.581,20.5,10.078,10.078,0,0,1,20.5,30.581Zm3.115-5.262-4.279-3.11a.609.609,0,0,1-.247-.489V13.444a.607.607,0,0,1,.6-.6h1.613a.607.607,0,0,1,.6.6v7.142l3.367,2.45a.6.6,0,0,1,.131.847l-.948,1.305a.609.609,0,0,1-.847.131Z&#x27;%20transform=&#x27;translate(-8%20-8)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span>8 Min<!-- --> <!-- -->View</span></div></div><div class="ArticleVideo-Media"><div data-component="captioned-content" class="CaptionedContent"><div class="CaptionedContent-Content"><div data-component="media"><div class="Media Media_video"><iframe data-ot-ignore="true" loading="lazy" class="Media-Iframe" data-testid="media-iframe" src="https://www.youtube.com/embed/wiZLJS3qd34?si=Lu2dK5R0R8J8d8Rf" frameBorder="0" allow="autoplay;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; " allowFullScreen="" aria-label="Play Audio Media" title=""></iframe></div></div></div><div class="CaptionedContent-Caption" data-testid="captioned-content-caption"><span class="CaptionedContent-CreditTo">ITPro Today</span></div></div></div><div class="SocialShare"><div data-component="social-share" class="SocialShare SocialShare_variant_button ArticleBase-SocialShare ArticleBase-SocialShare_first"><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_linkedin" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="http://www.facebook.com/sharer/sharer.php?u=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_facebook" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="http://www.twitter.com/intent/tweet?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_twitter" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Reddit" href="https://www.reddit.com/submit?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-&amp;title=How%20To%20Make%20PowerShell%20Speak%20(Text-to-Speech%20.NET%20Tutorial)"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Reddit" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_reddit" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Free%206.1.1%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202022%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M440.3%20203.5c-15%200-28.2%206.2-37.9%2015.9-35.7-24.7-83.8-40.6-137.1-42.3L293%2052.3l88.2%2019.8c0%2021.6%2017.6%2039.2%2039.2%2039.2%2022%200%2039.7-18.1%2039.7-39.7s-17.6-39.7-39.7-39.7c-15.4%200-28.7%209.3-35.3%2022l-97.4-21.6c-4.9-1.3-9.7%202.2-11%207.1L246.3%20177c-52.9%202.2-100.5%2018.1-136.3%2042.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6%200-73.8%2074.6-22.9%20100.1-1.8%207.9-2.6%2016.3-2.6%2024.7%200%2083.8%2094.4%20151.7%20210.3%20151.7%20116.4%200%20210.8-67.9%20210.8-151.7%200-8.4-.9-17.2-3.1-25.1%2049.9-25.6%2031.5-99.7-23.8-99.7zM129.4%20308.9c0-22%2017.6-39.7%2039.7-39.7%2021.6%200%2039.2%2017.6%2039.2%2039.7%200%2021.6-17.6%2039.2-39.2%2039.2-22%20.1-39.7-17.6-39.7-39.2zm214.3%2093.5c-36.4%2036.4-139.1%2036.4-175.5%200-4-3.5-4-9.7%200-13.7%203.5-3.5%209.7-3.5%2013.2%200%2027.8%2028.5%20120%2029%20149%200%203.5-3.5%209.7-3.5%2013.2%200%204.1%204%204.1%2010.2.1%2013.7zm-.8-54.2c-21.6%200-39.2-17.6-39.2-39.2%200-22%2017.6-39.7%2039.2-39.7%2022%200%2039.7%2017.6%2039.7%2039.7-.1%2021.5-17.7%2039.2-39.7%2039.2z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Free%206.1.1%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202022%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M440.3%20203.5c-15%200-28.2%206.2-37.9%2015.9-35.7-24.7-83.8-40.6-137.1-42.3L293%2052.3l88.2%2019.8c0%2021.6%2017.6%2039.2%2039.2%2039.2%2022%200%2039.7-18.1%2039.7-39.7s-17.6-39.7-39.7-39.7c-15.4%200-28.7%209.3-35.3%2022l-97.4-21.6c-4.9-1.3-9.7%202.2-11%207.1L246.3%20177c-52.9%202.2-100.5%2018.1-136.3%2042.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6%200-73.8%2074.6-22.9%20100.1-1.8%207.9-2.6%2016.3-2.6%2024.7%200%2083.8%2094.4%20151.7%20210.3%20151.7%20116.4%200%20210.8-67.9%20210.8-151.7%200-8.4-.9-17.2-3.1-25.1%2049.9-25.6%2031.5-99.7-23.8-99.7zM129.4%20308.9c0-22%2017.6-39.7%2039.7-39.7%2021.6%200%2039.2%2017.6%2039.2%2039.7%200%2021.6-17.6%2039.2-39.2%2039.2-22%20.1-39.7-17.6-39.7-39.2zm214.3%2093.5c-36.4%2036.4-139.1%2036.4-175.5%200-4-3.5-4-9.7%200-13.7%203.5-3.5%209.7-3.5%2013.2%200%2027.8%2028.5%20120%2029%20149%200%203.5-3.5%209.7-3.5%2013.2%200%204.1%204%204.1%2010.2.1%2013.7zm-.8-54.2c-21.6%200-39.2-17.6-39.2-39.2%200-22%2017.6-39.7%2039.2-39.7%2022%200%2039.7%2017.6%2039.7%2039.7-.1%2021.5-17.7%2039.2-39.7%2039.2z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Email" href="/cdn-cgi/l/email-protection#e2dd91978088878196dfaa8d95c2b68dc2af838987c2b28d958790b18a878e8ec2b192878389c2cab6879a96cf968dcfb1928787818ac2ccaca7b6c2b697968d908b838ecbc4838f92d9808d869bdfabc7d0d2968a8d97858a96c7d0d2968a87c7d0d2848d8e8e8d958b8c85c7d0d284908d8fc7d0d2abb6b2908dc7d0d2b68d86839bc7d0d28f8b858a96c7d0d28b8c968790879196c7d0d29b8d97ccc7d2a6c7d2a3c7d2a6c7d2a3c7d0d2aa8d95c7d0d2b68dc7d0d2af838987c7d0d2b28d958790b18a878e8ec7d0d2b192878389c7d0d2cab6879a96cf968dcfb1928787818ac7d0d2ccaca7b6c7d0d2b697968d908b838ecbc7d2a6c7d2a38a96969291c7d1a3c7d0a4c7d0a4959595cc8b9692908d968d86839bcc818d8fc7d0a4928d958790918a878e8ec7d0a48a8d95cf968dcf8f838987cf928d958790918a878e8ecf9192878389cf96879a96cf968dcf91928787818acf8c8796cf9697968d908b838ecf"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Email" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_email" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div></div><div class="ArticleBase-BodyContent ArticleBase-BodyContent_Video" data-testid="article-base-body-content"><div data-module="content" class="ContentModule-Wrapper"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">In this video, PowerShell expert Brien Posey demonstrates how to enable text-to-speech in PowerShell using .NET. He shows that you can achieve this with just three lines of code:</span></span></p><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">Add-Type -AssemblyName System.Speech</span></pre><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">$Talk = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer</span></pre><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">$Talk.Speak(&#x27;With dot net you can make PowerShell speak&#x27;)</span></pre><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">The following transcript is edited for clarity and length.</span></span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Transcript:" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Transcript:</span></h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Brien Posey: </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Hello, greetings and welcome. I&#x27;m Brien Posey. In this video, I want to show you how you can leverage .NET to make PowerShell talk. In other words, we will be enabling text-to-speech within PowerShell. Surprisingly, this is easy to do. You can do it with about three lines of code.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id=".NET Namespace, Class, and Method" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">.NET Namespace, Class, and Method</span></h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">First, I want to mention that we are leveraging .NET to get this done. I recently wrote a series of articles on using .NET within PowerShell.</span></p><div data-component="basic-list" class="BasicList BasicList_nestedLevel_0 BasicList_variant_unordered BasicList_limited"><ul data-testid="basic-list-unordered" class="BasicList-UnorderedList"><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Part 1:</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_self" href="https://www.itprotoday.com/powershell/enhancing-powershell-with-net-classes-and-methods">Enhancing PowerShell With .NET Classes and Methods</a></span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Part 2: </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_self" href="https://www.itprotoday.com/powershell/how-to-integrate-net-classes-into-powershell-scripts">How To Integrate .NET Classes Into PowerShell Scripts</a></span></p></div></div></li><li><div class="BasicList-ListItem BasicList-ListItem_variant_unordered"><span data-component="icon" data-name="Circle" class="BasicList-ListIcon BasicList-ListIcon_variant_unordered" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20viewBox=&#x27;0%200%2024%2024&#x27;%20aria-hidden=&#x27;true&#x27;%20focusable=&#x27;false&#x27;%20role=&#x27;img&#x27;%20xml:space=&#x27;preserve&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;100%25&#x27;%20width=&#x27;10&#x27;%3e%3ccircle%20cx=&#x27;12&#x27;%20cy=&#x27;12&#x27;%20r=&#x27;11.5&#x27;%20fill=&#x27;white&#x27;%20stroke=&#x27;%230b0b0b&#x27;%3e%3c/circle%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><div class="BasicList-Item"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Part 3: </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_self" href="https://www.itprotoday.com/powershell/how-to-use-net-properties-and-methods-in-powershell">How To Use .NET Properties and Methods</a></span></p></div></div></li></ul></div><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">If you missed those, here’s what this involves.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">I opened my web browser to </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://learn.microsoft.com/en-us/dotnet/api/">the .NET API browser</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">. It’s where you can look at all the various .NET namespaces, classes, and methods. So, the namespace that we will use is called System.Speech.Synthesis.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">I am going to go ahead and click on it. It takes me to the System.Speech.Synthesis namespace page. Right away, you can see all the classes that exist within this namespace. Now, the class that we will use is called SpeechSynthesizer. I will go ahead and click on this. Then, we can see some examples and all the properties and methods that apply to this class.</span></p><p data-component="related-article" class="RelatedArticle"><span data-testid="related-article-title" class="RelatedArticle-Title">Related:</span><a class="RelatedArticle-RelatedContent" href="/powershell/chatgpt-integration-in-powershell-scripting-demo-" target="_self" data-discover="true">ChatGPT Integration in PowerShell (Scripting Demo)</a></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Now, the method that we will use is called Speak. And you can see the Speak method right here. If I click on this, it opens a page with some coding samples. Coding samples are </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_self" href="https://www.itprotoday.com/software-development/programming-languages/c-programming-language">written in C</a></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">, not in PowerShell, but that is okay because it is easy to leverage this within PowerShell.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Why Use .NET?" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Why Use .NET?</span></h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Before I show you how this works, I want to answer a big question: Why would you use .NET to do this?</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Well, there are two main reasons why you might want to use .NET within a PowerShell script.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">One reason is that .NET will allow you to do things that you cannot do using native PowerShell. For example, I don’t know of a PowerShell cmdlet that supports text-to-speech. If we want to enable text-to-speech, we have to leverage .NET.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">The other reason is that .NET can simplify the coding. After all, sometimes it might be possible to do something using native PowerShell but easier using .NET. Now, I do not have an example of how it is long and cumbersome to enable text-to-speech through PowerShell without .NET and how .NET makes it easy. As I said a moment ago, PowerShell does not natively support text-to-speech. However, I can show you an example from quite some time ago.</span></p><p data-component="related-article" class="RelatedArticle"><span data-testid="related-article-title" class="RelatedArticle-Title">Related:</span><a class="RelatedArticle-RelatedContent" href="/powershell/how-to-create-your-own-powershell-cmdlets-video-tutorial-" target="_self" data-discover="true">How To Create Your Own PowerShell Cmdlets (Video Tutorial)</a></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">When I was a kid growing up in the ‘80s, I had an old RadioShack Color Computer. Back then, it was possible to do text-to-speech, but you had to have a text-to-speech cartridge. While preparing to record this video, I found a copy of the instruction manual for that sound speech cartridge online.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Here, you can see the Color Computer Speech Sound Cartridge instruction manual. The main thing that I wanted to show you is what&#x27;s involved in creating text-to-speech. You will notice a couple of columns – decimal and hex – and a series of commands. You manipulated individual bits to enable text-to-speech on the old RadioShack Color Computer using the Speech Sound Cartridge. You had to do so based on a reference table.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">So, what does all this look like in programmatic form? I don&#x27;t want to go deeply into this, but I will give you a code sample. The instruction manual provided a sample program that allows you to do text-to-speech. At first glance, this doesn&#x27;t look all that complicated. But you will notice that we have some statements in this program called Peek and Poke. In the old RadioShack basic, a Peek statement would look at a particular memory address, and a Poke statement would insert a value into a specific memory address. Right here, we have an If statement based on a Peek. We are looking at a particular memory address, checking to see its value, and then returning a value based on the value in that memory address. Likewise, the Poke statement you see here inserts a value into a specific memory address. So, even though this program doesn&#x27;t look all that complicated at first glance, it uses direct bit manipulation in memory.</span></p><p data-component="related-article" class="RelatedArticle"><span data-testid="related-article-title" class="RelatedArticle-Title">Related:</span><a class="RelatedArticle-RelatedContent" href="/powershell/how-to-use-ps2exe-to-convert-powershell-scripts-into-exe-files" target="_self" data-discover="true">How To Use PS2EXE To Convert PowerShell Scripts Into EXE Files</a></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">At least in the past, enabling text-to-speech programmatically tended to be a complicated endeavor. In the case of PowerShell, though, it&#x27;s super simple to do, thanks to .NET.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="How To Enable Text-to-Speech in PowerShell" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">How To Enable Text-to-Speech in PowerShell</span></h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">So, how does this work? As mentioned, we will use the Speak method from the .NET and class SpeechSynthesizer. On the surface, this looks like a complicated example. However, in PowerShell, we only need three lines of code.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Let&#x27;s go ahead and look at those three lines of code.</span></p><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">Add-Type -AssemblyName System.Speech</span></pre><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">$Talk = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer</span></pre><pre data-component="code-block" class="CodeBlock"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">$Talk.Speak (‘With dot net you can make PowerShell speak’)</span></pre><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Remember, </span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">System.Speech.Synthesis</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a .NET namespace. S</span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_italic">peechSynthesizer</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"> is a .NET class.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Let me go ahead and switch over to PowerShell. I&#x27;ll go ahead and run the script. I&#x27;m getting a security warning. I&#x27;ll press R to run it …</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">PowerShell Voice:</span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">With dot net you can make PowerShell speak.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Posey: </span></span><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">… And you can see that PowerShell indeed spoke.</span></p><h2 class="ContentText ContentText_variant_h2 ContentText_align_left" data-testid="content-text" id="Use Cases for Text-to-Speech" style="scroll-margin-top:10rem;scroll-snap-margin-top:10rem"><span class="ContentText-BodyTextChunk ContentText-BodyTextChunk_bold">Use Cases for Text-to-Speech</span></h2><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Now, the big question: Why might you want to use something like this?</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">Well, this can be convenient in the case of long-running scripts. For example, in my environment, I have a backup script and could see myself embedding a verbal prompt at the end of the script to let me know when it&#x27;s finished running. With that, I’ll know when my backups are complete without looking at the screen.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">You might also embed a verbal prompt in a long-running script in response to a warning condition or an error condition that may have occurred. So that way, if you have a script that you&#x27;ve left unattended but that is within earshot, you can hear when something goes wrong, as opposed to having to periodically get up and look at the script to make sure that it&#x27;s still running.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">At any rate, that&#x27;s how you enable text-to-speech within PowerShell using .NET.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNormal" data-testid="content-text">I&#x27;m Brien Posey. Thanks for watching.</span></p></div></div><div class="SocialShare"><div data-component="social-share" class="SocialShare SocialShare_variant_button ArticleBase-SocialShare ArticleBase-SocialShare_second"><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_linkedin" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="http://www.facebook.com/sharer/sharer.php?u=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_facebook" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="http://www.twitter.com/intent/tweet?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_twitter" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Reddit" href="https://www.reddit.com/submit?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-&amp;title=How%20To%20Make%20PowerShell%20Speak%20(Text-to-Speech%20.NET%20Tutorial)"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Reddit" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_reddit" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Free%206.1.1%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202022%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M440.3%20203.5c-15%200-28.2%206.2-37.9%2015.9-35.7-24.7-83.8-40.6-137.1-42.3L293%2052.3l88.2%2019.8c0%2021.6%2017.6%2039.2%2039.2%2039.2%2022%200%2039.7-18.1%2039.7-39.7s-17.6-39.7-39.7-39.7c-15.4%200-28.7%209.3-35.3%2022l-97.4-21.6c-4.9-1.3-9.7%202.2-11%207.1L246.3%20177c-52.9%202.2-100.5%2018.1-136.3%2042.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6%200-73.8%2074.6-22.9%20100.1-1.8%207.9-2.6%2016.3-2.6%2024.7%200%2083.8%2094.4%20151.7%20210.3%20151.7%20116.4%200%20210.8-67.9%20210.8-151.7%200-8.4-.9-17.2-3.1-25.1%2049.9-25.6%2031.5-99.7-23.8-99.7zM129.4%20308.9c0-22%2017.6-39.7%2039.7-39.7%2021.6%200%2039.2%2017.6%2039.2%2039.7%200%2021.6-17.6%2039.2-39.2%2039.2-22%20.1-39.7-17.6-39.7-39.2zm214.3%2093.5c-36.4%2036.4-139.1%2036.4-175.5%200-4-3.5-4-9.7%200-13.7%203.5-3.5%209.7-3.5%2013.2%200%2027.8%2028.5%20120%2029%20149%200%203.5-3.5%209.7-3.5%2013.2%200%204.1%204%204.1%2010.2.1%2013.7zm-.8-54.2c-21.6%200-39.2-17.6-39.2-39.2%200-22%2017.6-39.7%2039.2-39.7%2022%200%2039.7%2017.6%2039.7%2039.7-.1%2021.5-17.7%2039.2-39.7%2039.2z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Free%206.1.1%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20(Icons:%20CC%20BY%204.0,%20Fonts:%20SIL%20OFL%201.1,%20Code:%20MIT%20License)%20Copyright%202022%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M440.3%20203.5c-15%200-28.2%206.2-37.9%2015.9-35.7-24.7-83.8-40.6-137.1-42.3L293%2052.3l88.2%2019.8c0%2021.6%2017.6%2039.2%2039.2%2039.2%2022%200%2039.7-18.1%2039.7-39.7s-17.6-39.7-39.7-39.7c-15.4%200-28.7%209.3-35.3%2022l-97.4-21.6c-4.9-1.3-9.7%202.2-11%207.1L246.3%20177c-52.9%202.2-100.5%2018.1-136.3%2042.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6%200-73.8%2074.6-22.9%20100.1-1.8%207.9-2.6%2016.3-2.6%2024.7%200%2083.8%2094.4%20151.7%20210.3%20151.7%20116.4%200%20210.8-67.9%20210.8-151.7%200-8.4-.9-17.2-3.1-25.1%2049.9-25.6%2031.5-99.7-23.8-99.7zM129.4%20308.9c0-22%2017.6-39.7%2039.7-39.7%2021.6%200%2039.2%2017.6%2039.2%2039.7%200%2021.6-17.6%2039.2-39.2%2039.2-22%20.1-39.7-17.6-39.7-39.2zm214.3%2093.5c-36.4%2036.4-139.1%2036.4-175.5%200-4-3.5-4-9.7%200-13.7%203.5-3.5%209.7-3.5%2013.2%200%2027.8%2028.5%20120%2029%20149%200%203.5-3.5%209.7-3.5%2013.2%200%204.1%204%204.1%2010.2.1%2013.7zm-.8-54.2c-21.6%200-39.2-17.6-39.2-39.2%200-22%2017.6-39.7%2039.2-39.7%2022%200%2039.7%2017.6%2039.7%2039.7-.1%2021.5-17.7%2039.2-39.7%2039.2z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Email" href="/cdn-cgi/l/email-protection#6b54181e09010e081f5623041c4b3f044b260a000e4b3b041c0e1938030e07074b381b0e0a004b433f0e131f461f0446381b0e0e08034b45252e3f4b3f1e1f0419020a07424d0a061b5009040f1256224e595b1f03041e0c031f4e595b1f030e4e595b0d040707041c02050c4e595b0d1904064e595b223f3b19044e595b3f040f0a124e595b06020c031f4e595b02051f0e190e181f4e595b12041e454e5b2f4e5b2a4e5b2f4e5b2a4e595b23041c4e595b3f044e595b260a000e4e595b3b041c0e1938030e07074e595b381b0e0a004e595b433f0e131f461f0446381b0e0e08034e595b45252e3f4e595b3f1e1f0419020a07424e5b2f4e5b2a031f1f1b184e582a4e592d4e592d1c1c1c45021f1b19041f040f0a12450804064e592d1b041c0e1918030e07074e592d03041c461f0446060a000e461b041c0e1918030e070746181b0e0a00461f0e131f461f0446181b0e0e080346050e1f461f1e1f0419020a0746"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_button"><span data-component="icon" data-name="Email" class="SocialShare-Icon SocialShare-Icon_variant_button SocialShare-Icon_type_email" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;33.333&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2033.333%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-envelope&#x27;%20data-name=&#x27;Icon%20awesome-envelope&#x27;%20d=&#x27;M32.7,12.755a.392.392,0,0,1,.632.306V26.375A3.126,3.126,0,0,1,30.208,29.5H3.125A3.126,3.126,0,0,1,0,26.375V13.068a.389.389,0,0,1,.632-.306c1.458,1.133,3.392,2.572,10.033,7.4,1.374,1,3.691,3.112,6,3.1,2.324.02,4.688-2.135,6.009-3.1C29.316,15.333,31.243,13.888,32.7,12.755ZM16.667,21.167c1.51.026,3.685-1.9,4.779-2.7,8.639-6.27,9.3-6.816,11.289-8.379a1.558,1.558,0,0,0,.6-1.23V7.625A3.126,3.126,0,0,0,30.208,4.5H3.125A3.126,3.126,0,0,0,0,7.625V8.862a1.567,1.567,0,0,0,.6,1.23c1.992,1.556,2.65,2.109,11.289,8.379C12.982,19.266,15.156,21.193,16.667,21.167Z&#x27;%20transform=&#x27;translate(0%20-4.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div></div><div class="ArticleBase-ContributorsWrapper"><h2 class="ArticleBase-ContributorsTitle">About the Author</h2><div class="ArticleBase-ContributorsSummary"><div data-component="contributor-summary" class="ContributorSummary ContributorSummary_variant_author"><div class="ContributorSummary-ImageWrapper ContributorSummary-ImageWrapper_variant_author"><a data-testid="contributor-summary-img-link" href="/author/brien-posey" data-discover="true"><img data-component="image" class="ContributorSummary-Image ContributorSummary-Image_variant_author" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg?width=400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Brien Posey" title="Brien Posey"/></a></div><div class="ContributorSummary-InfoWrapper ContributorSummary-InfoWrapper_variant_author"><div class="ContributorSummary-TitleWrapper"><a data-testid="contributor-summary-title-link" href="/author/brien-posey" data-discover="true"><p class="ContributorSummary-Title ContributorSummary-Title_variant_author" data-testid="contributor-summary-title">Brien Posey</p></a></div><div class="ContributorSummary-SubTitleWrapper ContributorSummary-SubTitleWrapper_variant_author"><p class="ContributorSummary-SubTitle ContributorSummary-SubTitle_variant_author" data-testid="contributor-summary-subtitle"></p></div><div class="ContributorSummary-ContentWrapper ContributorSummary-ContentWrapper_variant_author"><div class="ContributorSummary-Content ContributorSummary-Content_variant_author" data-testid="contributor-summary-content"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">Brien Posey is a bestselling technology author, a speaker, and a 20X Microsoft MVP. In addition to his ongoing work in IT, Posey has spent the last several years training as a commercial astronaut candidate in preparation to fly on a mission to study polar mesospheric clouds from space.</span></p><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text"><a class="ContentText-BodyTextChunk ContentText-BodyTextChunk_link" target="_blank" href="https://brienposey.com/">https://brienposey.com/</a></span></p></div></div></div><div class="ContributorSummary-SeeMore"><a data-component="button" class="Button Button_size_medium Button_variant_textLink" rel="" href="/author/brien-posey" data-discover="true"><span class="Button-ContentWrapper"><span class="ContributorSummary-SeeMoreText"><span>See more from <!-- -->Brien Posey</span><span data-component="icon" data-name="ChevronRight" class="ContributorSummary-SeeMoreIcon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></span></a></div></div></div></div><div data-module="newsletter-signup-promo"><div class="SubscribeBannerTopicPage SubscribeBannerTopicPage_mode_dark SubscribeBannerTopicPage_variant_vertical ArticleBase-Newsletter"><div class="SubscribeBannerTopicPage-Content"><div class="SubscribeBannerTopicPage-Title" data-testid="subscribeBannerTopicPage_title">Sign up for the ITPro Today newsletter</div><div class="SubscribeBannerTopicPage-Message" data-testid="subscribeBannerTopicPage_message">Stay on top of the IT universe with commentary, news analysis, how-to&#x27;s, and tips delivered to your inbox daily.</div><div class="SubscribeBannerTopicPage-Button" data-testid="subscribe-banner-topic-page-button"><a data-component="button" data-testid="bannerTopicPageNewsletterButton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank"><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div></div></div><p class="IirisRecommendation-Title">You May Also Like</p><hr class="IirisRecommendation-TitleHr"/><div bordercolor="#e6e6e6" borderRadius="4" brand_family="enterpriseit" cardwidth="210px" class="iris-recommend iris-recommend-non-sticky" columns="2" data-component="iris-recommendation" division="it" dropShadow="#FFEB00" entity="content" entitytagbackground="#333333BF" entitytagbordercolor="#333333" entitytagfont="#ffffff" id="widget-1717150909887" imageHeight="182" imagePosition="vertical" imageWidth="324" recipe="related-items" redirectmode="same" rows="2" showborder="yes" showby="" showentitytag="yes" showtime="" title="" widgetType="grid" brand="itprotoday" itemUrl="http://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-" style="max-width:1100px"></div><div><div class="ArticleBase-AdSponsored"></div></div></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Editor's Choice</h3></div><div class="ContentCards-Content ContentCards-Content_default"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">jobs key on keyboard</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg?width=300&amp;auto=webp&amp;quality=80&amp;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_careerManagement HorizontalCard-Keyword" href="/career-management" data-discover="true">Career Management</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce" data-discover="true">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce" data-discover="true">IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Nov 20, 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 href="/green-it/how-do-i-advocate-for-green-it-without-being-dismissed-as-a-lorax-" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">an it pro is disappointed as a poster for sustainability is switched with one for financial results and garbage piles up next to a recycling bin</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e3cff5562b9ae01/67462526b7779a7c7bca6346/green_IT_sustainability_hero.gif?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e3cff5562b9ae01/67462526b7779a7c7bca6346/green_IT_sustainability_hero.gif?width=300&amp;auto=webp&amp;quality=80&amp;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_greenIt HorizontalCard-Keyword" href="/it-management/it-sustainability/green-it" data-discover="true">Green IT</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/green-it/how-do-i-advocate-for-green-it-without-being-dismissed-as-a-lorax-" data-discover="true">How Do I Advocate for Green IT Without Being Dismissed as a Lorax?</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/green-it/how-do-i-advocate-for-green-it-without-being-dismissed-as-a-lorax-" data-discover="true">How Do I Advocate for Green IT Without Being Dismissed as a Lorax?</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Nov 27, 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 href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">person using a laptop with the Ubuntu logo on its scree</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg?width=300&amp;auto=webp&amp;quality=80&amp;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_itOperations HorizontalCard-Keyword" href="/it-management/it-operations" data-discover="true">IT Operations</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu" data-discover="true">3 Simple Ways to Install and Run a Virtual Machine on Ubuntu</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu" data-discover="true">3 Simple Ways to Install and Run a Virtual Machine on Ubuntu</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Nov 22, 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><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" href="/devops/itpro-today-s-2024-state-of-devops-report" target="" data-discover="true"><p class="ContentList-ListItemTitle">ITPro Today’s 2024 State of DevOps Report</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Dec 16, 2024<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>2 Min<!-- --> <!-- -->Read</span></div></div></span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" target="" data-discover="true"><p class="ContentList-ListItemTitle">BCDR Basics: A Quick Reference Guide for Business Continuity &amp; Disaster Recovery</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Oct 10, 2024<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" href="/career-management/itpro-today-s-2024-it-priorities-report" target="" data-discover="true"><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" href="/career-management/tech-careers-quick-reference-guide-to-it-job-titles" target="" data-discover="true"><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></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" href="/documents" target="_blank" data-discover="true">See all ITPro Resources</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-chevron-right&#x27;%20data-name=&#x27;Icon%20awesome-chevron-right&#x27;%20d=&#x27;M12.655,11.316,3.122,20.662a1.194,1.194,0,0,1-1.665,0L.345,19.572a1.138,1.138,0,0,1,0-1.63L7.9,10.5.343,3.058a1.138,1.138,0,0,1,0-1.63L1.457.338a1.194,1.194,0,0,1,1.665,0l9.533,9.346A1.138,1.138,0,0,1,12.655,11.316Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></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 href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads" data-discover="true"><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&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfec5fcbd31c7f2a6/673b100cd675084d0707e288/AI-chip-1716x965_-_2024-11-18.jpg?width=300&amp;auto=webp&amp;quality=80&amp;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" href="/cloud-computing" data-discover="true">Cloud Computing</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads" data-discover="true">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" href="/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads" data-discover="true">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 href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees" data-discover="true"><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&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd277e0c4548d3c42/673278ac8d8bc463268a48b4/SaaS-1716x965_-_2024-11-11.jpg?width=300&amp;auto=webp&amp;quality=80&amp;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" href="/cloud-computing" data-discover="true">Cloud Computing</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees" data-discover="true">Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees" data-discover="true">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 href="/devops/devops-key-to-faster-more-efficient-government-software-development" data-discover="true"><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&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdf272a7a39b366c2/672b48253c936766d5282090/DevOps-code-1716x965_-_2024-09-06.jpg?width=300&amp;auto=webp&amp;quality=80&amp;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" href="/it-management/devops" data-discover="true">DevOps</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/devops/devops-key-to-faster-more-efficient-government-software-development" data-discover="true">DevOps: Key to Faster, More Efficient Government Software Development</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/devops/devops-key-to-faster-more-efficient-government-software-development" data-discover="true">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&#x27;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" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank"><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" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" data-discover="true"><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&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd6267f0056e427cb/6707f1e94c215e0bdbe8db2f/image-1795x965_(2).jpg?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_disasterRecovery ContentPreview-Category" href="/data-storage/disaster-recovery" data-discover="true">Disaster Recovery</a><a class="ContentPreview-IconWrapper" title="Link to all document" data-testid="content-preview-icon-link" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" data-discover="true"><span data-component="icon" data-name="Document" class="ContentPreview-Icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;10.5&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2010.5%2014&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-file-alt&#x27;%20data-name=&#x27;Icon%20awesome-file-alt&#x27;%20d=&#x27;M6.125,3.719V0H.656A.655.655,0,0,0,0,.656V13.344A.655.655,0,0,0,.656,14H9.844a.655.655,0,0,0,.656-.656V4.375H6.781A.658.658,0,0,1,6.125,3.719Zm1.75,6.453a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V9.953a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.75a.329.329,0,0,1-.328.328H2.953a.329.329,0,0,1-.328-.328V8.2a.329.329,0,0,1,.328-.328H7.547a.329.329,0,0,1,.328.328Zm0-1.969v.219A.329.329,0,0,1,7.547,7H2.953a.329.329,0,0,1-.328-.328V6.453a.329.329,0,0,1,.328-.328H7.547A.329.329,0,0,1,7.875,6.453ZM10.5,3.333V3.5H7V0h.167a.656.656,0,0,1,.465.191l2.677,2.68A.654.654,0,0,1,10.5,3.333Z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" data-discover="true">BCDR Basics: A Quick Reference Guide for Business Continuity &amp; Disaster Recovery</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery" data-discover="true">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" href="/powershell/introduction-to-powershell-environment-variables" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">technology interface with a person&#x27;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&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_powerShell ContentPreview-Category" href="/operating-systems/powershell" data-discover="true">PowerShell</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/powershell/introduction-to-powershell-environment-variables" data-discover="true">Introduction To PowerShell Environment Variables</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/powershell/introduction-to-powershell-environment-variables" data-discover="true">Introduction To PowerShell Environment Variables</a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a href="/" data-discover="true"><img title="ITPro Today Logo" data-component="image" class="Footer-LogoImage Footer-LogoImage_length_2" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="ITPro Today Logo"/></a></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Discover More</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.datacenterknowledge.com/">Data Center Knowledge</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.informationweek.com/">InformationWeek</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.networkcomputing.com/">Network Computing</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://www.nojitter.com/">No Jitter</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://afcom.com/">AFCOM</a></div></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Working With Us</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" rel="noreferrer" href="/about-us" target="_blank" data-discover="true">About Us</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://info.wrightsmedia.com/informa-licensing-reprints-request">Reprints</a><a class="LinkSection-Link" rel="noreferrer" href="/advertise" target="_blank" data-discover="true">Advertise</a><a class="LinkSection-Link" rel="noreferrer" href="/contact-us" target="_blank" data-discover="true">Contact Us</a></div></div><div data-testid="registration" class="Footer-RegistrationWrapper"><div class="RegistrationSection RegistrationSection_linkSectionLength_2"><h5 class="RegistrationSection-Title">Join Us</h5><div class="Layout-Register Layout-Register_variant_footer"></div><div class="Layout-NewsLetter Layout-NewsLetter_variant_footer"><div data-module="newsletter-signup-promo"><a data-component="button" data-testid="footerNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-footer" href="https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_itpb86&amp;ch=itpsitebtn" target="_blank"><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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20320%20512&#x27;%3e%3cpath%20d=&#x27;M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="https://twitter.com/ITProToday"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20viewBox=&#x27;0%200%20512%20512&#x27;%3e%3c!--!%20Font%20Awesome%20Pro%206.4.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license%20(Commercial%20License)%20Copyright%202023%20Fonticons,%20Inc.%20--%3e%3cpath%20d=&#x27;M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/company/itpro-today/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20448%20512&#x27;%3e%3cpath%20d=&#x27;M100.28%20448H7.4V148.9h92.88zM53.79%20108.1C24.09%20108.1%200%2083.5%200%2053.8a53.79%2053.79%200%200%201%20107.58%200c0%2029.7-24.1%2054.3-53.79%2054.3zM447.9%20448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29%200-55.69%2037.7-55.69%2076.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5%2042.69-48.3%2087.88-48.3%2094%200%20111.28%2061.9%20111.28%20142.3V448z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Youtube" href="https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="Youtube" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_youtube" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20viewBox=&#x27;0%200%20576%20512&#x27;%3e%3cpath%20d=&#x27;M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" href="https://news.google.com/publications/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m91.734%20118.863%2012.516-62.917%20151.894%2030.213%20151.895-30.213%2012.515%2062.917%2024.09%204.791v-107.991h-377v107.991z&#x27;/%3e%3cpath%20d=&#x27;m512.288%20167.697-85.399-16.987%2010.127%2050.915h37.628v155.322z&#x27;/%3e%3cpath%20d=&#x27;m179.256%20101.453-51.436-10.231-4.238%2021.306z&#x27;/%3e%3cpath%20d=&#x27;m406.429%20201.625-21.961-110.403-384.468%2076.475%2037.644%20189.25v-155.322z&#x27;/%3e%3cpath%20d=&#x27;m444.644%20231.625h-377v265h377zm-127%20117.5h82v30h-82zm82-60v30h-82v-30zm-199.5%20162.5c-48.248%200-87.5-39.252-87.5-87.5s39.252-87.5%2087.5-87.5c22.574%200%2044.005%208.572%2060.345%2024.138l-20.692%2021.722c-10.736-10.228-24.818-15.86-39.653-15.86-31.706%200-57.5%2025.794-57.5%2057.5s25.794%2057.5%2057.5%2057.5c26.518%200%2048.901-18.046%2055.516-42.5h-55.516v-30h87.5v15c0%2048.248-39.252%2087.5-87.5%2087.5zm117.5-42.5h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_self" 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(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;25&#x27;%20height=&#x27;25&#x27;%20viewBox=&#x27;0%200%2025%2025&#x27;%3e%3cpath%20id=&#x27;Icon_awesome-rss&#x27;%20data-name=&#x27;Icon%20awesome-rss&#x27;%20d=&#x27;M7.147,23.676A3.574,3.574,0,1,1,3.574,20.1,3.574,3.574,0,0,1,7.147,23.676Zm9.8,2.637A16.968,16.968,0,0,0,.937,10.3.892.892,0,0,0,0,11.193v2.682a.893.893,0,0,0,.831.894,12.5,12.5,0,0,1,11.65,11.65.893.893,0,0,0,.894.831h2.682a.892.892,0,0,0,.893-.937Zm8.05.016A25.017,25.017,0,0,0,.921,2.251.892.892,0,0,0,0,3.144V5.826a.9.9,0,0,0,.862.893A20.539,20.539,0,0,1,20.531,26.388a.9.9,0,0,0,.893.862h2.682A.892.892,0,0,0,25,26.329Z&#x27;%20transform=&#x27;translate(0%20-2.25)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div></div><div class="CopyrightsSection"><div class="CopyrightsSection-Background"></div><div data-testid="copyrights" class="CopyrightsSection-Wrapper"><a data-testid="businessUnit" class="CopyrightsSection-BusinessLink" target="_blank" href="https://www.informa.com/"><img title="Informa" data-component="image" class="CopyrightsSection-BusinessImage" data-src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2025. This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" target="_blank" href="https://www.techtarget.com/">Home<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html">CCPA: Do not sell my personal info<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" href="/cookie-policy" target="_blank" data-discover="true">Cookies<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.techtarget.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://tech.informa.com/terms-and-conditions">Terms</a></div></div></div></div></footer></div></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((storageKey2, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(storageKey2); } })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false},"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">; import * as route0 from "/assets/root-BIuf-57F.js"; import * as route1 from "/assets/_topic._slug._index-NLhdOpms.js"; window.__reactRouterManifest = { "entry": { "module": "/assets/entry.client-fWB18xdV.js", "imports": [ "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/index-BlRIwUgC.js" ], "css": [] }, "routes": { "root": { "id": "root", "path": "", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-BIuf-57F.js", "imports": [ "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/index-BlRIwUgC.js", "/assets/with-props-C4rFUyxV.js", "/assets/gtm-DGm0KW_T.js", "/assets/contentPreview-raReixWB.js", "/assets/_-BJdr63HM.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/provider-vRHVWpv0.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/socialShare-BbqkDzDu.js", "/assets/link-C1MkzDH5.js", "/assets/button-DlgCHeeG.js", "/assets/util-BlbSWXsE.js", "/assets/searchBar-CEbzLjII.js", "/assets/useSearchBar-B0qpfoK9.js", "/assets/navigation-BPrJWSO7.js", "/assets/redirection-DiAII56c.js", "/assets/meta-DL0KpjEK.js", "/assets/form-5uUV5058.js" ], "css": [] }, "routes/$topic.$slug._index": { "id": "routes/$topic.$slug._index", "parentId": "root", "path": ":topic/:slug", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_topic._slug._index-NLhdOpms.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/contentPreview-raReixWB.js", "/assets/sidebar-C38SyLXI.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/articleMultiSection-B_lQ5uys.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/provider-vRHVWpv0.js", "/assets/button-DlgCHeeG.js", "/assets/topicList-DLI_z99T.js", "/assets/gridLayout-wIbp2Hs_.js", "/assets/featureImageHeader-B2n6UlsK.js", "/assets/link-C1MkzDH5.js", "/assets/useWeatherWidget-CqdUxz0N.js", "/assets/string-BS_NwYxO.js", "/assets/meta-DL0KpjEK.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/contentCards-aFwo1o7S.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/toNumber-DCajaT_r.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/index-BlRIwUgC.js", "/assets/socialShare-BbqkDzDu.js", "/assets/contributorSummary-CYbbZoZR.js", "/assets/programHeader-UEd8-rbR.js", "/assets/categoryHeader-BNorRpUl.js", "/assets/redirection-DiAII56c.js", "/assets/resources-DIZqnfs4.js", "/assets/index-BObwWQ7a.js", "/assets/breadcrumb-D99WjBeI.js", "/assets/listContent-DPrFxO8G.js", "/assets/utils-Bn24zYNJ.js", "/assets/pagination-CotFOi0g.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/_getPrototype-3cCw-LUg.js", "/assets/useStorage-gorQNo4e.js" ], "css": [] }, "routes/_index": { "id": "routes/_index", "parentId": "root", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_index-fCp8yBJU.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/moduleSection-BD4rkMdo.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/useStorage-gorQNo4e.js", "/assets/meta-DL0KpjEK.js", "/assets/link-C1MkzDH5.js", "/assets/contentCards-aFwo1o7S.js", "/assets/contentPreview-raReixWB.js", "/assets/weatherHomepage-CnI474xN.js", "/assets/button-DlgCHeeG.js", "/assets/socialShare-BbqkDzDu.js", "/assets/index-BObwWQ7a.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/toNumber-DCajaT_r.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/resources-DIZqnfs4.js" ], "css": [] }, "routes/$topic._index": { "id": "routes/$topic._index", "parentId": "root", "path": ":topic", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_topic._index-DgKjDyGQ.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/breadcrumb-D99WjBeI.js", "/assets/categoryHeader-BNorRpUl.js", "/assets/listContent-DPrFxO8G.js", "/assets/searchBar-CEbzLjII.js", "/assets/useSearchBar-B0qpfoK9.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/contentPreview-raReixWB.js", "/assets/utils-Bn24zYNJ.js", "/assets/pagination-CotFOi0g.js", "/assets/button-DlgCHeeG.js", "/assets/filterSection-B0_8V9sY.js", "/assets/topicList-DLI_z99T.js", "/assets/gridLayout-wIbp2Hs_.js", "/assets/featureImageHeader-B2n6UlsK.js", "/assets/moduleSection-BD4rkMdo.js", "/assets/articleMultiSection-B_lQ5uys.js", "/assets/provider-vRHVWpv0.js", "/assets/string-BS_NwYxO.js", "/assets/meta-DL0KpjEK.js", "/assets/useWeatherWidget-CqdUxz0N.js", "/assets/link-C1MkzDH5.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/sidebar-C38SyLXI.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/contentCards-aFwo1o7S.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/toNumber-DCajaT_r.js", "/assets/index-BlRIwUgC.js", "/assets/_getPrototype-3cCw-LUg.js", "/assets/util-BlbSWXsE.js", "/assets/input-zB_nkUn5.js", "/assets/_baseForOwn-ClWWO-WO.js", "/assets/index-BObwWQ7a.js", "/assets/socialShare-BbqkDzDu.js", "/assets/weatherHomepage-CnI474xN.js", "/assets/resources-DIZqnfs4.js", "/assets/contributorSummary-CYbbZoZR.js", "/assets/programHeader-UEd8-rbR.js", "/assets/redirection-DiAII56c.js", "/assets/useStorage-gorQNo4e.js" ], "css": [] } }, "url": "/assets/manifest-c120b55d.js", "version": "c120b55d" }; window.__reactRouterRouteModules = {"root":route0,"routes/$topic.$slug._index":route1}; import("/assets/entry.client-fWB18xdV.js");</script><!--$?--><template id="B:0"></template><!--/$--><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_1664\":-5,\"_1665\":-5},\"loaderData\",{\"_3\":4,\"_882\":883},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_27\":28,\"_33\":34,\"_37\":24,\"_38\":39,\"_42\":-7,\"_43\":44,\"_49\":-7,\"_50\":51,\"_62\":63,\"_64\":65,\"_83\":84,\"_770\":771,\"_772\":-7,\"_773\":774,\"_787\":788,\"_818\":819},\"href\",\"http://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\",\"brand\",\"itprotoday\",\"domainUrl\",\"https://www.itprotoday.com\",\"authenticationStatus\",\"anonymous\",\"siteName\",\"ITPro Today\",\"ads\",{\"_17\":18,\"_19\":20,\"_21\":22,\"_23\":24,\"_25\":26},\"networkId\",3834,\"parentAdUnit\",\"itprotoday.home\",\"enabledAds\",\"all\",\"checkClientIP\",false,\"disableSponsorBar\",true,\"authConfig\",{\"_29\":24,\"_30\":-7,\"_31\":-7,\"_32\":24},\"enabled\",\"authenticationConfigId\",\"standaloneRegistrationPage\",\"disableCaptcha\",\"vwo\",{\"_29\":26,\"_35\":36},\"accountId\",\"734041\",\"isDctsTurnOn\",\"oneTrust\",{\"_40\":41},\"siteId\",\"dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e\",\"cookieBanner\",\"gtmIds\",{\"_45\":46,\"_47\":48},\"primary\",\"GTM-5523ZCM\",\"secondary\",\"GTM-MTN2X7K\",\"pageContent\",\"ui\",{\"_7\":8,\"_52\":53,\"_54\":55},\"theme\",\"theme1\",\"font\",{\"_45\":56,\"_47\":61},{\"_57\":58,\"_59\":60},\"name\",\"Inter\",\"url\",\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900\u0026display=swap\",{\"_57\":58,\"_59\":60},\"environment\",\"prod\",\"featureToggles\",{\"_66\":24,\"_67\":24,\"_68\":24,\"_69\":24,\"_70\":24,\"_71\":24,\"_72\":24,\"_73\":24,\"_74\":24,\"_75\":24,\"_76\":77,\"_78\":24,\"_79\":24,\"_80\":26,\"_81\":26,\"_82\":26},\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"legacyHomepage\",\"oneTrustEnabled\",\"transcendEnabled\",\"useTechInformaBar\",\"layout\",{\"_85\":86,\"_106\":107,\"_130\":131,\"_576\":577,\"_694\":695,\"_701\":702,\"_768\":26,\"_769\":24},\"socialLinks\",[87,91,94,97,100,103],{\"_88\":89,\"_59\":90},\"type\",\"Facebook\",\"https://www.facebook.com/ITProToday/\",{\"_88\":92,\"_59\":93},\"Twitter\",\"https://twitter.com/ITProToday\",{\"_88\":95,\"_59\":96},\"Linkedin\",\"https://www.linkedin.com/company/itpro-today/\",{\"_88\":98,\"_59\":99},\"Youtube\",\"https://www.youtube.com/channel/UCedUgT8R7qC3vsOSxXS5-ZA\",{\"_88\":101,\"_59\":102},\"GoogleNews\",\"https://news.google.com/publications/CAAqKQgKIiNDQklTRkFnTWFoQUtEbWwwY0hKdmRHOWtZWGt1WTI5dEtBQVAB\",{\"_88\":104,\"_59\":105},\"RSS\",\"https://www.itprotoday.com/rss.xml\",\"informaBar\",{\"_29\":26,\"_108\":109,\"_127\":128},\"leftSection\",{\"_110\":111,\"_112\":113},\"description\",\"Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.\",\"subMenu\",[114,118,121,124],{\"_115\":116,\"_59\":117},\"title\",\"INFORMA PLC\",\"https://informa.com/\",{\"_115\":119,\"_59\":120},\"ABOUT US\",\"https://informa.com/about-us/\",{\"_115\":122,\"_59\":123},\"INVESTOR RELATIONS\",\"https://informa.com/investors/\",{\"_115\":125,\"_59\":126},\"TALENT\",\"https://informa.com/talent/\",\"rightSection\",{\"_110\":129},\"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\",{\"_132\":133,\"_566\":567},\"mainMenuItems\",[134,212,276,327,368,398,449,480,501,529],{\"_115\":135,\"_59\":136,\"_137\":138,\"_139\":136,\"_140\":26,\"_112\":141,\"_154\":155},\"Cloud\",\"/cloud-computing\",\"seeAllLink\",\"SEE ALL Cloud\",\"seeAllLinkUrl\",\"hasSubMenu\",[142,145,148,151],{\"_115\":143,\"_59\":144},\"Cloud Services\",\"/cloud-computing/cloud-services\",{\"_115\":146,\"_59\":147},\"Hybrid Cloud\",\"/cloud-computing/hybrid-cloud\",{\"_115\":149,\"_59\":150},\"Private Cloud\",\"/cloud-computing/private-cloud\",{\"_115\":152,\"_59\":153},\"Public Cloud\",\"/cloud-computing/public-cloud\",\"recentContents\",[156,194],{\"_157\":158,\"_163\":164,\"_165\":164,\"_166\":167,\"_168\":169,\"_170\":171,\"_172\":173,\"_174\":171,\"_175\":176,\"_177\":136,\"_178\":179,\"_180\":181,\"_188\":189,\"_190\":191,\"_192\":193},\"thumbnail\",{\"_159\":160,\"_161\":162},\"src\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9a67f57273c07d90/67b473773875e33a243b106a/Kubenetes-1716x965_-_2025-02-18.jpg\",\"alt\",\"cloud Kubernetes helm concept with the containers\",\"articleName\",\"Mastering Kubernetes in the Cloud: A Guide to Cloud Controller Manager\",\"mobileHeadline\",\"articleSummary\",\"Cloud Controller Manager is a crucial yet often overlooked Kubernetes component that streamlines cloud integrations. Here's why it matters and how to use it effectively.\",\"articleUrl\",\"/cloud-computing/mastering-kubernetes-in-the-cloud-a-guide-to-cloud-controller-manager\",\"listPageUrl\",\"\",\"date\",\"Feb 18, 2025\",\"webinarStartTime\",\"categoryName\",\"Cloud Computing\",\"categoryUrl\",\"contentType\",\"Article\",\"contributors\",[182],{\"_57\":183,\"_184\":185,\"_186\":187},\"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\",{\"_157\":195,\"_163\":198,\"_165\":198,\"_166\":199,\"_168\":200,\"_170\":171,\"_172\":201,\"_174\":171,\"_175\":146,\"_177\":147,\"_178\":179,\"_180\":202,\"_188\":211,\"_190\":191,\"_192\":193},{\"_159\":196,\"_161\":197},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbbbd88e5773ffc6b/67ac97b77c6ab0666ea09ca5/hybrid-cloud-1716x965_-_2024-12-27.jpg\",\"hybrid cloud spelled out above a tablet\",\"How to Avoid Common Hybrid Cloud Pitfalls\",\"Some data and workloads are moving back from cloud to on-premises. It isn't a return to the days of yore, so thoughtful strategy and implementation matter greatly.\",\"/hybrid-cloud/how-to-avoid-common-hybrid-cloud-pitfalls\",\"Feb 12, 2025\",[203,207],{\"_57\":204,\"_184\":205,\"_186\":206},\"Lisa Morgan\",\"/author/lisa-morgan\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb11c8ae625be7abe/6613c9bdd9d6083199a9aceb/lisamorgan.jpg\",{\"_57\":208,\"_184\":209,\"_186\":210},\"InformationWeek\",\"/author/informationweek\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfe700963d293545b/662c186ab6e73c2096cb1da7/251403_Favicon_512x512.png\",1,{\"_115\":213,\"_59\":214,\"_137\":215,\"_139\":214,\"_140\":26,\"_112\":216,\"_154\":247},\"OS\",\"/operating-systems\",\"See All OS\",[217,220,223,226,229,232,235,238,241,244],{\"_115\":218,\"_59\":219},\"Microsoft Windows\",\"/operating-systems/microsoft-windows\",{\"_115\":221,\"_59\":222},\"Windows Server\",\"/operating-systems/windows-server\",{\"_115\":224,\"_59\":225},\"PowerShell\",\"/operating-systems/powershell\",{\"_115\":227,\"_59\":228},\"Linux OS\",\"/operating-systems/linux-os\",{\"_115\":230,\"_59\":231},\"SQL Server\",\"/operating-systems/sql-server\",{\"_115\":233,\"_59\":234},\"MacOS\",\"/operating-systems/macos\",{\"_115\":236,\"_59\":237},\"Android OS\",\"/operating-systems/android-os\",{\"_115\":239,\"_59\":240},\"ChromeOS\",\"/operating-systems/chromeos\",{\"_115\":242,\"_59\":243},\"Ubuntu\",\"/operating-systems/ubuntu\",{\"_115\":245,\"_59\":246},\"Red Hat OS\",\"/operating-systems/red-hat-os\",[248,262],{\"_157\":249,\"_163\":252,\"_165\":252,\"_166\":253,\"_168\":254,\"_170\":171,\"_172\":255,\"_174\":171,\"_175\":224,\"_177\":225,\"_178\":179,\"_180\":256,\"_188\":261,\"_190\":191,\"_192\":193},{\"_159\":250,\"_161\":251},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt1ef028e07e495a1a/67b518be149b7e2c6c0df150/Your_paragraph_text_(1).png\",\"a dry erase boards with doodles, powershell code snippet, powershell logo, and a hand drawing with a market\",\"PowerShell GUI Tutorial: Building Whiteboard Apps With WPF\",\"Discover how to use PowerShell with WPF to create a simple inking canvas capable of saving drawings as JPEG files, undoing ink strokes, and resetting the canvas.\",\"/powershell/powershell-gui-tutorial-building-whiteboard-apps-with-wpf\",\"Feb 19, 2025\",[257],{\"_57\":258,\"_184\":259,\"_186\":260},\"Brien Posey\",\"/author/brien-posey\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbd2d61ed5b87072c/6613c9a9bce8e3a5a1d68782/Brien_Posey.jpg\",13,{\"_157\":263,\"_163\":266,\"_165\":266,\"_166\":267,\"_168\":268,\"_170\":171,\"_172\":269,\"_174\":171,\"_175\":227,\"_177\":228,\"_178\":179,\"_180\":270,\"_188\":275,\"_190\":191,\"_192\":193},{\"_159\":264,\"_161\":265},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt55c34441e4c5f4cf/67ae572a2ba611390a866d2b/image-1716x965_-_2025-02-13T153328.829.jpg\",\"a magnifying glass being help up to an open padlock icon that is set within rows of locked padlocks\",\"Beyond the Basics: Advanced Linux Hardening Techniques\",\"This guide explores advanced hardening techniques, including MAC frameworks, network security enhancements, proactive vulnerability management, container security, and the use of AI for threat detection.\",\"/linux-os/beyond-the-basics-advanced-linux-hardening-techniques\",\"Feb 14, 2025\",[271],{\"_57\":272,\"_184\":273,\"_186\":274},\"Grant Knoetze\",\"/author/grant-knoetze\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltb840b8274b6e83ca/6613c9f9ddf6623b6265761c/Grant-Knoetze-cropped.jpg\",7,{\"_115\":277,\"_59\":278,\"_137\":279,\"_139\":278,\"_140\":26,\"_112\":280,\"_154\":296},\"IT Mgmt\",\"/it-management\",\"See All IT Mgmt\",[281,284,287,290,293],{\"_115\":282,\"_59\":283},\"IT Operations\",\"/it-management/it-operations\",{\"_115\":285,\"_59\":286},\"DevOps\",\"/it-management/devops\",{\"_115\":288,\"_59\":289},\"Ops and More\",\"/it-management/ops-and-more\",{\"_115\":291,\"_59\":292},\"IT Sustainability\",\"/it-management/it-sustainability\",{\"_115\":294,\"_59\":295},\"IT Automation\",\"/it-management/it-automation\",[297,313],{\"_157\":298,\"_163\":301,\"_165\":301,\"_166\":302,\"_168\":303,\"_170\":171,\"_172\":304,\"_174\":171,\"_175\":305,\"_177\":306,\"_178\":179,\"_180\":307,\"_188\":312,\"_190\":191,\"_192\":193},{\"_159\":299,\"_161\":300},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9fc49f74c870f57b/67b859beabe3fd2cdd69ba66/disaster-recovery-1716x965_-_2025-02-21.jpg\",\"disaster recovery playbook on a desk near a keyboard\",\"Disaster Recovery Strategies for a Disaster-Prone World\",\"Downtime is costly, but a well-planned high availability (HA) and disaster recovery (DR) strategy can minimize disruptions.\",\"/disaster-recovery/disaster-recovery-strategies-for-a-disaster-prone-world\",\"Feb 21, 2025\",\"Disaster Recovery\",\"/data-storage/disaster-recovery\",[308],{\"_57\":309,\"_184\":310,\"_186\":311},\"Industry Perspectives\",\"/author/industry-perspectives\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd7fa51c8929351c1/6659df384bcb3c8c0e786295/ITP_IP.png\",5,{\"_157\":314,\"_163\":317,\"_165\":317,\"_166\":318,\"_168\":319,\"_170\":171,\"_172\":320,\"_174\":171,\"_175\":291,\"_177\":292,\"_178\":179,\"_180\":321,\"_188\":211,\"_190\":191,\"_192\":193},{\"_159\":315,\"_161\":316},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt253192bcd42230d9/67b798981f1ef5d72674f1f5/image-1716x965_-_2025-02-20T160308.726.jpg\",\"eco icons and data processing over computer servers\",\"7 Top Data Center Sustainability Strategies for 2025\",\"Data center sustainability is more critical than ever as energy demands surge. Here are seven key strategies to improve efficiency and reduce carbon impact.\",\"/it-sustainability/7-top-data-center-sustainability-strategies-for-2025\",\"Feb 20, 2025\",[322,323],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_57\":324,\"_184\":325,\"_186\":326},\"Data Center Knowledge\",\"/author/data-center-knowledge\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltbfc1cdb5b46a19b7/6647115632777426bbc9b8b0/DCK_Favicon_RGB_512x512.png\",{\"_115\":328,\"_59\":329,\"_137\":330,\"_139\":329,\"_140\":26,\"_112\":331,\"_154\":341},\"Career\",\"/career-management\",\"See All Career Mgmt\",[332,335,338],{\"_115\":333,\"_59\":334},\"Career Tips\",\"/career-management/career-tips\",{\"_115\":336,\"_59\":337},\"Certifications\",\"/career-management/certifications\",{\"_115\":339,\"_59\":340},\"Training\",\"/career-management/training\",[342,355],{\"_157\":343,\"_163\":346,\"_165\":346,\"_166\":347,\"_168\":348,\"_170\":171,\"_172\":304,\"_174\":171,\"_175\":333,\"_177\":334,\"_178\":179,\"_180\":349,\"_188\":354,\"_190\":191,\"_192\":193},{\"_159\":344,\"_161\":345},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt373cd0b4af7d9b4c/67b74c33531f576610137525/toxic_positivity_hero.gif\",\"an unhappy employee is surrounded by smiley faces and the words \\\"Stay Positive\\\"\",\"Toxic Positivity at Work Is Silencing My Team’s Concerns\",\"An IT pro’s team struggles with burnout due to overwhelming workloads, while management dismisses their concerns with toxic positivity. Read our advice.\",\"/career-tips/toxic-positivity-at-work-is-silencing-my-team-s-concerns\",[350],{\"_57\":351,\"_184\":352,\"_186\":353},\"Danielle Meinert\",\"/author/danielle-meinert\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6cea48e7fba9fe0c/66744228de07df7824ca2798/danielle-profile-photo.jpeg\",2,{\"_157\":356,\"_163\":359,\"_165\":359,\"_166\":360,\"_168\":361,\"_170\":171,\"_172\":362,\"_174\":171,\"_175\":363,\"_177\":364,\"_178\":179,\"_180\":365,\"_188\":367,\"_190\":191,\"_192\":193},{\"_159\":357,\"_161\":358},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt9559a8f9078d3a4e/67aa33c656339648630cc13d/Process_Compliance_(1).gif\",\"an annoyed-looking software developer is covered by red tape and the words \\\"process compliance\\\"\",\"Process Standardization Is Stifling My Creativity\",\"A software developer seeks advice about a new manager’s rigid obsession with process standardization, replacing creative problem-solving with excessive bureaucracy. \",\"/software-development/process-standardization-is-stifling-my-creativity\",\"Feb 11, 2025\",\"Software Development\",\"/software-development\",[366],{\"_57\":351,\"_184\":352,\"_186\":353},3,{\"_115\":369,\"_59\":370,\"_137\":371,\"_139\":370,\"_140\":26,\"_112\":372,\"_154\":383},\"Storage\",\"/data-storage\",\"See All Data Storage\",[373,376,379,382],{\"_115\":374,\"_59\":375},\"Cloud Storage\",\"/data-storage/cloud-storage\",{\"_115\":377,\"_59\":378},\"High Speed Storage\",\"/data-storage/high-speed-storage\",{\"_115\":380,\"_59\":381},\"Data Backup\",\"/data-storage/data-backup\",{\"_115\":305,\"_59\":306},[384,388],{\"_157\":385,\"_163\":301,\"_165\":301,\"_166\":302,\"_168\":303,\"_170\":171,\"_172\":304,\"_174\":171,\"_175\":305,\"_177\":306,\"_178\":179,\"_180\":386,\"_188\":312,\"_190\":191,\"_192\":193},{\"_159\":299,\"_161\":300},[387],{\"_57\":309,\"_184\":310,\"_186\":311},{\"_157\":389,\"_163\":392,\"_165\":392,\"_166\":393,\"_168\":394,\"_170\":171,\"_172\":395,\"_174\":171,\"_175\":227,\"_177\":228,\"_178\":179,\"_180\":396,\"_188\":189,\"_190\":191,\"_192\":193},{\"_159\":390,\"_161\":391},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt88f81fb36d6cbe4a/67a4e82ca4ff164b53d978f6/image-1716x965_-_2025-02-06T113039.208.jpg\",\"the word malware on top of a digital background\",\"How To Identify and Remove Linux Malware Infections\",\"Explore common Linux malware types, how to detect infections, and best practices for removal, recovery, and prevention.\",\"/linux-os/how-to-identify-and-remove-linux-malware-infections\",\"Feb 7, 2025\",[397],{\"_57\":272,\"_184\":273,\"_186\":274},{\"_115\":399,\"_59\":400,\"_137\":401,\"_139\":400,\"_140\":26,\"_112\":402,\"_154\":424},\"Security\",\"/it-security\",\"See All IT Security\",[403,406,409,412,415,418,421],{\"_115\":404,\"_59\":405},\"Vulnerabilities \u0026 Threats\",\"/it-security/vulnerabilities-threats\",{\"_115\":407,\"_59\":408},\"Attacks \u0026 Breaches\",\"/it-security/attacks-breaches\",{\"_115\":410,\"_59\":411},\"Regulatory Compliance\",\"/it-security/regulatory-compliance\",{\"_115\":413,\"_59\":414},\"Data Privacy\",\"/it-security/data-privacy\",{\"_115\":416,\"_59\":417},\"Cloud Security\",\"/it-security/cloud-security\",{\"_115\":419,\"_59\":420},\"Endpoint Security\",\"/it-security/endpoint-security\",{\"_115\":422,\"_59\":423},\"Identity Mgmt \u0026 Access Control\",\"/it-security/identity-management-access-control\",[425,437],{\"_157\":426,\"_163\":429,\"_165\":429,\"_166\":430,\"_168\":431,\"_170\":171,\"_172\":320,\"_174\":171,\"_175\":432,\"_177\":433,\"_178\":179,\"_180\":434,\"_188\":436,\"_190\":191,\"_192\":193},{\"_159\":427,\"_161\":428},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfc15224b242e5649/67b6eb780ae52c6f2ede6380/AI-robot-finger-1716x965_-_2025-02-20.jpg\",\"robot and human fingers touching\",\"The Role of Human Touch in Agentic AI Data Management\",\"Advancements in agentic AI bring new challenges, especially in data privacy and regulatory compliance. Here's how to harness its benefits while ensuring privacy and compliance.\",\"/ai-machine-learning/the-role-of-human-touch-in-agentic-ai-data-management\",\"AI \u0026 Machine Learning\",\"/digital-transformation/ai-machine-learning\",[435],{\"_57\":309,\"_184\":310,\"_186\":311},4,{\"_157\":438,\"_163\":441,\"_165\":441,\"_166\":442,\"_168\":443,\"_170\":171,\"_172\":255,\"_174\":171,\"_175\":404,\"_177\":405,\"_178\":179,\"_180\":444,\"_188\":211,\"_190\":191,\"_192\":193},{\"_159\":439,\"_161\":440},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt422134f81885f07c/67b60c8c0ae52c0d13de60c7/image-1716x965_-_2025-02-19T115324.570.jpg\",\"xerox logo on sign outside xerox square building \",\"Xerox Printer Vulnerabilities Enable Credential Capture\",\"Attackers use patched bugs to potentially gain unfettered access to an organization's Windows environment under certain conditions.\",\"/vulnerabilities-threats/xerox-printer-vulnerabilities-enable-credential-capture\",[445],{\"_57\":446,\"_184\":447,\"_186\":448},\"Jai Vijayan\",\"/author/jai-vijayan\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt2493953a95cd126f/6613c9b888728662974ed18d/Jai-Vijayan.jpg\",{\"_115\":450,\"_59\":364,\"_137\":451,\"_139\":364,\"_140\":26,\"_112\":452,\"_154\":465},\"Dev\",\"See All Software Dev\",[453,456,459,462],{\"_115\":454,\"_59\":455},\"Cloud Native\",\"/software-development/cloud-native\",{\"_115\":457,\"_59\":458},\"Programming Languages\",\"/software-development/programming-languages\",{\"_115\":460,\"_59\":461},\"No-Code/Low-Code\",\"/software-development/no-code-low-code\",{\"_115\":463,\"_59\":464},\"Software Development Techniques\",\"/software-development/software-development-techniques\",[466,470],{\"_157\":467,\"_163\":346,\"_165\":346,\"_166\":347,\"_168\":348,\"_170\":171,\"_172\":304,\"_174\":171,\"_175\":333,\"_177\":334,\"_178\":179,\"_180\":468,\"_188\":354,\"_190\":191,\"_192\":193},{\"_159\":344,\"_161\":345},[469],{\"_57\":351,\"_184\":352,\"_186\":353},{\"_157\":471,\"_163\":474,\"_165\":474,\"_166\":475,\"_168\":476,\"_170\":171,\"_172\":477,\"_174\":171,\"_175\":463,\"_177\":464,\"_178\":179,\"_180\":478,\"_188\":275,\"_190\":191,\"_192\":193},{\"_159\":472,\"_161\":473},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blta837190fc0e7c602/67ade2fd64f859b14b05f5fd/software-developer-code-1716x965_-_2024-10-18.jpg\",\"software developer writing code on a laptop\",\"The Overlooked Art of Software Localization for Non-Traditional Markets\",\"Despite software's global reach, many companies overlook a critical aspect of their development process: localization for non-traditional markets.\",\"/software-development-techniques/the-overlooked-art-of-software-localization-for-non-traditional-markets\",\"Feb 13, 2025\",[479],{\"_57\":309,\"_184\":310,\"_186\":311},{\"_115\":481,\"_59\":482,\"_137\":483,\"_139\":482,\"_140\":26,\"_112\":484,\"_154\":492},\"DX\",\"/digital-transformation\",\"See All Digital Transformation\",[485,486,489],{\"_115\":432,\"_59\":433},{\"_115\":487,\"_59\":488},\"Edge Computing\",\"/digital-transformation/edge-computing\",{\"_115\":490,\"_59\":491},\"IoT\",\"/digital-transformation/iot\",[493,497],{\"_157\":494,\"_163\":429,\"_165\":429,\"_166\":430,\"_168\":431,\"_170\":171,\"_172\":320,\"_174\":171,\"_175\":432,\"_177\":433,\"_178\":179,\"_180\":495,\"_188\":436,\"_190\":191,\"_192\":193},{\"_159\":427,\"_161\":428},[496],{\"_57\":309,\"_184\":310,\"_186\":311},{\"_157\":498,\"_163\":441,\"_165\":441,\"_166\":442,\"_168\":443,\"_170\":171,\"_172\":255,\"_174\":171,\"_175\":404,\"_177\":405,\"_178\":179,\"_180\":499,\"_188\":211,\"_190\":191,\"_192\":193},{\"_159\":439,\"_161\":440},[500],{\"_57\":446,\"_184\":447,\"_186\":448},{\"_115\":502,\"_59\":503,\"_137\":504,\"_139\":503,\"_140\":26,\"_112\":505,\"_154\":515},\"Infrastructure\",\"/it-infrastructure\",\"See All Infrastructure\",[506,509,512],{\"_115\":507,\"_59\":508},\"High Performance Computing\",\"/it-infrastructure/high-performance-computing\",{\"_115\":510,\"_59\":511},\"Containerization\",\"/it-infrastructure/containerization\",{\"_115\":513,\"_59\":514},\"Server Virtualization\",\"/it-infrastructure/server-virtualization\",[516,520],{\"_157\":517,\"_163\":164,\"_165\":164,\"_166\":167,\"_168\":169,\"_170\":171,\"_172\":173,\"_174\":171,\"_175\":176,\"_177\":136,\"_178\":179,\"_180\":518,\"_188\":189,\"_190\":191,\"_192\":193},{\"_159\":160,\"_161\":162},[519],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_157\":521,\"_163\":524,\"_165\":524,\"_166\":525,\"_168\":526,\"_170\":171,\"_172\":395,\"_174\":171,\"_175\":432,\"_177\":433,\"_178\":179,\"_180\":527,\"_188\":436,\"_190\":191,\"_192\":193},{\"_159\":522,\"_161\":523},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blte1ae920643569ab5/67a52cba2f8fd4865d38e4c5/silicon-1716x965_-_2025-02-06.jpg\",\"computer CPU\",\"How Silicon Diversity Optimizes Cost, Performance Across the AI Lifecycle\",\"Strategically matching AI workloads to the right compute resources — through training, inference, and serverless inference — helps organizations control costs while maximizing performance.\",\"/ai-machine-learning/how-silicon-diversity-optimizes-cost-performance-across-the-ai-lifecycle\",[528],{\"_57\":309,\"_184\":310,\"_186\":311},{\"_115\":530,\"_59\":531,\"_137\":532,\"_139\":531,\"_140\":26,\"_112\":533,\"_154\":565},\"More\",\"/resources\",\"Resource Library\",[534,537,540,542,544,547,550,553,556,559,562],{\"_115\":535,\"_59\":536},\"Newsletters\",\"https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_itpb86\u0026ch=itpnav\",{\"_115\":538,\"_59\":539},\"How To…?\",\"/latest-how-to\",{\"_115\":309,\"_59\":541},\"/program/industry-perspectives\",{\"_115\":543,\"_59\":531},\"Business Resources\",{\"_115\":545,\"_59\":546},\"Reports/Research\",\"/resources?types=Survey+Report\u0026page=1\",{\"_115\":548,\"_59\":549},\"Online Events\",\"/resources?page=1\u0026types=Virtual+Event\u0026types=Webinar\",{\"_115\":551,\"_59\":552},\"Live Events\",\"/events\",{\"_115\":554,\"_59\":555},\"Videos\",\"/videos\",{\"_115\":557,\"_59\":558},\"White Papers\",\"/resources?page=1\u0026types=White+Paper\",{\"_115\":560,\"_59\":561},\"Advertise With Us\",\"/advertise\",{\"_115\":563,\"_59\":564},\"About Us\",\"/about-us\",[],\"secondaryMenu\",[568,571,572,574],{\"_115\":569,\"_59\":570},\"Documents\",\"/documents\",{\"_115\":548,\"_59\":549},{\"_115\":573,\"_59\":561},\"Advertise\",{\"_115\":575,\"_59\":564},\"About\",\"megaMenu\",{\"_578\":579,\"_654\":655,\"_685\":686},\"largeMenu\",[580,586,598,605,610,616,625,631,636,641],{\"_115\":135,\"_59\":136,\"_112\":581,\"_137\":138,\"_139\":136},[582,583,584,585],{\"_115\":143,\"_59\":144},{\"_115\":146,\"_59\":147},{\"_115\":149,\"_59\":150},{\"_115\":152,\"_59\":153},{\"_115\":213,\"_59\":214,\"_112\":587,\"_137\":215,\"_139\":214},[588,589,590,591,592,593,594,595,596,597],{\"_115\":218,\"_59\":219},{\"_115\":221,\"_59\":222},{\"_115\":224,\"_59\":225},{\"_115\":227,\"_59\":228},{\"_115\":230,\"_59\":231},{\"_115\":233,\"_59\":234},{\"_115\":236,\"_59\":237},{\"_115\":239,\"_59\":240},{\"_115\":242,\"_59\":243},{\"_115\":245,\"_59\":246},{\"_115\":277,\"_59\":278,\"_112\":599,\"_137\":279,\"_139\":278},[600,601,602,603,604],{\"_115\":282,\"_59\":283},{\"_115\":285,\"_59\":286},{\"_115\":288,\"_59\":289},{\"_115\":291,\"_59\":292},{\"_115\":294,\"_59\":295},{\"_115\":328,\"_59\":329,\"_112\":606,\"_137\":330,\"_139\":329},[607,608,609],{\"_115\":333,\"_59\":334},{\"_115\":336,\"_59\":337},{\"_115\":339,\"_59\":340},{\"_115\":369,\"_59\":370,\"_112\":611,\"_137\":371,\"_139\":370},[612,613,614,615],{\"_115\":374,\"_59\":375},{\"_115\":377,\"_59\":378},{\"_115\":380,\"_59\":381},{\"_115\":305,\"_59\":306},{\"_115\":399,\"_59\":400,\"_112\":617,\"_137\":401,\"_139\":400},[618,619,620,621,622,623,624],{\"_115\":404,\"_59\":405},{\"_115\":407,\"_59\":408},{\"_115\":410,\"_59\":411},{\"_115\":413,\"_59\":414},{\"_115\":416,\"_59\":417},{\"_115\":419,\"_59\":420},{\"_115\":422,\"_59\":423},{\"_115\":450,\"_59\":364,\"_112\":626,\"_137\":451,\"_139\":364},[627,628,629,630],{\"_115\":454,\"_59\":455},{\"_115\":457,\"_59\":458},{\"_115\":460,\"_59\":461},{\"_115\":463,\"_59\":464},{\"_115\":481,\"_59\":482,\"_112\":632,\"_137\":483,\"_139\":482},[633,634,635],{\"_115\":432,\"_59\":433},{\"_115\":487,\"_59\":488},{\"_115\":490,\"_59\":491},{\"_115\":502,\"_59\":503,\"_112\":637,\"_137\":504,\"_139\":503},[638,639,640],{\"_115\":507,\"_59\":508},{\"_115\":510,\"_59\":511},{\"_115\":513,\"_59\":514},{\"_115\":530,\"_59\":531,\"_112\":642,\"_137\":532,\"_139\":531},[643,644,645,646,647,648,649,650,651,652,653],{\"_115\":535,\"_59\":536},{\"_115\":538,\"_59\":539},{\"_115\":309,\"_59\":541},{\"_115\":543,\"_59\":531},{\"_115\":545,\"_59\":546},{\"_115\":548,\"_59\":549},{\"_115\":551,\"_59\":552},{\"_115\":554,\"_59\":555},{\"_115\":557,\"_59\":558},{\"_115\":560,\"_59\":561},{\"_115\":563,\"_59\":564},\"smallMenu\",[656,665,669],{\"_115\":657,\"_59\":171,\"_112\":658},\"Browse\",[659,660,661,662,663,664],{\"_115\":569,\"_59\":570},{\"_115\":548,\"_59\":549},{\"_115\":551,\"_59\":552},{\"_115\":554,\"_59\":555},{\"_115\":309,\"_59\":541},{\"_115\":543,\"_59\":531},{\"_115\":573,\"_59\":171,\"_112\":666},[667],{\"_115\":668,\"_59\":561},\"Explore Marketing Solutions\",{\"_115\":670,\"_59\":171,\"_112\":671},\"Discover More\",[672,674,676,679,682],{\"_115\":324,\"_59\":673},\"https://www.datacenterknowledge.com/\",{\"_115\":208,\"_59\":675},\"https://www.informationweek.com/\",{\"_115\":677,\"_59\":678},\"Network Computing\",\"https://www.networkcomputing.com/\",{\"_115\":680,\"_59\":681},\"No Jitter\",\"https://www.nojitter.com/\",{\"_115\":683,\"_59\":684},\"AFCOM\",\"https://afcom.com/\",\"sideNavSections\",[687],{\"_115\":688,\"_59\":171,\"_112\":689,\"_137\":171,\"_139\":171},\"Communicate\",[690,691],{\"_115\":563,\"_59\":564},{\"_115\":692,\"_59\":693},\"Contact Us\",\"/contact-us\",\"navBase\",{\"_696\":697},\"logo\",{\"_59\":698,\"_699\":700},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6a28f214e959257b/65dc5966d7e7df040ab9cb3f/Logo_-_IT_Pro_Today.svg\",\"altText\",\"ITPro Today Logo\",\"footer\",{\"_696\":703,\"_705\":706,\"_736\":737,\"_738\":739},{\"_59\":704,\"_699\":700},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt6988047454ea0f07/65def58180429104075f67f7/Logo_-_IT_Pro_Today@2x.png\",\"linkSections\",[707,723],{\"_708\":709,\"_115\":670,\"_88\":722},\"links\",[710,714,716,718,720],{\"_711\":712,\"_713\":26,\"_115\":324,\"_59\":673},\"image\",{\"_699\":171,\"_59\":704},\"openInNewTab\",{\"_711\":715,\"_713\":26,\"_115\":208,\"_59\":675},{\"_699\":171,\"_59\":704},{\"_711\":717,\"_713\":26,\"_115\":677,\"_59\":678},{\"_699\":171,\"_59\":704},{\"_711\":719,\"_713\":26,\"_115\":680,\"_59\":681},{\"_699\":171,\"_59\":704},{\"_711\":721,\"_713\":26,\"_115\":683,\"_59\":684},{\"_699\":171,\"_59\":704},\"1\",{\"_708\":724,\"_115\":735,\"_88\":722},[725,727,731,733],{\"_711\":726,\"_713\":26,\"_115\":563,\"_59\":564},{\"_699\":171,\"_59\":704},{\"_711\":728,\"_713\":26,\"_115\":729,\"_59\":730},{\"_699\":171,\"_59\":704},\"Reprints\",\"https://info.wrightsmedia.com/informa-licensing-reprints-request\",{\"_711\":732,\"_713\":26,\"_115\":573,\"_59\":561},{\"_699\":171,\"_59\":704},{\"_711\":734,\"_713\":26,\"_115\":692,\"_59\":693},{\"_699\":171,\"_59\":704},\"Working With Us\",\"brandLinks\",[],\"copyright\",{\"_740\":741,\"_708\":746,\"_115\":767},\"businessUnit\",{\"_59\":742,\"_57\":743,\"_744\":745},\"https://www.informa.com/\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt3cbaa492998ab75f/674ef556a2308a7b8e6c5d5f/Informa_Logo_OneLine_Graduated_White_RGB.png\",[747,751,755,759,763],{\"_711\":748,\"_713\":24,\"_115\":749,\"_59\":750},{\"_699\":749,\"_59\":750},\"Home\",\"https://www.techtarget.com/\",{\"_711\":752,\"_713\":26,\"_115\":753,\"_59\":754},{\"_699\":753,\"_59\":754},\"CCPA: Do not sell my personal info\",\"https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html\",{\"_711\":756,\"_713\":26,\"_115\":757,\"_59\":758},{\"_699\":757,\"_59\":758},\"Cookies\",\"/cookie-policy\",{\"_711\":760,\"_713\":26,\"_115\":761,\"_59\":762},{\"_699\":761,\"_59\":762},\"Privacy\",\"https://www.techtarget.com/privacy-policy/\",{\"_711\":764,\"_713\":26,\"_115\":765,\"_59\":766},{\"_699\":765,\"_59\":766},\"Terms\",\"https://tech.informa.com/terms-and-conditions\",\". This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.\",\"isSponsorBarEnabled\",\"isPaidContent\",\"newRelicJs\",\"window.NREUM||(NREUM={});NREUM.info = {\\\"agent\\\":\\\"\\\",\\\"beacon\\\":\\\"bam.eu01.nr-data.net\\\",\\\"errorBeacon\\\":\\\"bam.eu01.nr-data.net\\\",\\\"licenseKey\\\":\\\"NRJS-26ae6a3b09493bbcc87\\\",\\\"applicationID\\\":\\\"514059305\\\",\\\"agentToken\\\":null,\\\"applicationTime\\\":7.682189,\\\"transactionName\\\":\\\"MhBSZQoZWEEDU0ZaXgtac0QLDFlfTR9CXEYAB0NZHRRaHQpfRR5FClhdUBMdG0INR1dBQg0QXF1VC0ZXA1sfR1QdAR1FF1VFQgdVUVscCxBEHAwNQl0QWVNfHA==\\\",\\\"queueTime\\\":0,\\\"ttGuid\\\":\\\"18205ebae8528c99\\\"}; (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.283.1.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(3333);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={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:\\\"*\\\",block_selector:\\\"[data-nr-block]\\\",mask_input_options:{color:!1,date:!1,\\\"datetime-local\\\":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){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,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:[\\\"id\\\",\\\"className\\\",\\\"tagName\\\",\\\"type\\\"]}}},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,harvester:void 0},d={};function l(e){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");if(!d[e])throw new Error(\\\"Runtime for \\\".concat(e,\\\" was never set\\\"));return d[e]}function f(e,t){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],\\\"harvestCount\\\")||Object.defineProperty(d[e],\\\"harvestCount\\\",{get:()=\u003e++s});const r=(0,i.nY)(e);r\u0026\u0026(r.runtime=d[e])}},9324:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{F3:()=\u003ei,Xs:()=\u003eo,Yq:()=\u003ea,xv:()=\u003en});const n=\\\"1.283.1\\\",i=\\\"PROD\\\",o=\\\"CDN\\\",a=\\\"^2.0.0-alpha.17\\\"},6154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A4:()=\u003es,OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003eh,bv:()=\u003eo,gm:()=\u003ea,lR:()=\u003ef,m:()=\u003eu,mw:()=\u003ec,sb:()=\u003el});var n=r(1863);const i=\\\"undefined\\\"!=typeof window\u0026\u0026!!window.document,o=\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),a=i?window:\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),s=\\\"complete\\\"===a?.document?.readyState,c=Boolean(\\\"hidden\\\"===a?.document?.visibilityState),u=\\\"\\\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d\u0026\u0026\\\"undefined\\\"==typeof SharedWorker,f=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\\\s](\\\\d+\\\\.\\\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003eo});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t\u003cn.length;t++){var r=n[t];if(\\\"*\\\"===r.hostname)return!1;if(s(r.hostname,e.hostname)\u0026\u0026c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;0===r.indexOf(\\\"http://\\\")?r=r.substring(7):0===r.indexOf(\\\"https://\\\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\\\"/\\\");let o,a;i\u003e0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a=\\\"\\\");let[s]=o.split(\\\":\\\");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length\u003et.length)\u0026\u0026t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf(\\\"/\\\")\u0026\u0026(e=e.substring(1)),0===t.indexOf(\\\"/\\\")\u0026\u0026(t=t.substring(1)),\\\"\\\"===e||e===t}},1687:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Ak:()=\u003ec,Ze:()=\u003el,x3:()=\u003eu});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e\u0026\u0026s[e]\u0026\u0026(s[e].get(t)\u0026\u0026s[e].delete(t),h(e,t,!1),s[e].size\u0026\u0026f(e))}function d(e){if(!e)throw new Error(\\\"agentIdentifier required\\\");s[e]||(s[e]=new Map)}function l(e=\\\"\\\",t=\\\"feature\\\",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=\u003et.staged))\u0026\u0026(t.sort(((e,t)=\u003ee[1].priority-t[1].priority)),t.forEach((([t])=\u003e{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted\u0026\u0026o.backlog\u0026\u0026s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=\u003e{Object.values(t||{}).forEach((t=\u003e{t[0]?.on\u0026\u0026t[0]?.context()instanceof a.y\u0026\u0026t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit(\\\"drain-\\\"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=\u003e{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{P:()=\u003ec,ee:()=\u003eu});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c=\\\"nr@context:\\\".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length\u0026\u0026(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var p=v()[s[e]];p\u0026\u0026p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||\\\"feature\\\",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=\u003e{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=\u003e{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t\u0026\u0026\\\"object\\\"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,\\\"aborted\\\",{get:()=\u003e{let e=f._aborted||!1;return e||(t\u0026\u0026(e=t.aborted),e)}}),f;function h(e){return e\u0026\u0026e instanceof a.y?e:e?(0,i.I)(e,c,(()=\u003enew a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,\\\"globalEE\\\"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\\\"handle\\\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{i:()=\u003eo});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o=\\\"feature\\\"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003eo,jT:()=\u003en,sp:()=\u003ei})},5607:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},9566:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{LA:()=\u003es,ZF:()=\u003ec,bz:()=\u003ea,el:()=\u003eu});var n=r(6154);const i=\\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),i.split(\\\"\\\").map((e=\u003e\\\"x\\\"===e?o(t,r++).toString(16):\\\"y\\\"===e?(3\u0026o()|8).toString(16):e)).join(\\\"\\\")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\\\"\\\")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ea,H3:()=\u003en,g:()=\u003eu,iL:()=\u003ec,tS:()=\u003es,uh:()=\u003ei,wk:()=\u003eo});const n=\\\"NRBA\\\",i=\\\"SESSION\\\",o=144e5,a=18e5,s={STARTED:\\\"session-started\\\",PAUSE:\\\"session-pause\\\",RESET:\\\"session-reset\\\",RESUME:\\\"session-resume\\\",UPDATE:\\\"session-update\\\"},c={SAME_TAB:\\\"same-tab\\\",CROSS_TAB:\\\"cross-tab\\\"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=\u003e{\\\"use strict\\\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},7485:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{D:()=\u003ei});var n=r(6154);function i(e){if(0===(e||\\\"\\\").indexOf(\\\"data:\\\"))return{protocol:\\\"data\\\"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(\\\":\\\")),sameOrigin:t.protocol===n.gm?.location?.protocol\u0026\u0026t.host===n.gm?.location?.host};return r.port\u0026\u0026\\\"\\\"!==r.port||(\\\"http:\\\"===t.protocol\u0026\u0026(r.port=\\\"80\\\"),\\\"https:\\\"===t.protocol\u0026\u0026(r.port=\\\"443\\\")),r.pathname\u0026\u0026\\\"\\\"!==r.pathname?r.pathname.startsWith(\\\"/\\\")||(r.pathname=\\\"/\\\".concat(r.pathname)):r.pathname=\\\"/\\\",r}catch(e){return{}}}},944:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t){\\\"function\\\"==typeof console.debug\u0026\u0026console.debug(\\\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\\\".concat(e),t)}r.d(t,{R:()=\u003en})},5284:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{t:()=\u003ec,B:()=\u003es});var n=r(7836),i=r(6154);const o=\\\"newrelic\\\";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026(a.has(t)||(r.emit(\\\"rumresp\\\",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{I:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=\u003e{n\u0026\u0026void 0===i\u0026\u0026(e.apply(this,r),i=setTimeout((()=\u003e{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=\u003e{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=\u003e{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=\u003ei,s:()=\u003en})},3304:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A:()=\u003eo});var n=r(7836);const i=()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\\\"object\\\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??\\\"\\\"}catch(e){try{n.ee.emit(\\\"internal-error\\\",[e])}catch(e){}return\\\"\\\"}}},5289:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{GG:()=\u003eo,sB:()=\u003ea});var n=r(3878);function i(){return\\\"undefined\\\"==typeof document||\\\"complete\\\"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)(\\\"load\\\",e,t)}function a(e){if(i())return e();(0,n.DD)(\\\"DOMContentLoaded\\\",e)}},384:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{NT:()=\u003eo,US:()=\u003ed,Zm:()=\u003ea,bQ:()=\u003ec,dV:()=\u003es,nY:()=\u003eu,pV:()=\u003el});var n=r(6154),i=r(1863);const o={beacon:\\\"bam.nr-data.net\\\",errorBeacon:\\\"bam.nr-data.net\\\"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ei});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)(\\\"visibilitychange\\\",(function(){if(t)return void(\\\"hidden\\\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u=\\\"addEventListener\\\",d=\\\"removeEventListener\\\",l=\\\"nr@wrapped:\\\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\\\"events\\\")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],\\\"-\\\",p)}function p(e,t){return e[1]}return\\\"getPrototypeOf\\\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,f),c\u0026\u0026h(c.prototype,f),h(a.gm,f)),t.on(u+\\\"-start\\\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\\\"function\\\"==typeof n||\\\"object\\\"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if(\\\"function\\\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\\\"fn-\\\",null,e.name||\\\"anonymous\\\"):n}));this.wrapped=e[1]=i}})),t.on(d+\\\"-start\\\",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;\\\"object\\\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Jt:()=\u003eo,YM:()=\u003ec});var n=r(7836),i=r(5607);const o=\\\"nr@original:\\\".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\\\"\\\");const a=\\\"-\\\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\\\"\\\"),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\\\"function\\\"==typeof n?n(o,a):n||{}}catch(t){u([t,\\\"\\\",[o,a,s],d],e)}i(r+\\\"start\\\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\\\"err\\\",[o,a,e],d,c),e}finally{i(r+\\\"end\\\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\\\"internal-error\\\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\\\"function\\\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},9414:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{J:()=\u003ec});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if(\\\"object\\\"!=typeof t||!t||\\\"string\\\"!=typeof r||!r||\\\"function\\\"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get(\\\"logger\\\")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],\\\"wrap-logger-\\\",(()=\u003es.get(f))),u}},9300:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},3333:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$v:()=\u003eu,TZ:()=\u003en,Zp:()=\u003ei,kd:()=\u003ec,mq:()=\u003es,nf:()=\u003ea,qN:()=\u003eo});const n=r(860).K7.genericEvents,i=[\\\"auxclick\\\",\\\"click\\\",\\\"copy\\\",\\\"keydown\\\",\\\"paste\\\",\\\"scrollend\\\"],o=[\\\"focus\\\",\\\"blur\\\"],a=4,s=1e3,c=[\\\"PageAction\\\",\\\"UserAction\\\",\\\"BrowserPerformance\\\"],u={MARKS:\\\"experimental.marks\\\",MEASURES:\\\"experimental.measures\\\",RESOURCES:\\\"experimental.resources\\\"}},6774:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},993:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A$:()=\u003eo,ET:()=\u003ea,TZ:()=\u003es,p_:()=\u003ei});var n=r(860);const i={ERROR:\\\"ERROR\\\",WARN:\\\"WARN\\\",INFO:\\\"INFO\\\",DEBUG:\\\"DEBUG\\\",TRACE:\\\"TRACE\\\"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a=\\\"log\\\",s=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(8154),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()))}},8154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{z_:()=\u003eo,XG:()=\u003es,TZ:()=\u003en,rs:()=\u003ei,xV:()=\u003ea});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i=\\\"sm\\\",o=\\\"cm\\\",a=\\\"storeSupportabilityMetrics\\\",s=\\\"storeEventMetrics\\\"},6630:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},782:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ed,G4:()=\u003eo,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003ea,_s:()=\u003es,bc:()=\u003eu,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:\\\"recordReplay\\\",PAUSE:\\\"pauseReplay\\\",REPLAY_RUNNING:\\\"replayRunning\\\",ERROR_DURING_REPLAY:\\\"errorDuringReplay\\\"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:\\\"Session was reset\\\",sm:\\\"Reset\\\"},IMPORT:{message:\\\"Recorder failed to import\\\",sm:\\\"Import\\\"},TOO_MANY:{message:\\\"429: Too Many Requests\\\",sm:\\\"Too-Many\\\"},TOO_BIG:{message:\\\"Payload was too large\\\",sm:\\\"Too-Big\\\"},CROSS_TAB:{message:\\\"Session Entity was set to OFF on another tab\\\",sm:\\\"Cross-Tab\\\"},ENTITLEMENTS:{message:\\\"Session Replay is not allowed and will not be started\\\",sm:\\\"Entitlement\\\"}},d=5e3,l={API:\\\"api\\\"}},5270:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Aw:()=\u003ec,CT:()=\u003eu,SR:()=\u003es});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,o.V)(e)\u0026\u0026!0===(0,i.gD)(e,\\\"session_trace.enabled\\\")}function c(e){return!0===(0,i.gD)(e,\\\"session_replay.preload\\\")\u0026\u0026s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{He:()=\u003ei,Kp:()=\u003es,Lc:()=\u003eu,Rz:()=\u003ed,TZ:()=\u003en,bD:()=\u003eo,d3:()=\u003ea,jx:()=\u003el,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\\\"bstResource\\\",o=\\\"resource\\\",a=\\\"-start\\\",s=\\\"-end\\\",c=\\\"fn\\\"+a,u=\\\"fn\\\"+s,d=\\\"pushState\\\",l=1e3},3962:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AM:()=\u003eo,O2:()=\u003ec,Qu:()=\u003eu,TZ:()=\u003es,ih:()=\u003ed,pP:()=\u003ea,tC:()=\u003ei});var n=r(860);const i=[\\\"click\\\",\\\"keydown\\\",\\\"submit\\\",\\\"popstate\\\"],o=\\\"api\\\",a=\\\"initialPageLoad\\\",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:\\\"\\\",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:\\\"in progress\\\",FIN:\\\"finished\\\",CAN:\\\"cancelled\\\"}},7378:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$p:()=\u003ex,BR:()=\u003eb,Kp:()=\u003eR,L3:()=\u003ey,Lc:()=\u003ec,NC:()=\u003eo,SG:()=\u003ed,TZ:()=\u003ei,U6:()=\u003ep,UT:()=\u003em,d3:()=\u003ew,dT:()=\u003ef,e5:()=\u003eA,gx:()=\u003ev,l9:()=\u003el,oW:()=\u003eh,op:()=\u003eg,rw:()=\u003eu,tH:()=\u003eT,uP:()=\u003es,wW:()=\u003eE,xq:()=\u003ea});var n=r(384);const i=r(860).K7.spa,o=[\\\"click\\\",\\\"submit\\\",\\\"keypress\\\",\\\"keydown\\\",\\\"keyup\\\",\\\"change\\\"],a=999,s=\\\"fn-start\\\",c=\\\"fn-end\\\",u=\\\"cb-start\\\",d=\\\"api-ixn-\\\",l=\\\"remaining\\\",f=\\\"interaction\\\",h=\\\"spaNode\\\",p=\\\"jsonpNode\\\",g=\\\"fetch-start\\\",m=\\\"fetch-done\\\",v=\\\"fetch-body-\\\",b=\\\"jsonp-end\\\",y=(0,n.dV)().o.ST,w=\\\"-start\\\",R=\\\"-end\\\",x=\\\"-body\\\",E=\\\"cb\\\"+R,A=\\\"jsTime\\\",T=\\\"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\\\")},8969:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{j:()=\u003eO});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(8154),h=r(384),p=r(6344);const g=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\",\\\"recordCustomEvent\\\",\\\"addPageAction\\\",\\\"setCurrentRouteName\\\",\\\"setPageViewName\\\",\\\"setCustomAttribute\\\",\\\"interaction\\\",\\\"noticeError\\\",\\\"setUserId\\\",\\\"setApplicationVersion\\\",\\\"start\\\",p.G4.RECORD,p.G4.PAUSE,\\\"log\\\",\\\"wrapLogger\\\"],m=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(9414);function x(){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 A=r(9417),T=r(5603),N=r(5284);const S=e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e};let _=!1;function O(e,t={},g,O){let{init:I,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();P||(I=L.init,P=L.info,j=L.loader_config),(0,A.xN)(e.agentIdentifier,I||{}),(0,T.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},d.bv\u0026\u0026(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const H=(0,A.D0)(e.agentIdentifier),M=[P.beacon,P.errorBeacon];_||(H.proxy.assets\u0026\u0026(S(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon\u0026\u0026M.push(H.proxy.beacon),x(),(0,h.US)(\\\"activatedFeatures\\\",N.B),e.runSoftNavOverSpa\u0026\u0026=!0===H.soft_navigations.enabled\u0026\u0026H.feature_flags.includes(\\\"soft_nav\\\")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api\u0026\u0026(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,\\\"api\\\");const g={};var x=s.ee.get(e),A=x.get(\\\"tracer\\\");E[e]=b.g.OFF,x.on(p.G4.REPLAY_RUNNING,(t=\u003e{E[e]=t}));var T=\\\"api-\\\",N=T+\\\"ixn-\\\";function S(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(T,n,!0,o||null===r?\\\"session\\\":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,[\\\"API/log/called\\\"],void 0,n.K7.metrics,x),(0,w.R)(x,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,x),(0,R.J)(x,e,t,{customAttributes:r,level:i})},m.forEach((e=\u003e{g[e]=I(T,e,!0,\\\"api\\\")})),g.addPageAction=I(T,\\\"addPageAction\\\",!0,n.K7.genericEvents),g.recordCustomEvent=I(T,\\\"recordCustomEvent\\\",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if(\\\"string\\\"==typeof t)return\\\"/\\\"!==t.charAt(0)\u0026\u0026(t=\\\"/\\\"+t),(0,o.f)(e).customTransaction=(r||\\\"http://custom.transaction\\\")+t,I(T,\\\"setPageViewName\\\",!0)()},g.setCustomAttribute=function(e,t,r=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof t)||null===t)return S(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 S(\\\"enduser.id\\\",e,\\\"setUserId\\\",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if(\\\"string\\\"==typeof e||null===e)return S(\\\"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,x),x.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,x),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,[\\\"API/pauseReplay/called\\\"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},g.interaction=function(e){return(new _).get(\\\"object\\\"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o=\\\"function\\\"==typeof t;return(0,a.p)(f.xV,[\\\"API/createTracer/called\\\"],void 0,n.K7.metrics,x),h||(0,a.p)(N+\\\"tracer\\\",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(A.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 A.emit(\\\"fn-err\\\",[arguments,this,t],r),t}finally{A.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,x),i\u0026\u0026(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=\u003e{t(e),(0,c.Ze)(e,\\\"api\\\")})).catch((e=\u003e{(0,l.R)(27,e),x.abort()}))}return[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach((e=\u003e{O[e]=I(N,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(N,\\\"routeName\\\",void 0,n.K7.softNav):I(T,\\\"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,x),(0,a.p)(\\\"err\\\",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},d.RI?(0,u.GG)((()=\u003eP()),!0):P(),g}(e.agentIdentifier,O,e.runSoftNavOverSpa)),void 0===e.exposed\u0026\u0026(e.exposed=k),_=!0}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\\\"\\\"})()},860:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$J:()=\u003eu,K7:()=\u003es,P3:()=\u003ec,XX:()=\u003ei,qY:()=\u003en,v4:()=\u003ea});const n=\\\"events\\\",i=\\\"jserrors\\\",o=\\\"browser/blobs\\\",a=\\\"rum\\\",s={ajax:\\\"ajax\\\",genericEvents:\\\"generic_events\\\",jserrors:i,logging:\\\"logging\\\",metrics:\\\"metrics\\\",pageAction:\\\"page_action\\\",pageViewEvent:\\\"page_view_event\\\",pageViewTiming:\\\"page_view_timing\\\",sessionReplay:\\\"session_replay\\\",sessionTrace:\\\"session_trace\\\",softNav:\\\"soft_navigations\\\",spa:\\\"spa\\\"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:\\\"browser/logs\\\",[s.genericEvents]:\\\"ins\\\"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({212:\\\"nr-spa-compressor\\\",249:\\\"nr-spa-recorder\\\",478:\\\"nr-spa\\\"}[e]+\\\"-1.283.1.min.js\\\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\\\"NRBA-1.283.1.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-xh2gny9FbPW5pomtWyy7hHdQHGboXB/N4nyn8DfA0WA2vCwX0A4j2oDh5iaHPZ7LExtpCN1wH+cmFhC5+XZpvw==\\\",249:\\\"sha512-QwbAv951CmpiBMYrGDX13s51PFIraP7TGD1mhcZv8jILwi1qPZbPL+c98zB6u5kWpOPcdfGLroZW+38lG3ZVHA==\\\",212:\\\"sha512-hVJwKgbpekN6SB9bmRkjdGJxXRXeHDsrVRlTC1EMUEYSeaO8NWR6CjzsDA2iUrhmD1sv4p1TCx6tYULmyZ2Tbw==\\\"};(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.283.1.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.283.1.PROD\\\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\\\"use strict\\\";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(\\\"function\\\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e(\\\"addPageAction\\\",e,t)}recordCustomEvent(e,t){return this.#e(\\\"recordCustomEvent\\\",e,t)}setPageViewName(e,t){return this.#e(\\\"setPageViewName\\\",e,t)}setCustomAttribute(e,t,r){return this.#e(\\\"setCustomAttribute\\\",e,t,r)}noticeError(e,t){return this.#e(\\\"noticeError\\\",e,t)}setUserId(e){return this.#e(\\\"setUserId\\\",e)}setApplicationVersion(e){return this.#e(\\\"setApplicationVersion\\\",e)}setErrorHandler(e){return this.#e(\\\"setErrorHandler\\\",e)}addRelease(e,t){return this.#e(\\\"addRelease\\\",e,t)}log(e,t){return this.#e(\\\"log\\\",e,t)}}class o extends n{#e(t,...r){if(\\\"function\\\"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e(\\\"start\\\")}finished(e){return this.#e(\\\"finished\\\",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e(\\\"addToTrace\\\",e)}setCurrentRouteName(e){return this.#e(\\\"setCurrentRouteName\\\",e)}interaction(){return this.#e(\\\"interaction\\\")}wrapLogger(e,t,r){return this.#e(\\\"wrapLogger\\\",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=\u003e{t[r]=function(e,t){return!0===(0,s.gD)(t,\\\"\\\".concat(e,\\\".enabled\\\"))}(r,e)})),t}var d=i(8969);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart\u0026\u0026(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on(\\\"manual-start-all\\\",(0,v.J)((()=\u003e{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=\u003e{n=e}));const o=async()=\u003e{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit(\\\"internal-error\\\",[t]),this.featureName===a.K7.sessionReplay\u0026\u0026this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,\\\"aggregate\\\");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee\u0026\u0026this.ee.abort()}};p.RI?(0,h.GG)((()=\u003eo()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)\u0026\u0026!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),A=i(3878),T=i(782),N=i(1863);class S extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),p.RI\u0026\u0026((0,E.u)((()=\u003e(0,x.p)(\\\"docHidden\\\",[(0,N.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)(\\\"pagehide\\\",(()=\u003e(0,x.p)(\\\"winPagehide\\\",[(0,N.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var _=i(8154);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name=\\\"UncaughtError\\\",this.message=\\\"string\\\"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t=\\\"Unhandled Promise Rejection\\\";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+\\\": \\\"+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+\\\": \\\"+r?.message,r}function L(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\\\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error\u0026\u0026!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\\\"internal-error\\\",((e,t)=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"ierr\\\",[C(e),(0,N.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.#r=e})),p.gm.addEventListener(\\\"unhandledrejection\\\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[k(e),(0,N.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,N.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 D=i(8990);let K=1;const U=\\\"nr@id\\\";function V(e){const t=typeof e;return!e||\\\"object\\\"!==t\u0026\u0026\\\"function\\\"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if(\\\"string\\\"==typeof e\u0026\u0026e.length)return e.length;if(\\\"object\\\"==typeof e){if(\\\"undefined\\\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\\\"undefined\\\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\\\"undefined\\\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=[\\\"open\\\",\\\"send\\\"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get(\\\"xhr\\\")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u=\\\"readystatechange\\\",d=[\\\"onload\\\",\\\"onerror\\\",\\\"onabort\\\",\\\"onloadstart\\\",\\\"onloadend\\\",\\\"onprogress\\\",\\\"ontimeout\\\"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit(\\\"new-xhr\\\",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!s.resolved\u0026\u0026(s.resolved=!0,n.emit(\\\"xhr-resolved\\\",[],e)),i.inPlace(e,d,\\\"fn-\\\",y)}),(0,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-\\\",J=Y+\\\"body-\\\",X=[\\\"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,X.forEach((e=\u003e{r(Q[te],e,J),r(ee[te],e,J)})),r(p.gm,\\\"fetch\\\",Y),t.on(Y+\\\"end\\\",(function(e,r){var n=this;if(r){var i=r.headers.get(\\\"content-length\\\");null!==i\u0026\u0026(n.rxSize=i),t.emit(Y+\\\"done\\\",[null,r],n)}else t.emit(Y+\\\"done\\\",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||\\\"\\\").toString()||null,i=(t.agentID||\\\"\\\").toString()||null,o=(t.trustKey||\\\"\\\").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return\\\"00-\\\"+t+\\\"-\\\"+e+\\\"-01\\\"}generateTraceContextStateHeader(e,t,r,n,i){return i+\\\"@nr=0-1-\\\"+r+\\\"-\\\"+n+\\\"-\\\"+e+\\\"----\\\"+t}generateTraceHeader(e,t,r,n,i,o){if(!(\\\"function\\\"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:\\\"Browser\\\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\")\u0026\u0026(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname\u0026\u0026e.protocol===i.protocol\u0026\u0026e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=[\\\"load\\\",\\\"error\\\",\\\"abort\\\",\\\"timeout\\\"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=\u003e(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\\\"xhr\\\",fetch:\\\"fetch\\\",beacon:\\\"beacon\\\"};p.gm?.performance?.getEntriesByType(\\\"resource\\\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler(\\\"xhr\\\",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\\\"load\\\",(function(r){E(t,e)}),(0,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,N.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,N.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,N.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\\\"xhr-cb-time\\\",[(0,N.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,N.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,N.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,N.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,N.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):E(this,e),n.cbTime=this.cbTime,r(\\\"xhr\\\",[t,n,this.startTime,this.endTime,\\\"xhr\\\"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return\\\"json\\\"===r\u0026\u0026null!==t?t:\\\"arraybuffer\\\"===r||\\\"blob\\\"===r||\\\"json\\\"===r?G(e.response):\\\"text\\\"===r||\\\"\\\"===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n\u0026\u0026(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader(\\\"X-NewRelic-App-Data\\\");i\u0026\u0026((0,x.p)(_.rs,[\\\"Ajax/CrossApplicationTracing/Header/Seen\\\"],void 0,a.K7.metrics,t),e.params.cat=i.split(\\\", \\\").pop())}e.loadCaptureCalled=!0}t.on(\\\"new-xhr\\\",i),t.on(\\\"open-xhr-start\\\",o),t.on(\\\"open-xhr-end\\\",s),t.on(\\\"send-xhr-start\\\",c),t.on(\\\"xhr-cb-time\\\",u),t.on(\\\"xhr-load-added\\\",d),t.on(\\\"xhr-load-removed\\\",l),t.on(\\\"xhr-resolved\\\",f),t.on(\\\"addEventListener-end\\\",h),t.on(\\\"removeEventListener-end\\\",g),t.on(\\\"fn-end\\\",v),t.on(\\\"fetch-before-start\\\",b),t.on(\\\"fetch-start\\\",y),t.on(\\\"fn-start\\\",m),t.on(\\\"fetch-done\\\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+\\\":\\\"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=[\\\"pushState\\\",\\\"replaceState\\\"];function ve(e){const t=function(e){return(e||B.ee).get(\\\"history\\\")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,\\\"-\\\")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Ae,uP:Te,Rz:Ne}=be;class Se extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,N.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)(\\\"bst\\\",[e[0],t,this.bstStart,(0,N.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+Re,(function(e){this.time=(0,N.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+xe,(function(e){(0,x.p)(\\\"bstHist\\\",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem(\\\"\\\".concat(_e.H3,\\\"_\\\").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)\u0026\u0026this.ee.on(t.G4.RECORD,(()=\u003ethis.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on(\\\"err\\\",(e=\u003e{this.replayRunning\u0026\u0026(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.replayRunning=e}))}#s(e){return e\u0026\u0026(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL\u0026\u0026this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder\u0026\u0026this.recorder.parent.mode!==_e.g.FULL\u0026\u0026(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=\u003e{(0,A.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\\\"newURL\\\",[(0,N.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,N.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=\u003e{(0,x.p)(\\\"newUIEvent\\\",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=[\\\"appendChild\\\",\\\"insertBefore\\\",\\\"replaceChild\\\"];function Le(e){const t=function(e){return(e||B.ee).get(\\\"jsonp\\\")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,i=/(.*)\\\\.([^.]+)/,o=/^(\\\\w+)(\\\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,\\\"dom-\\\"),t.on(\\\"dom-start\\\",(function(e){!function(e){if(!e||\\\"string\\\"!=typeof e.nodeName||\\\"script\\\"!==e.nodeName.toLowerCase())return;if(\\\"function\\\"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if(\\\"function\\\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\\\"jsonp-end\\\",[],d),e.removeEventListener(\\\"load\\\",l,(0,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 Me(e){const t=function(e){return(e||B.ee).get(\\\"promise\\\")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i\u0026\u0026function(){function e(r){var o=t.context(),a=n(r,\\\"executor-\\\",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,\\\"name\\\",{value:\\\"Promise\\\"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),[\\\"all\\\",\\\"race\\\"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\\\"all\\\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\\\"propagate\\\",[null,!i],o,!1,!1),i=i||!e}}}})),[\\\"resolve\\\",\\\"reject\\\"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\\\"propagate\\\",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],\\\"cb-\\\",a,null,!1),e[1]=n(e[1],\\\"cb-\\\",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit(\\\"propagate\\\",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on(\\\"executor-start\\\",(function(e){e[0]=n(e[0],\\\"resolve-\\\",this,null,!1),e[1]=n(e[1],\\\"resolve-\\\",this,null,!1)})),t.on(\\\"executor-err\\\",(function(e,t,r){e[1](r)})),t.on(\\\"cb-end\\\",(function(e,r,n){t.emit(\\\"propagate\\\",[n,!0],this.nextPromise,!1,!1)})),t.on(\\\"propagate\\\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const De={},Ke=\\\"setTimeout\\\",Ue=\\\"setInterval\\\",Ve=\\\"clearTimeout\\\",Ge=\\\"-start\\\",Fe=[Ke,\\\"setImmediate\\\",Ue,Ve,\\\"clearImmediate\\\"];function Be(e){const t=function(e){return(e||B.ee).get(\\\"timer\\\")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(2,3),Ue+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(3),Ve+\\\"-\\\"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],\\\"fn-\\\",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\\\"fn-\\\",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get(\\\"mutation\\\")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n\u0026\u0026(window.MutationObserver=function(e){return this instanceof n?new n(r(e,\\\"fn-\\\")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Je,wW:Xe,e5:$e,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\\\"tracer\\\"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get(\\\"events\\\"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit(\\\"newURL\\\",[\\\"\\\"+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,N.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,N.t)();this[$e]=~~this[$e]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,N.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Xe,m),o.on(Xe,m),this.ee.on(\\\"fn-err\\\",((...t)=\u003e{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)(\\\"function-err\\\",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,\\\"xhr-resolved\\\"],this.featureName),u.buffer([et],this.featureName),s.buffer([\\\"setTimeout\\\"+Ye,\\\"clearTimeout\\\"+Ze,et],this.featureName),c.buffer([et,\\\"new-xhr\\\",\\\"send-xhr\\\"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+\\\"-done\\\",Qe+Je+Ze,Qe+Je+Ye],this.featureName),l.buffer([\\\"newURL\\\"],this.featureName),f.buffer([et],this.featureName),a.buffer([\\\"propagate\\\",tt,Xe,\\\"executor-err\\\",\\\"resolve\\\"+Ze],this.featureName),i.buffer([et,\\\"no-\\\"+et],this.featureName),o.buffer([\\\"new-jsonp\\\",\\\"cb-start\\\",\\\"jsonp-error\\\",\\\"jsonp-end\\\"],this.featureName),v(d,Qe+Ze),v(d,Qe+\\\"-done\\\"),v(o,\\\"new-jsonp\\\"),v(o,\\\"jsonp-end\\\"),v(o,\\\"cb-start\\\"),l.on(\\\"pushState-end\\\",h),l.on(\\\"replaceState-end\\\",h),window.addEventListener(\\\"hashchange\\\",h,(0,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,e.init.performance.resources.enabled];if(p.RI\u0026\u0026(e.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{const t=(0,v.s)((e=\u003e{(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled\u0026\u0026p.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\"))){new PerformanceObserver((e=\u003e{e.getEntries().forEach((e=\u003e{(0,x.p)(\\\"browserPerformance.resource\\\",[e],void 0,this.featureName,this.ee)}))})).observe({type:\\\"resource\\\",buffered:!0})}r.some((e=\u003ee))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785),ct=i(9414);class ut extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;(0,ct.J)(r,p.gm.console,\\\"log\\\",{level:\\\"info\\\"}),(0,ct.J)(r,p.gm.console,\\\"error\\\",{level:\\\"error\\\"}),(0,ct.J)(r,p.gm.console,\\\"warn\\\",{level:\\\"warn\\\"}),(0,ct.J)(r,p.gm.console,\\\"info\\\",{level:\\\"info\\\"}),(0,ct.J)(r,p.gm.console,\\\"debug\\\",{level:\\\"debug\\\"}),(0,ct.J)(r,p.gm.console,\\\"trace\\\",{level:\\\"trace\\\"}),this.ee.on(\\\"wrap-logger-end\\\",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=\u003ee.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||\\\"agent\\\"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=\u003ea.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=\u003e{if(!t[r.featureName]\u0026\u0026r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=\u003e!(e in this.features)));n.length\u003e0\u0026\u0026(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,S,Se,Oe,O,M,ot,ut,Pe,nt],loaderType:\\\"spa\\\"})})()})();\",\"google\",\"testAutomationFlags\",{\"_775\":24,\"_776\":24,\"_777\":24,\"_778\":24,\"_779\":24,\"_780\":24,\"_781\":24,\"_782\":24,\"_783\":24,\"_32\":24,\"_784\":24,\"_785\":171,\"_786\":171},\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"configState\",{\"_54\":55,\"_52\":53,\"_789\":8,\"_790\":-7,\"_791\":24,\"_711\":792,\"_796\":797,\"_799\":800,\"_814\":815},\"uiBrand\",\"colors\",\"isMarketsDivision\",{\"_7\":793,\"_794\":795},\"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\",{\"_798\":171},\"brightcoveAccountId\",\"newsletterSignupPromo\",{\"_801\":802,\"_803\":804},\"unbounceURL\",\"https://itp-resources.itprotoday.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_itpb86\u0026ch=itpsitebtn\",\"elnConfig\",{\"_805\":806},\"newsletter\",{\"_807\":808,\"_812\":813},\"subscribeForm\",{\"_115\":809,\"_810\":811},\"Subscribe to Our Newsletters\",\"subtitle\",\"Subtitle\",\"subscribeConfirm\",{\"_115\":809,\"_810\":811},\"proxyConfigs\",{\"_816\":24,\"_817\":171},\"proxyEnabled\",\"proxyRootPath\",\"brandConfig\",{\"_13\":14,\"_820\":14,\"_821\":10,\"_822\":823,\"_15\":16,\"_33\":34,\"_824\":825,\"_38\":826,\"_835\":836,\"_798\":171,\"_43\":44,\"_50\":841,\"_842\":843,\"_847\":804,\"_738\":767,\"_848\":849,\"_877\":878},\"siteFullName\",\"siteUrl\",\"siteDivision\",\"Informa Tech\",\"authentication\",{},{\"_827\":828,\"_830\":831,\"_832\":833,\"_63\":834},\"local\",{\"_40\":829},\"dfd08c13-c8cf-43d1-8ccc-a1ca99dc6d5e-test\",\"preview\",{\"_40\":829},\"staging\",{\"_40\":41},{\"_40\":41},\"unbounce\",{\"_827\":837,\"_830\":838,\"_832\":839,\"_63\":840},{},{},{},{},{\"_7\":8,\"_52\":53,\"_54\":55},\"newsletterSignupPromoContent\",{\"_115\":809,\"_844\":171,\"_845\":846},\"message\",\"buttonText\",\"Sign Me Up\",\"eln\",\"iirisRecommendation\",{\"_850\":851,\"_852\":853,\"_854\":855,\"_856\":857,\"_858\":171,\"_859\":171,\"_860\":861,\"_862\":863,\"_864\":865,\"_866\":193,\"_867\":868,\"_869\":870,\"_871\":872,\"_873\":874,\"_875\":876,\"_7\":8},\"id\",\"widget-1717150909887\",\"division\",\"it\",\"brandFamily\",\"enterpriseit\",\"entityTagBackground\",\"#333333BF\",\"showBy\",\"showTime\",\"borderRadius\",\"4\",\"imageWidth\",\"324\",\"imageHeight\",\"182\",\"imagePosition\",\"dropShadow\",\"#FFEB00\",\"entityTagBorderColor\",\"#333333\",\"borderColor\",\"#e6e6e6\",\"redirectMode\",\"same\",\"recipe\",\"related-items\",\"articleSocialShareToggle\",{\"_879\":26,\"_880\":26,\"_881\":26},\"print\",\"email\",\"reddit\",\"routes/$topic.$slug._index\",{\"_884\":24,\"_885\":-7,\"_886\":849,\"_887\":24,\"_888\":24,\"_889\":890,\"_949\":950,\"_1582\":1583,\"_1604\":1605,\"_1616\":1617,\"_1663\":24},\"isRequestedByGoogleBot\",\"weatherWidgetConfig\",\"iirisRecommendationConfig\",\"isUserEntitled\",\"isGatedAsPaid\",\"metadata\",{\"_88\":891,\"_892\":893,\"_894\":895,\"_896\":12,\"_897\":898,\"_911\":912,\"_913\":171,\"_794\":914,\"_945\":24,\"_946\":24,\"_947\":24,\"_948\":171},\"video\",\"uid\",\"blt21a766d4aebd4d4e\",\"aid\",\"336582\",\"reg\",\"pterm\",{\"_899\":224,\"_900\":901,\"_902\":903,\"_904\":905},\"main\",\"parent\",\"Operating Systems\",\"grandparent\",{\"_115\":171},\"additional\",[906],{\"_88\":907,\"_115\":224,\"_59\":225,\"_908\":909},\"TopicSecondary\",\"parentTopic\",{\"_88\":910,\"_115\":901},\"TopicPrimary\",\"contentFormat\",\"How To\",\"buyersJourney\",[915],{\"_115\":258,\"_57\":258,\"_916\":171,\"_917\":171,\"_186\":260,\"_184\":259,\"_918\":171,\"_919\":920},\"companyName\",\"role\",\"tagLine\",\"summary\",[921,932],{\"_88\":922,\"_923\":924,\"_927\":928},\"paragraph\",\"attrs\",{\"_925\":926},\"textAlign\",\"left\",\"content\",[929],{\"_88\":930,\"_930\":931},\"text\",\"Brien Posey is a bestselling technology author, a speaker, and a 20X Microsoft MVP. In addition to his ongoing work in IT, Posey has spent the last several years training as a commercial astronaut candidate in preparation to fly on a mission to study polar mesospheric clouds from space.\",{\"_88\":922,\"_923\":933,\"_927\":934},{\"_925\":926},[935],{\"_88\":930,\"_936\":937,\"_930\":940},\"marks\",[938],{\"_88\":184,\"_923\":939},{\"_5\":940,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://brienposey.com/\",\"target\",\"_self\",\"rel\",\"class\",\"gatedWithExternalForm\",\"gatedWithSiteReg\",\"paidGating\",\"sponsorName\",\"template\",{\"_951\":952,\"_956\":957,\"_69\":-5,\"_963\":964,\"_919\":965,\"_115\":966,\"_165\":966,\"_967\":171,\"_968\":171,\"_969\":171,\"_913\":171,\"_180\":914,\"_970\":971,\"_972\":-7,\"_973\":974,\"_982\":-7,\"_983\":-7,\"_984\":985,\"_998\":999,\"_1000\":1001,\"_1002\":1003,\"_1004\":1005,\"_178\":1332,\"_892\":893,\"_1333\":1334,\"_1341\":1342,\"_911\":1348,\"_1349\":1350,\"_1351\":1352,\"_1353\":1354,\"_1550\":1551,\"_1552\":1553,\"_1558\":-7,\"_947\":1559,\"_1562\":1563,\"_891\":1569,\"_888\":24},\"breadcrumbs\",[953,955],{\"_59\":954,\"_115\":749},\"/\",{\"_59\":225,\"_115\":224},\"topics\",[958,961],{\"_959\":907,\"_115\":224,\"_59\":225,\"_908\":960},\"__typename\",{\"_115\":901},{\"_959\":907,\"_115\":224,\"_59\":225,\"_908\":962},{\"_115\":901},\"searchParams\",{},\"Here is a quick and easy method for setting up text-to-speech in PowerShell.\",\"How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)\",\"authoredBy\",\"authoredOn\",\"oldUrl\",\"readTime\",8,\"panelsModule\",\"newsletterSignUpPromo\",{\"_115\":975,\"_844\":976,\"_977\":978,\"_845\":979,\"_190\":193,\"_980\":981},\"Sign up for the ITPro Today newsletter\",\"Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.\",\"newsletterId\",\"blt96562e27e259477c\",\"Newsletter Sign-Up\",\"mode\",\"dark\",\"resourcesModule\",\"embedModule\",\"socialShare\",[986,988,990,992,995],{\"_88\":95,\"_59\":987},\"https://www.linkedin.com/sharing/share-offsite/?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\",{\"_88\":89,\"_59\":989},\"http://www.facebook.com/sharer/sharer.php?u=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\",{\"_88\":92,\"_59\":991},\"http://www.twitter.com/intent/tweet?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\",{\"_88\":993,\"_59\":994},\"Reddit\",\"https://www.reddit.com/submit?url=https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\u0026title=How%20To%20Make%20PowerShell%20Speak%20(Text-to-Speech%20.NET%20Tutorial)\",{\"_88\":996,\"_59\":997},\"Email\",\"mailto:?subject=How To Make PowerShell Speak (Text-to-Speech .NET Tutorial)\u0026body=I%20thought%20the%20following%20from%20ITPro%20Today%20might%20interest%20you.%0D%0A%0D%0A%20How%20To%20Make%20PowerShell%20Speak%20(Text-to-Speech%20.NET%20Tutorial)%0D%0Ahttps%3A%2F%2Fwww.itprotoday.com%2Fpowershell%2Fhow-to-make-powershell-speak-text-to-speech-net-tutorial-\",\"publishedDate\",\"2024-07-05T11:00:00.000Z\",\"keywords\",[],\"atAGlance\",[],\"bodyJson\",[1006,1014,1021,1026,1031,1038,1048,1057,1061,1068,1073,1122,1127,1140,1142,1147,1154,1167,1169,1176,1181,1186,1191,1196,1201,1206,1211,1216,1218,1223,1228,1235,1240,1245,1249,1253,1258,1275,1280,1289,1298,1305,1310,1315,1317,1322,1327],{\"_88\":922,\"_923\":1007,\"_927\":1008},{\"_925\":926},[1009],{\"_88\":930,\"_936\":1010,\"_930\":1013},[1011],{\"_88\":1012},\"italic\",\"In this video, PowerShell expert Brien Posey demonstrates how to enable text-to-speech in PowerShell using .NET. He shows that you can achieve this with just three lines of code:\",{\"_88\":1015,\"_923\":1016,\"_927\":1018},\"codeBlock\",{\"_1017\":-5},\"language\",[1019],{\"_88\":930,\"_930\":1020},\"Add-Type -AssemblyName System.Speech\",{\"_88\":1015,\"_923\":1022,\"_927\":1023},{\"_1017\":-5},[1024],{\"_88\":930,\"_930\":1025},\"$Talk = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer\",{\"_88\":1015,\"_923\":1027,\"_927\":1028},{\"_1017\":-5},[1029],{\"_88\":930,\"_930\":1030},\"$Talk.Speak('With dot net you can make PowerShell speak')\",{\"_88\":922,\"_923\":1032,\"_927\":1033},{\"_925\":926},[1034],{\"_88\":930,\"_936\":1035,\"_930\":1037},[1036],{\"_88\":1012},\"The following transcript is edited for clarity and length.\",{\"_88\":1039,\"_923\":1040,\"_927\":1042},\"heading\",{\"_925\":926,\"_1041\":354},\"level\",[1043],{\"_88\":930,\"_936\":1044,\"_930\":1047},[1045],{\"_88\":1046},\"bold\",\"Transcript:\",{\"_88\":922,\"_923\":1049,\"_927\":1050},{\"_925\":926},[1051,1055],{\"_88\":930,\"_936\":1052,\"_930\":1054},[1053],{\"_88\":1046},\"Brien Posey: \",{\"_88\":930,\"_930\":1056},\"Hello, greetings and welcome. I'm Brien Posey. In this video, I want to show you how you can leverage .NET to make PowerShell talk. In other words, we will be enabling text-to-speech within PowerShell. Surprisingly, this is easy to do. You can do it with about three lines of code.\",{\"_88\":1058,\"_1059\":1060},\"ad\",\"pos\",\"300_1v_article\",{\"_88\":1039,\"_923\":1062,\"_927\":1063},{\"_925\":926,\"_1041\":354},[1064],{\"_88\":930,\"_936\":1065,\"_930\":1067},[1066],{\"_88\":1046},\".NET Namespace, Class, and Method\",{\"_88\":922,\"_923\":1069,\"_927\":1070},{\"_925\":926},[1071],{\"_88\":930,\"_930\":1072},\"First, I want to mention that we are leveraging .NET to get this done. I recently wrote a series of articles on using .NET within PowerShell.\",{\"_88\":1074,\"_927\":1075},\"bulletList\",[1076,1092,1107],{\"_88\":1077,\"_927\":1078},\"listItem\",[1079],{\"_88\":922,\"_923\":1080,\"_927\":1081},{\"_925\":926},[1082,1086],{\"_88\":930,\"_936\":1083,\"_930\":1085},[1084],{\"_88\":1046},\"Part 1:\",{\"_88\":930,\"_936\":1087,\"_930\":1091},[1088],{\"_88\":184,\"_923\":1089},{\"_5\":1090,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://www.itprotoday.com/powershell/enhancing-powershell-with-net-classes-and-methods\",\"Enhancing PowerShell With .NET Classes and Methods\",{\"_88\":1077,\"_927\":1093},[1094],{\"_88\":922,\"_923\":1095,\"_927\":1096},{\"_925\":926},[1097,1101],{\"_88\":930,\"_936\":1098,\"_930\":1100},[1099],{\"_88\":1046},\"Part 2: \",{\"_88\":930,\"_936\":1102,\"_930\":1106},[1103],{\"_88\":184,\"_923\":1104},{\"_5\":1105,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://www.itprotoday.com/powershell/how-to-integrate-net-classes-into-powershell-scripts\",\"How To Integrate .NET Classes Into PowerShell Scripts\",{\"_88\":1077,\"_927\":1108},[1109],{\"_88\":922,\"_923\":1110,\"_927\":1111},{\"_925\":926},[1112,1116],{\"_88\":930,\"_936\":1113,\"_930\":1115},[1114],{\"_88\":1046},\"Part 3: \",{\"_88\":930,\"_936\":1117,\"_930\":1121},[1118],{\"_88\":184,\"_923\":1119},{\"_5\":1120,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://www.itprotoday.com/powershell/how-to-use-net-properties-and-methods-in-powershell\",\"How To Use .NET Properties and Methods\",{\"_88\":922,\"_923\":1123,\"_927\":1124},{\"_925\":926},[1125],{\"_88\":930,\"_930\":1126},\"If you missed those, here’s what this involves.\",{\"_88\":922,\"_923\":1128,\"_927\":1129},{\"_925\":926},[1130,1132,1138],{\"_88\":930,\"_930\":1131},\"I opened my web browser to \",{\"_88\":930,\"_936\":1133,\"_930\":1137},[1134],{\"_88\":184,\"_923\":1135},{\"_5\":1136,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://learn.microsoft.com/en-us/dotnet/api/\",\"the .NET API browser\",{\"_88\":930,\"_930\":1139},\". It’s where you can look at all the various .NET namespaces, classes, and methods. So, the namespace that we will use is called System.Speech.Synthesis.\",{\"_88\":1058,\"_1059\":1141},\"native_1v\",{\"_88\":922,\"_923\":1143,\"_927\":1144},{\"_925\":926},[1145],{\"_88\":930,\"_930\":1146},\"I am going to go ahead and click on it. It takes me to the System.Speech.Synthesis namespace page. Right away, you can see all the classes that exist within this namespace. Now, the class that we will use is called SpeechSynthesizer. I will go ahead and click on this. Then, we can see some examples and all the properties and methods that apply to this class.\",{\"_88\":1148,\"_927\":1149,\"_115\":1153},\"relatedArticle\",[1150],{\"_115\":1151,\"_59\":1152,\"_941\":942},\"ChatGPT Integration in PowerShell (Scripting Demo)\",\"/powershell/chatgpt-integration-in-powershell-scripting-demo-\",\"Related\",{\"_88\":922,\"_923\":1155,\"_927\":1156},{\"_925\":926},[1157,1159,1165],{\"_88\":930,\"_930\":1158},\"Now, the method that we will use is called Speak. And you can see the Speak method right here. If I click on this, it opens a page with some coding samples. Coding samples are \",{\"_88\":930,\"_936\":1160,\"_930\":1164},[1161],{\"_88\":184,\"_923\":1162},{\"_5\":1163,\"_941\":942,\"_943\":-5,\"_944\":-5},\"https://www.itprotoday.com/software-development/programming-languages/c-programming-language\",\"written in C\",{\"_88\":930,\"_930\":1166},\", not in PowerShell, but that is okay because it is easy to leverage this within PowerShell.\",{\"_88\":1058,\"_1059\":1168},\"video_v\",{\"_88\":1039,\"_923\":1170,\"_927\":1171},{\"_925\":926,\"_1041\":354},[1172],{\"_88\":930,\"_936\":1173,\"_930\":1175},[1174],{\"_88\":1046},\"Why Use .NET?\",{\"_88\":922,\"_923\":1177,\"_927\":1178},{\"_925\":926},[1179],{\"_88\":930,\"_930\":1180},\"Before I show you how this works, I want to answer a big question: Why would you use .NET to do this?\",{\"_88\":922,\"_923\":1182,\"_927\":1183},{\"_925\":926},[1184],{\"_88\":930,\"_930\":1185},\"Well, there are two main reasons why you might want to use .NET within a PowerShell script.\",{\"_88\":922,\"_923\":1187,\"_927\":1188},{\"_925\":926},[1189],{\"_88\":930,\"_930\":1190},\"One reason is that .NET will allow you to do things that you cannot do using native PowerShell. For example, I don’t know of a PowerShell cmdlet that supports text-to-speech. If we want to enable text-to-speech, we have to leverage .NET.\",{\"_88\":922,\"_923\":1192,\"_927\":1193},{\"_925\":926},[1194],{\"_88\":930,\"_930\":1195},\"The other reason is that .NET can simplify the coding. After all, sometimes it might be possible to do something using native PowerShell but easier using .NET. Now, I do not have an example of how it is long and cumbersome to enable text-to-speech through PowerShell without .NET and how .NET makes it easy. As I said a moment ago, PowerShell does not natively support text-to-speech. However, I can show you an example from quite some time ago.\",{\"_88\":1148,\"_927\":1197,\"_115\":1153},[1198],{\"_115\":1199,\"_59\":1200,\"_941\":942},\"How To Create Your Own PowerShell Cmdlets (Video Tutorial)\",\"/powershell/how-to-create-your-own-powershell-cmdlets-video-tutorial-\",{\"_88\":922,\"_923\":1202,\"_927\":1203},{\"_925\":926},[1204],{\"_88\":930,\"_930\":1205},\"When I was a kid growing up in the ‘80s, I had an old RadioShack Color Computer. Back then, it was possible to do text-to-speech, but you had to have a text-to-speech cartridge. While preparing to record this video, I found a copy of the instruction manual for that sound speech cartridge online.\",{\"_88\":922,\"_923\":1207,\"_927\":1208},{\"_925\":926},[1209],{\"_88\":930,\"_930\":1210},\"Here, you can see the Color Computer Speech Sound Cartridge instruction manual. The main thing that I wanted to show you is what's involved in creating text-to-speech. You will notice a couple of columns – decimal and hex – and a series of commands. You manipulated individual bits to enable text-to-speech on the old RadioShack Color Computer using the Speech Sound Cartridge. You had to do so based on a reference table.\",{\"_88\":922,\"_923\":1212,\"_927\":1213},{\"_925\":926},[1214],{\"_88\":930,\"_930\":1215},\"So, what does all this look like in programmatic form? I don't want to go deeply into this, but I will give you a code sample. The instruction manual provided a sample program that allows you to do text-to-speech. At first glance, this doesn't look all that complicated. But you will notice that we have some statements in this program called Peek and Poke. In the old RadioShack basic, a Peek statement would look at a particular memory address, and a Poke statement would insert a value into a specific memory address. Right here, we have an If statement based on a Peek. We are looking at a particular memory address, checking to see its value, and then returning a value based on the value in that memory address. Likewise, the Poke statement you see here inserts a value into a specific memory address. So, even though this program doesn't look all that complicated at first glance, it uses direct bit manipulation in memory.\",{\"_88\":1058,\"_1059\":1217},\"native_2v\",{\"_88\":1148,\"_927\":1219,\"_115\":1153},[1220],{\"_115\":1221,\"_59\":1222,\"_941\":942},\"How To Use PS2EXE To Convert PowerShell Scripts Into EXE Files\",\"/powershell/how-to-use-ps2exe-to-convert-powershell-scripts-into-exe-files\",{\"_88\":922,\"_923\":1224,\"_927\":1225},{\"_925\":926},[1226],{\"_88\":930,\"_930\":1227},\"At least in the past, enabling text-to-speech programmatically tended to be a complicated endeavor. In the case of PowerShell, though, it's super simple to do, thanks to .NET.\",{\"_88\":1039,\"_923\":1229,\"_927\":1230},{\"_925\":926,\"_1041\":354},[1231],{\"_88\":930,\"_936\":1232,\"_930\":1234},[1233],{\"_88\":1046},\"How To Enable Text-to-Speech in PowerShell\",{\"_88\":922,\"_923\":1236,\"_927\":1237},{\"_925\":926},[1238],{\"_88\":930,\"_930\":1239},\"So, how does this work? As mentioned, we will use the Speak method from the .NET and class SpeechSynthesizer. On the surface, this looks like a complicated example. However, in PowerShell, we only need three lines of code.\",{\"_88\":922,\"_923\":1241,\"_927\":1242},{\"_925\":926},[1243],{\"_88\":930,\"_930\":1244},\"Let's go ahead and look at those three lines of code.\",{\"_88\":1015,\"_923\":1246,\"_927\":1247},{\"_1017\":-5},[1248],{\"_88\":930,\"_930\":1020},{\"_88\":1015,\"_923\":1250,\"_927\":1251},{\"_1017\":-5},[1252],{\"_88\":930,\"_930\":1025},{\"_88\":1015,\"_923\":1254,\"_927\":1255},{\"_1017\":-5},[1256],{\"_88\":930,\"_930\":1257},\"$Talk.Speak (‘With dot net you can make PowerShell speak’)\",{\"_88\":922,\"_923\":1259,\"_927\":1260},{\"_925\":926},[1261,1263,1267,1269,1273],{\"_88\":930,\"_930\":1262},\"Remember, \",{\"_88\":930,\"_936\":1264,\"_930\":1266},[1265],{\"_88\":1012},\"System.Speech.Synthesis\",{\"_88\":930,\"_930\":1268},\" is a .NET namespace. S\",{\"_88\":930,\"_936\":1270,\"_930\":1272},[1271],{\"_88\":1012},\"peechSynthesizer\",{\"_88\":930,\"_930\":1274},\" is a .NET class.\",{\"_88\":922,\"_923\":1276,\"_927\":1277},{\"_925\":926},[1278],{\"_88\":930,\"_930\":1279},\"Let me go ahead and switch over to PowerShell. I'll go ahead and run the script. I'm getting a security warning. I'll press R to run it …\",{\"_88\":922,\"_923\":1281,\"_927\":1282},{\"_925\":926},[1283,1287],{\"_88\":930,\"_936\":1284,\"_930\":1286},[1285],{\"_88\":1046},\"PowerShell Voice:\",{\"_88\":930,\"_930\":1288},\"With dot net you can make PowerShell speak.\",{\"_88\":922,\"_923\":1290,\"_927\":1291},{\"_925\":926},[1292,1296],{\"_88\":930,\"_936\":1293,\"_930\":1295},[1294],{\"_88\":1046},\"Posey: \",{\"_88\":930,\"_930\":1297},\"… And you can see that PowerShell indeed spoke.\",{\"_88\":1039,\"_923\":1299,\"_927\":1300},{\"_925\":926,\"_1041\":354},[1301],{\"_88\":930,\"_936\":1302,\"_930\":1304},[1303],{\"_88\":1046},\"Use Cases for Text-to-Speech\",{\"_88\":922,\"_923\":1306,\"_927\":1307},{\"_925\":926},[1308],{\"_88\":930,\"_930\":1309},\"Now, the big question: Why might you want to use something like this?\",{\"_88\":922,\"_923\":1311,\"_927\":1312},{\"_925\":926},[1313],{\"_88\":930,\"_930\":1314},\"Well, this can be convenient in the case of long-running scripts. For example, in my environment, I have a backup script and could see myself embedding a verbal prompt at the end of the script to let me know when it's finished running. With that, I’ll know when my backups are complete without looking at the screen.\",{\"_88\":1058,\"_1059\":1316},\"300_2v_article\",{\"_88\":922,\"_923\":1318,\"_927\":1319},{\"_925\":926},[1320],{\"_88\":930,\"_930\":1321},\"You might also embed a verbal prompt in a long-running script in response to a warning condition or an error condition that may have occurred. So that way, if you have a script that you've left unattended but that is within earshot, you can hear when something goes wrong, as opposed to having to periodically get up and look at the script to make sure that it's still running.\",{\"_88\":922,\"_923\":1323,\"_927\":1324},{\"_925\":926},[1325],{\"_88\":930,\"_930\":1326},\"At any rate, that's how you enable text-to-speech within PowerShell using .NET.\",{\"_88\":922,\"_923\":1328,\"_927\":1329},{\"_925\":926},[1330],{\"_88\":930,\"_930\":1331},\"I'm Brien Posey. Thanks for watching.\",\"Video\",\"sponsored\",{\"_744\":171,\"_59\":171,\"_161\":171,\"_115\":171,\"_1335\":171,\"_1336\":24,\"_1337\":24,\"_1338\":1339,\"_1340\":171},\"campaignURL\",\"isSponsored\",\"gateWithSiteReg\",\"gateWithExternalForm\",\"None\",\"externalFormID\",\"featuredImage\",{\"_159\":1343,\"_161\":1344,\"_1345\":171,\"_1346\":1347},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcfe5169561d25ee0/66830b8bee4f24dcb987a120/image-1716x965_(44).jpg\",\"illustration of a soundwave\",\"caption\",\"creditTo\",\"Alamy\",{\"_115\":912},\"seriesTaxonomy\",[],\"programTaxonomy\",[],\"sidebarModules\",[1355,1428,1463,1509,1515],{\"_88\":1356,\"_1357\":1358,\"_1425\":1426},\"module_content_cards\",\"data\",{\"_115\":1359,\"_1360\":1359,\"_190\":1361,\"_1362\":1363,\"_1421\":1422,\"_1423\":1422,\"_1424\":-7},\"Editor's Choice\",\"moduleLabel\",\"default\",\"contents\",[1364,1386,1389,1405,1418],{\"_88\":1365,\"_1357\":1366},\"contentPreview\",{\"_178\":179,\"_190\":1367,\"_157\":1368,\"_163\":1371,\"_165\":1371,\"_168\":1372,\"_170\":1372,\"_1373\":1374,\"_172\":1375,\"_174\":171,\"_175\":1376,\"_177\":329,\"_180\":1377,\"_188\":971,\"_947\":1382},\"card-horizontal\",{\"_159\":1369,\"_161\":1370},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blted009d53042b6a96/673dc873f59c3326ad835a0e/jobs-key-1716x965_-_2024-08-21.jpg\",\"jobs key on keyboard\",\"IT Jobs Outlook 2025: Evolving Skills, AI, Workplace Flexibility Will Shape IT Workforce\",\"/career-management/it-jobs-outlook-2025-evolving-skills-ai-workplace-flexibility-will-shape-it-workforce\",\"linkAttrs\",{},\"Nov 20, 2024\",\"Career Management\",[1378],{\"_57\":1379,\"_184\":1380,\"_186\":1381},\"Nathan Eddy\",\"/author/nathan-eddy\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd76bf4740a6e8198/6658946837ce132abb475f63/nathan-eddy-pic.webp\",{\"_1383\":24,\"_1384\":1385},\"paidContent\",\"paidProductTaxonomy\",[],{\"_88\":1058,\"_1357\":1387},{\"_1059\":1388},\"native_right_1v\",{\"_88\":1365,\"_1357\":1390},{\"_178\":179,\"_190\":1367,\"_157\":1391,\"_163\":1394,\"_165\":1395,\"_168\":1396,\"_170\":1396,\"_1373\":1397,\"_172\":1398,\"_174\":171,\"_175\":1399,\"_177\":1400,\"_180\":1401,\"_188\":367,\"_947\":1403},{\"_159\":1392,\"_161\":1393},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt8e3cff5562b9ae01/67462526b7779a7c7bca6346/green_IT_sustainability_hero.gif\",\"an it pro is disappointed as a poster for sustainability is switched with one for financial results and garbage piles up next to a recycling bin\",\"How Do I Advocate for Green IT Without Being Dismissed as a Lorax?\",\"How Do I Advocate for Green IT Without Being Dismissed as a Lorax? \",\"/green-it/how-do-i-advocate-for-green-it-without-being-dismissed-as-a-lorax-\",{},\"Nov 27, 2024\",\"Green IT\",\"/it-management/it-sustainability/green-it\",[1402],{\"_57\":351,\"_184\":352,\"_186\":353},{\"_1383\":24,\"_1384\":1404},[],{\"_88\":1365,\"_1357\":1406},{\"_178\":179,\"_190\":1367,\"_157\":1407,\"_163\":1410,\"_165\":1410,\"_168\":1411,\"_170\":1411,\"_1373\":1412,\"_172\":1413,\"_174\":171,\"_175\":282,\"_177\":283,\"_180\":1414,\"_188\":312,\"_947\":1416},{\"_159\":1408,\"_161\":1409},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/blt169bb0721a0b9a6d/67401d99c70a870d4f57da8d/Ubuntu-1716x965_-_2024-11-22.jpg\",\"person using a laptop with the Ubuntu logo on its scree\",\"3 Simple Ways to Install and Run a Virtual Machine on Ubuntu\",\"/it-operations/3-simple-ways-to-install-and-run-a-virtual-machine-on-ubuntu\",{},\"Nov 22, 2024\",[1415],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_1383\":24,\"_1384\":1417},[],{\"_88\":1058,\"_1357\":1419},{\"_1059\":1420},\"native_right_2v\",\"dateDisplay\",\"show\",\"contributorDisplay\",\"displayAd\",\"adConfig\",{\"_1427\":26},\"nativeAdOption\",{\"_88\":1429,\"_1357\":1430},\"module_link_list\",{\"_1431\":1432,\"_1433\":1434,\"_1435\":1436,\"_1437\":171,\"_1438\":1439,\"_713\":24,\"_1443\":1444},\"listOption\",\"Dynamic\",\"listTitle\",\"Exclusive ITPro Resources\",\"icon\",\"Document\",\"externalFeed\",\"ctaButton\",{\"_1440\":570,\"_1441\":1442},\"ctaButtonLink\",\"ctaButtonText\",\"See all ITPro Resources\",\"articles\",[1445,1451,1455,1459],{\"_178\":1436,\"_115\":1446,\"_59\":1447,\"_1448\":24,\"_970\":354,\"_998\":1449,\"_1450\":171,\"_174\":171},\"ITPro Today’s 2024 State of DevOps Report\",\"/devops/itpro-today-s-2024-state-of-devops-report\",\"isExternalLink\",\"2024-12-16T13:00:00.000Z\",\"eventDate\",{\"_178\":1436,\"_115\":1452,\"_59\":1453,\"_1448\":24,\"_970\":211,\"_998\":1454,\"_1450\":171,\"_174\":171},\"BCDR Basics: A Quick Reference Guide for Business Continuity \u0026 Disaster Recovery\",\"/disaster-recovery/bcdr-basics-a-quick-reference-guide-for-business-continuity-disaster-recovery\",\"2024-10-10T15:22:31.000Z\",{\"_178\":1436,\"_115\":1456,\"_59\":1457,\"_1448\":24,\"_970\":211,\"_998\":1458,\"_1450\":171,\"_174\":171},\"ITPro Today’s 2024 IT Priorities Report\",\"/career-management/itpro-today-s-2024-it-priorities-report\",\"2024-09-25T10:00:00.000Z\",{\"_178\":1436,\"_115\":1460,\"_59\":1461,\"_1448\":24,\"_970\":211,\"_998\":1462,\"_1450\":171,\"_174\":171},\"Tech Careers: Quick Reference Guide to IT Job Titles\",\"/career-management/tech-careers-quick-reference-guide-to-it-job-titles\",\"2024-09-13T10:45:00.000Z\",{\"_88\":1356,\"_1357\":1464,\"_1425\":1508},{\"_115\":1465,\"_1360\":1466,\"_190\":1361,\"_1362\":1467,\"_1421\":1507,\"_1423\":1507,\"_1424\":-7},\"Technical Explainers\",\"Featured Technical Explainers\",[1468,1481,1494],{\"_88\":1365,\"_1357\":1469},{\"_178\":179,\"_190\":1367,\"_157\":1470,\"_163\":1473,\"_165\":1473,\"_168\":1474,\"_170\":1474,\"_1373\":1475,\"_172\":1476,\"_174\":171,\"_175\":176,\"_177\":136,\"_180\":1477,\"_188\":436,\"_947\":1479},{\"_159\":1471,\"_161\":1472},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfec5fcbd31c7f2a6/673b100cd675084d0707e288/AI-chip-1716x965_-_2024-11-18.jpg\",\"AI chip\",\"Cloud vs. On-Prem AI Accelerators: Choosing the Best Fit for Your AI Workloads\",\"/cloud-computing/cloud-vs-on-prem-ai-accelerators-choosing-the-best-fit-for-your-ai-workloads\",{},\"Nov 18, 2024\",[1478],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_1383\":24,\"_1384\":1480},[],{\"_88\":1365,\"_1357\":1482},{\"_178\":179,\"_190\":1367,\"_157\":1483,\"_163\":1486,\"_165\":1486,\"_168\":1487,\"_170\":1487,\"_1373\":1488,\"_172\":1489,\"_174\":171,\"_175\":176,\"_177\":136,\"_180\":1490,\"_188\":312,\"_947\":1492},{\"_159\":1484,\"_161\":1485},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd277e0c4548d3c42/673278ac8d8bc463268a48b4/SaaS-1716x965_-_2024-11-11.jpg\",\"SaaS concept on a tablet\",\"Why SaaS Backup Matters: Protecting Data Beyond Vendor Guarantees\",\"/cloud-computing/why-saas-backup-matters-protecting-data-beyond-vendor-guarantees\",{},\"Nov 12, 2024\",[1491],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_1383\":24,\"_1384\":1493},[],{\"_88\":1365,\"_1357\":1495},{\"_178\":179,\"_190\":1367,\"_157\":1496,\"_163\":1499,\"_165\":1499,\"_168\":1500,\"_170\":1500,\"_1373\":1501,\"_172\":1502,\"_174\":171,\"_175\":285,\"_177\":286,\"_180\":1503,\"_188\":436,\"_947\":1505},{\"_159\":1497,\"_161\":1498},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltdf272a7a39b366c2/672b48253c936766d5282090/DevOps-code-1716x965_-_2024-09-06.jpg\",\"DevOps logo on top of code\",\"DevOps: Key to Faster, More Efficient Government Software Development\",\"/devops/devops-key-to-faster-more-efficient-government-software-development\",{},\"Nov 6, 2024\",[1504],{\"_57\":183,\"_184\":185,\"_186\":187},{\"_1383\":24,\"_1384\":1506},[],\"hide\",{\"_1427\":24},{\"_88\":1510,\"_892\":978,\"_1357\":1511},\"module_newsletter_promo\",{\"_115\":975,\"_844\":976,\"_977\":978,\"_845\":979,\"_190\":193,\"_980\":981,\"_1512\":24,\"_1513\":1514},\"isOnHomepage\",\"moduleLocation\",\"sidebar\",{\"_88\":1356,\"_1357\":1516,\"_1425\":1549},{\"_115\":1517,\"_1360\":1518,\"_190\":1519,\"_1362\":1520,\"_1421\":1507,\"_1423\":1507,\"_1424\":-7},\"What Is\",\"Recent What Is\",\"column\",[1521,1536],{\"_88\":1365,\"_1357\":1522},{\"_178\":1436,\"_190\":191,\"_157\":1523,\"_163\":1452,\"_165\":1526,\"_168\":1453,\"_170\":1453,\"_1373\":1527,\"_172\":1528,\"_174\":171,\"_175\":305,\"_177\":306,\"_180\":1529,\"_188\":211,\"_947\":1534},{\"_159\":1524,\"_161\":1525},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltd6267f0056e427cb/6707f1e94c215e0bdbe8db2f/image-1795x965_(2).jpg\",\"cartoon shows a person next to a checklist and several icons that represent disaster scenarios\",\"BCDR Basics: A Quick Reference Guide for IT Pros\",{},\"Oct 10, 2024\",[1530],{\"_57\":1531,\"_184\":1532,\"_186\":1533},\"Ian Horowitz\",\"/author/ian-horowitz\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltc93aa705007174ee/66a10526893fa79494559f62/itpro-contributor-icon2.png\",{\"_1383\":24,\"_1384\":1535},[],{\"_88\":1365,\"_1357\":1537},{\"_178\":179,\"_190\":191,\"_157\":1538,\"_163\":1541,\"_165\":1541,\"_168\":1542,\"_170\":1542,\"_1373\":1543,\"_172\":1544,\"_174\":171,\"_175\":224,\"_177\":225,\"_180\":1545,\"_188\":436,\"_947\":1547},{\"_159\":1539,\"_161\":1540},\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltfffa964ee37aaf1e/66f6ee6fe8a6b02af4dab7fe/powershell_environment_variables_chart.png\",\"technology interface with a person's hand drawing gears and cogs\",\"Introduction To PowerShell Environment Variables\",\"/powershell/introduction-to-powershell-environment-variables\",{},\"Sep 30, 2024\",[1546],{\"_57\":258,\"_184\":259,\"_186\":260},{\"_1383\":24,\"_1384\":1548},[],{\"_1427\":24},\"relatedEvents\",[],\"topicSelector\",{\"_1554\":1555,\"_1557\":905},\"mainTopic\",{\"_88\":907,\"_115\":224,\"_59\":225,\"_908\":1556},{\"_88\":910,\"_115\":901},\"additionalTopics\",\"disclaimer\",{\"_769\":24,\"_1560\":1561},\"paidProductTaxonomies\",[],\"errorModal\",{\"_1564\":24,\"_1565\":1566,\"_1567\":1568},\"showErrorModal\",\"errorTitle\",\"Oops! An error has occurred\",\"errorDescription\",\"The connection on our end has been interrupted. Please refresh the page and try again.\",{\"_1570\":1571,\"_1573\":1574,\"_1575\":14,\"_1576\":1577,\"_1578\":1579,\"_1580\":1581,\"_798\":-5},\"duration\",{\"_1570\":1572},\"00:08:15\",\"videoUrl\",\"https://youtu.be/wiZLJS3qd34?si=Lu2dK5R0R8J8d8Rf\",\"videoCredit\",\"videoId\",\"wiZLJS3qd34?si=Lu2dK5R0R8J8d8Rf\",\"videoService\",\"youtube\",\"videoEmbedCode\",\"\u003ciframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/wiZLJS3qd34?si=Lu2dK5R0R8J8d8Rf\\\" title=\\\"YouTube video player\\\" frameborder=\\\"0\\\" allow=\\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\\\" referrerpolicy=\\\"strict-origin-when-cross-origin\\\" allowfullscreen\u003e\u003c/iframe\u003e\",\"schema\",[1584,1594],{\"_1585\":1586,\"_1587\":1588,\"_57\":966,\"_110\":965,\"_1589\":1590,\"_1591\":999,\"_1570\":1592,\"_1593\":1574},\"@context\",\"https://schema.org\",\"@type\",\"VideoObject\",\"thumbnailUrl\",[1343],\"uploadDate\",\"P0Y0M0DT0H8M15S\",\"contentUrl\",{\"_1585\":1586,\"_1587\":1595,\"_1596\":1597},\"BreadcrumbList\",\"itemListElement\",[1598,1602],{\"_1587\":1599,\"_1600\":211,\"_57\":749,\"_1601\":10},\"ListItem\",\"position\",\"item\",{\"_1587\":1599,\"_1600\":354,\"_57\":224,\"_1601\":1603},\"https://www.itprotoday.com/operating-systems/powershell\",\"seo\",{\"_1606\":1607,\"_1608\":1609,\"_1610\":1611,\"_1612\":24,\"_1613\":1614,\"_13\":-7,\"_1000\":1615},\"canonicalUrl\",\"https://www.itprotoday.com/powershell/how-to-make-powershell-speak-text-to-speech-net-tutorial-\",\"metaDescription\",\"Using .NET text-to-speech functionality, you can make PowerShell speak. Watch the video tutorial to learn how.\",\"metaTitle\",\"Adding .NET Text-to-Speech Functionality to PowerShell\",\"noIndex\",\"imageUrl\",\"https://eu-images.contentstack.com/v3/assets/blt07f68461ccd75245/bltcfe5169561d25ee0/66830b8bee4f24dcb987a120/image-1716x965_(44).jpg?disable=upscale\u0026width=1200\u0026height=630\u0026fit=crop\",\"PowerShell, PowerShell\",\"gtm\",{\"_1618\":1619},\"loadEvent\",{\"_1620\":1621,\"_1637\":1638,\"_1653\":1654},\"attributes\",{\"_1622\":1623,\"_69\":171,\"_1604\":1624,\"_1333\":1627,\"_1628\":1629,\"_891\":1632},\"events\",[],{\"_1625\":1607,\"_1626\":24},\"canonicalURL\",\"hideFromSearchEngines\",{\"_57\":171,\"_1335\":171,\"_1336\":24,\"_1337\":24,\"_1338\":1339,\"_1340\":171},\"legacy\",{\"_1630\":171,\"_1631\":171,\"_794\":171},\"destinationPath\",\"issueDate\",{\"_1633\":1577,\"_1578\":1579,\"_1634\":1574,\"_1575\":14,\"_1635\":1636},\"videoID\",\"videoURL\",\"videoDuration\",495,\"category\",{\"_1639\":171,\"_911\":912,\"_1640\":891,\"_1641\":1642,\"_1643\":1644,\"_1645\":-7,\"_1646\":1647,\"_1650\":1651},\"buyerJourney\",\"pageType\",\"keyword\",[],\"series\",[],\"programName\",\"primaryTerm\",{\"_900\":901,\"_1648\":224,\"_1649\":171},\"child\",\"grandchild\",\"secondaryTerm\",[1652],{\"_900\":901,\"_1648\":224,\"_1649\":171},\"pageInfo\",{\"_1655\":893,\"_1656\":966,\"_1657\":1607,\"_1631\":1658,\"_794\":1659},\"pageID\",\"pageName\",\"destinationURL\",\"Jul 05, 2024\",[1660],{\"_916\":171,\"_1661\":258,\"_1662\":171,\"_57\":258},\"displayName\",\"jobTitle\",\"isLivePreview\",\"actionData\",\"errors\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>

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