<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var SCSCacheKeys = {
	product: '_cache_725c',
	site: '_cache_cac4',
	theme: '_cache_2e00',
	component: '_cache_c128',
	caas: '_cache_66bc'
};
</script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1">
<script type="text/javascript">
var SCS = { sitesCloudCDN: 'https://static.ocecdn.oraclecloud.com/cdn/cec/v25.11.1.1',
podPlatform: 'OCI-N',
isAssetAnalyticsEnabled: true,
serviceId: '243AF26234FA475792D81197E697E261',
assetAnalyticsAccount: '162e41604824481ee4cd386f061fca53',
sitePrefix: '/site/Blogs-Home/' };

function verifyDetailPage(data, pageId) {
    let isDetailPage = false;
    let result = data.filter((page) => {
        return page.id === pageId;
    }).pop();
    return (result) ? result.isDetailPage : false;
}

SCS.preInitRendering = function() { 
// Determine if the actual browser URL matches one of the additional site prefixes
	var domain = window.location.host;
     	var pageUrl = decodeURI(window.location.pathname);
	if(domain == 'blogs-stage.oracle.com' || domain == 'blogs.oracle.com'){
		SCS.sitePrefix = '/';
    }
	SCS.orig_getPageData = SCS.getPageData;
	SCS.getPageData = async function() {
        let channelData = SCS.data;
        const urlObject = new URL(window.location.href);
        const channelToken = channelData.siteInfo.properties.channelAccessTokens[0].value;
        
        let pathname = urlObject.pathname;
        pathname = pathname.replace(/^\//, "");
        
        let pathnameArray = pathname.split("/");
        let slug = pathnameArray[pathnameArray.length - 1];
        let currentPageId = SCS.getPageId(window.location.pathname);
        const isDetailPage = verifyDetailPage(channelData.structurePages, currentPageId);
        const isCategoryPage = (pathnameArray[pathnameArray.length - 2] === "category")?true : false;
		const isTagPage = (pathnameArray[pathnameArray.length - 2] === "tag")?true : false;
		if(isTagPage) {
	
		}
        
	else if(isCategoryPage) {
	const txID = '28C8AD5DFE514DA182700A7CB89C7FFB';
	const catName = urlObject.pathname.split('/').pop();
	const api = `${urlObject.origin}/content/published/api/v1.1/taxonomies/${txID}/categories?q=apiName eq "${catName}"&channelToken=${channelToken}`;		
	try {
		let response = await fetch(api);
		if (!response.ok) {
			let errPage = this.getErrorPageId();
			if (errPage) {
				this.data.isRenderingErrorPage = !0;
				this.set404Condition({
					pageNotFound: !0
				});
				this.data.pageId = errPage;
				return this.fetchPageData(this.data.pageId);
			} else {
				return void this.showErrorPage(404);
			}
		} else {
			response.json().then(jsonRes => {
				if(jsonRes.count <= 0) {
					let errPage = this.getErrorPageId();
					if (errPage) {
						this.data.isRenderingErrorPage = !0;
						this.set404Condition({
							pageNotFound: !0
						});
						this.data.pageId = errPage;
						return this.fetchPageData(this.data.pageId);
					} else {
						return void this.showErrorPage(404);
					}
				}				
			});
		}

	} catch(err) {
		console.error("ERROR FETCHING",api);
		console.error(err);
	}
    }
        

       else if (isDetailPage ) {
            let languageArray = ["en", "fr", "de", "es", "ja", "zh", "ru", "it", "ko", "pt"];
            let langCode = (languageArray.includes(pathnameArray[0])) ? pathnameArray[0] : 'en';
	    const api = `${urlObject.origin}/content/published/api/v1.1/items/.by.slug/${slug}/variations/language/${langCode}?fields=all&channelToken=${channelToken}`;
			
            try {
                let response = await fetch(api);
                if (!response.ok) {
                    this.logError("The slug could not be found in the site channel.");
                    let errPage = this.getErrorPageId();
                    if (errPage) {
                        this.data.isRenderingErrorPage = !0;
                        this.set404Condition({
                            pageNotFound: !0
                        });
                        this.data.pageId = errPage;
                        return this.fetchPageData(this.data.pageId);
                    } else {
                        return void this.showErrorPage(404);
                    }
                }

            } catch(err) {
                console.error("ERROR FETCHING",api);
			    console.error(err);
            }
        }
        return SCS.orig_getPageData();
        
};
}
</script>
<script src="https://static.ocecdn.oraclecloud.com/cdn/cec/v25.11.1.1/_sitesclouddelivery/renderer/controller.js"></script>

                              <script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="G52AM-AGLAF-9JTSA-TBAP5-PCJJE",function(){function e(){if(!o){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,i.parentNode.appendChild(e),o=!0}}function t(e){o=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(i.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",i.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"G52AM-AGLAF-9JTSA-TBAP5-PCJJE";var i=document.currentScript||document.getElementsByTagName("script")[0],o=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!o)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),i.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="ijtaskaxeam5g2kxuzaq-f-01bd868ae-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,o={"ak.v":"39","ak.cp":"87563","ak.ai":parseInt("165106",10),"ak.ol":"0","ak.cr":7,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"614fe92d","ak.r":28076,"ak.a2":n,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"66.102.9.0","ak.cport":50369,"ak.gh":"95.101.142.205","ak.quicv":"","ak.tlsv":"tls1.3","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"bbr","ak.t":"1767351873","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==pr4IJHdLZqu8oZ7Hq8GFWd2IjAHh1+pk084MN6Bo0qnantUh2j3oeb2UJ01BR5LvRIzfLTRXd0Fcy7k0zg28P5qnIVPoQOSd7b//qoeO55SMElI2OzXcCBVcAY37rUm1S7WbmNEdZBLql/RHQvkA54ZegwN6JXOWDjwQNY2VThh5p4jFGh1LXfirLa14z0Wet1JfPSERsoxb5G3Np6n4ezp4bfq7Xhqi89On0kuk4eUCXa0OHbMvwx3NfkhpNZcremEsx1G+OG0LTJUFo8XXPi+tCluyKOVOy+RLh8W9S0XBKF9zNU5HiJmMmMwIVFwjb5nn1QtuIriKDb2gWg7MrHPmeH3XGbRFgRmaf98kuV0FSmqCfUynJ2vmqq6xGn/2/jgLZeb+Z0mwBYzAF1Q07L0JuiCLkOY05V0edW8vRQ0=","ak.pv":"319","ak.dpoabenc":"","ak.tf":i};if(""!==t)o["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))o["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(o)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:o,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head>
<body id="scsControllerBody"><noscript>This site requires JavaScript to be enabled.</noscript>
<img id="scsWaitImage" style="display: none; margin-top: 5%; margin-left: auto; margin-right: auto;" src="data:image/png;base64,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" />
</body></html>