<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var SCSCacheKeys = {
	product: '_cache_725c',
	site: '_cache_6317',
	theme: '_cache_2e00',
	component: '_cache_c128',
	caas: '_cache_4f6e'
};
</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/shay/' };

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'){
	 if(pageUrl.startsWith('/' + SCS.sitePrefix.split('/')[2])){
		SCS.sitePrefix = '/' + SCS.sitePrefix.split('/')[2] + '/';
            }
         }
	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;
        
	if(isCategoryPage) {
	const txID = '776482F1079B418592E03932F3316B19';
	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>
</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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" />
<script type="text/javascript"  src="/mSryvfuF/pM1/_NE/gcqFjuj_pF/ht3GSzJEwiaa/AEMzFj8m/UDEDdX/AwATcRAg?v=e8fcda3c-c21f-5118-d9d5-76d145de5f65" defer></script></body></html>