An error occurred while processing the template.
Java method "jdk.proxy199.$Proxy767.getDirectLinks(long)" threw an exception when invoked on jdk.proxy199.$Proxy767 object "com.liferay.asset.link.service.impl.AssetLinkLocalServiceImpl@512878c0"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign AssetLinks = AssetLinkLocalSe...  [in template "20116#20152#33020" at line 259, column 1]
----
1<#-- 
2Web content templates are used to lay out the fields defined in a web 
3content structure. 
4 
5Please use the left panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8<#-- ATK-1068 Styles Start --> 
9<style>  
10 @media (min-width: 1025px) { 
11  .articleAdtDiv { 
12			margin-top: -20px !important; 
13			margin-bottom: 50px !important; 
14
15
16 
17@media (max-width: 1024px) { 
18	.articleAdtDiv { 
19			margin-bottom: 50px !important; 
20
21
22</style> 
23<#-- ATK-1068 Styles End --> 
24<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
25<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
26<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
27<#assign preview = false/> 
28 
29<#if (themeDisplay.getURLCurrent()?contains("preview_article_content.jsp")) || (themeDisplay.getURLCurrent()?contains("preview_article_content_template.jsp"))> 
30    <#assign preview = true />     
31     
32    <script data-senna-track="permanent" 
33				src="/o/atk-dot-com-theme/js/react/dist/vendor.bundle.js"></script> 
34	 
35	<script data-senna-track="permanent" 
36				src="/o/atk-dot-com-theme/js/react/dist/bundle.js"></script> 
37				 
38	<style data-senna-track="temporary" type="text/css"> 
39	:root { 
40		--container-max-sm: 576px; 
41		--h4-font-size: 22px; 
42		--font-weight-bold: 700; 
43		--rounded-pill: 50rem; 
44		--navigation-submenu-item-float: left; 
45		--display4-weight: 300; 
46		--danger: #da1414; 
47		--atk-row: absolute; 
48		--display2-size: 5.5rem; 
49		--body-bg: #f9f9f9; 
50		--display2-weight: 300; 
51		--display1-weight: 300; 
52		--display3-weight: 300; 
53		--box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075); 
54		--text-align-hero-text-container: center; 
55		--cta-background-color: #F5F5F5; 
56		--font-weight-lighter: lighter; 
57		--h3-font-size: 36px; 
58		--btn-outline-primary-hover-border-color: #0b5fff; 
59		--transition-collapse: height .35s ease; 
60		--blockquote-small-color: #6b6c7e; 
61		--gray-200: #f1f2f5; 
62		--btn-secondary-hover-background-color: #f7f8f9; 
63		--gray-600: #6b6c7e; 
64		--secondary: #6b6c7e; 
65		--btn-outline-primary-color: #0b5fff; 
66		--btn-link-hover-color: #004ad7; 
67		--hr-border-color: rgba(0, 0, 0, .1); 
68		--hr-border-margin-y: 1rem; 
69		--light: #f1f2f5; 
70		--btn-outline-primary-hover-color: #0b5fff; 
71		--font-weight-read-more: 400; 
72		--btn-secondary-background-color: #fff; 
73		--btn-outline-secondary-hover-border-color: transparent; 
74		--display3-size: 4.5rem; 
75		--primary: #0b5fff; 
76		--container-max-md: 768px; 
77		--border-radius-sm: 0.1875rem; 
78		--display-line-height: 1.2; 
79		--font-family-hero-text: 'Graphik Web'; 
80		--h6-font-size: 0.8125rem; 
81		--h2-font-size: 44px; 
82		--aspect-ratio-4-to-3: 75%; 
83		--font-family-read-more: 'Graphik Web'; 
84		--spacer-10: 10rem; 
85		--font-family-semibold: 'Graphik Web'; 
86		--font-weight-normal: 400; 
87		--dark: #272833; 
88		--blockquote-small-font-size: 80%; 
89		--h5-font-size: 0.875rem; 
90		--blockquote-font-size: 1.25rem; 
91		--transition-fade: opacity .15s linear; 
92		--display4-size: 3.5rem; 
93		--border-radius-lg: 0.375rem; 
94		--btn-primary-hover-color: #fff; 
95		--display1-size: 6rem; 
96		--black: #000; 
97		--gray-300: #e7e7ed; 
98		--gray-700: #495057; 
99		--btn-secondary-border-color: #cdced9; 
100		--btn-outline-secondary-hover-color: #272833; 
101		--purple: #7823DC; 
102		--body-color: #111; 
103		--btn-outline-secondary-hover-background-color: rgba(39, 40, 51, 0.03); 
104		--font-weight-button-body: 400; 
105		--btn-primary-color: #fff; 
106		--btn-secondary-color: #6b6c7e; 
107		--btn-secondary-hover-border-color: #cdced9; 
108		--box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175); 
109		--container-max-lg: 992px; 
110		--btn-outline-primary-border-color: #0b5fff; 
111		--aspect-ratio: 100%; 
112		--cta-link-hover-color: #000; 
113		--body-container: #fff; 
114		--cta-link-color: #7823DC; 
115		--aspect-ratio-16-to-9: 56.25%; 
116		--box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15); 
117		--white: #fff; 
118		--portlet-bg-color: #272833; 
119		--warning: #b95000; 
120		--info: #2e5aac; 
121		--hr-border-width: 1px; 
122		--btn-link-color: #0b5fff; 
123		--gray-400: #cdced9; 
124		--font-weight-hero-text-h4: 100; 
125		--gray-800: #393a4a; 
126		--font-weight-semibold: 600; 
127		--btn-outline-primary-hover-background-color: #f0f5ff; 
128		--btn-primary-hover-background-color: #0053f0; 
129		--btn-primary-background-color: #0b5fff; 
130		--font-weight-heading4: 100; 
131		--font-weight-hero-text-h1: 600; 
132		--font-weight-heading3: 400; 
133		--success: #287d3c; 
134		--font-family-heading4: 'Graphik Web'; 
135		--font-family-heading3: 'Graphik Web'; 
136		--font-weight-heading2: 400; 
137		--font-weight-heading1: 600; 
138		--font-size-sm: 0.875rem; 
139		--font-family-heading2: 'Graphik Web'; 
140		--btn-primary-border-color: #0b5fff; 
141		--font-family-heading1: 'Graphik Web'; 
142		--font-family-base: 'Arabic', sans-serif; 
143		--spacer-0: 0; 
144		--font-family-monospace: 'Arabic', sans-serif; 
145		--lead-font-size: 1.25rem; 
146		--border-radius: 0.25rem; 
147		--spacer-9: 9rem; 
148		--font-weight-light: 300; 
149		--btn-secondary-hover-color: #272833; 
150		--spacer-2: 0.5rem; 
151		--font-family-button-body: 'Graphik Web'; 
152		--spacer-1: 0.25rem; 
153		--spacer-4: 1.5rem; 
154		--spacer-3: 1rem; 
155		--spacer-6: 4.5rem; 
156		--spacer-5: 3rem; 
157		--spacer-8: 7.5rem; 
158		--border-radius-circle: 50%; 
159		--spacer-7: 6rem; 
160		--font-size-lg: 1.125rem; 
161		--aspect-ratio-8-to-3: 37.5%; 
162		--font-family-sans-serif: 'Arabic', sans-serif; 
163		--gray-100: #f7f8f9; 
164		--font-weight-bolder: 900; 
165		--container-max-xl: 1280px; 
166		--btn-outline-secondary-color: #6b6c7e; 
167		--custom-black: #1E1E1E; 
168		--gray-500: #a7a9bc; 
169		--h1-font-size: 66px; 
170		--gray-900: #272833; 
171		--text-muted: #a7a9bc; 
172		--btn-primary-hover-border-color: transparent; 
173		--btn-outline-secondary-border-color: #cdced9; 
174		--lead-font-weight: 300; 
175		--font-size-base: 0.875rem; 
176
177	 
178	.article-breadcrumb 
179	a{ 
180	    color: var(--purple) !important; 
181        text-decoration: underline !important; 
182        text-decoration-color: #E6E6E6 !important; 
183
184	 
185	.article-figure 
186	 img{ 
187        max-width: 100% !important; 
188
189     
190    #articleDiv 
191
192        word-wrap:break-word; 
193
194     
195    .buttonBodyContainer:hover 
196     a{ 
197        color: 	#ffffff !important; 
198
199     
200    .black-to-garnet-author{ 
201        color: var(--custom-black) !important; 
202        text-decoration: underline !important; 
203        text-decoration-color: #E6E6E6 !important; 
204    }     
205     
206    .article-square-bio:hover 
207     a{     
208        color: var(--purple) !important; 
209        text-decoration: underline !important; 
210        text-decoration-color: #E6E6E6 !important; 
211
212         
213    .atk-article 
214     a{     
215        color: var(--purple) !important; 
216        text-decoration: underline !important; 
217        text-decoration-color: #E6E6E6 !important; 
218
219         
220    .atk-article 
221     a:hover{     
222	       text-decoration: none !important; 
223
224    </style> 
225		 
226</#if> 
227 
228<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
229<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
230<#-- 
2317.4 Upgrade start 
232--> 
233<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService")> 
234<#-- 
2357.4 Upgrade end 
236--> 
237<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
238<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
239<#assign AssetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")/> 
240<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
241<#assign PortletPreferencesLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.PortletPreferencesLocalService")/> 
242<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") /> 
243<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
244<#assign LayoutSetService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService")> 
245<#assign DynamicQueryFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil") /> 
246<#assign virtualHostLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.VirtualHostLocalService") /> 
247<#assign TemplateCustomService = serviceLocator.findService("template.custom.services.TemplateCustomService") /> 
248<#assign ArticleTemplateCustomService = serviceLocator.findService("template.custom.services.ArticleTemplateCustomService") /> 
249<#assign DynamicPDFGenerationCustomService = serviceLocator.findService("template.custom.services.DynamicPDFGenerationCustomService") /> 
250 
251<#assign 
252serviceContextThreadLocal = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"] 
253themeDisplay = serviceContextThreadLocal.getServiceContext().getThemeDisplay() 
254/> 
255<#assign imageSaturationFilter = themeDisplay.getLayout().getExpandoBridge().getAttribute("Add-Image-Saturation-Filter")!false /> 
256 
257<#assign CurrentJournalArticle = JournalArticleLocalService.getLatestArticle(groupId,.vars['reserved-article-id'].data)> 
258<#assign CurrentAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",CurrentJournalArticle.getResourcePrimKey())> 
259<#assign AssetLinks=AssetLinkLocalService.getDirectLinks(CurrentAssetEntry.getEntryId()) > 
260 
261<#assign PropertyFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil") /> 
262 
263<#-- update name here if change asset library name --> 
264<#assign assetLibGroup = GroupLocalService.getGroup(themeDisplay.getCompanyId(), "Kearney Global Asset Library") /> 
265<#if assetLibGroup?? > 
266	<#assign assetLibGroupId = assetLibGroup.getGroupId() /> 
267</#if> 
268     
269<#assign assetLinkOrder = CurrentJournalArticle.getExpandoBridge().getAttribute("Related Asset Ordering")!"" /> 
270 
271<#-- 
2727.4 Upgrade start 
273--> 
274<#assign plid = themeDisplay.getPlid()> 
275<#-- 
2767.4 Upgrade end 
277--> 
278<#if !(preview)> 
279<#-- ATK 40 changes start --> 
280	<#assign portletId = themeDisplay.getPortletDisplay().getId()> 
281 
282	<#assign portletPreferences = PortletPreferencesLocalService.getPortletPreferences(plid, portletId)?first /> 
283 
284	<#assign preferences = PortletPreferencesLocalService.fetchPreferences(portletPreferences.getCompanyId(), portletPreferences.getOwnerId(), portletPreferences.getOwnerType(), plid, portletId) /> 
285 
286<#-- Macro used to get specific field text from an Asset Entry --> 
287<#macro entryNode document field> 
288    <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??> 
289    "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}" 
290    <#else> 
291    "" 
292    </#if> 
293</#macro> 
294 
295<#-- Macro used to get specific portlet preference --> 
296<#macro preference prefKey prefIndex defaultValue> 
297    <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??> 
298    "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return> 
299    <#else> 
300    "${defaultValue?js_string}"<#return> 
301    </#if> 
302</#macro> 
303<#-- ATK 40 changes end --> 
304</#if> 
305 
306<#if (preview)> 
307<#-- ATK 40 changes start --> 
308 
309	<#assign portletId = (PortletPreferencesLocalService.getPortletPreferencesByPlid(themeDisplay.getPlid())?first).getPortletId() > 
310 
311	<#assign portletPreferences = PortletPreferencesLocalService.getPortletPreferences(plid, portletId)?first /> 
312 
313	<#assign preferences = PortletPreferencesLocalService.fetchPreferences(portletPreferences.getCompanyId(), portletPreferences.getOwnerId(), portletPreferences.getOwnerType(), plid, portletId) /> 
314 
315<#-- Macro used to get specific field text from an Asset Entry --> 
316<#macro entryNode document field> 
317    <#if document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content")??> 
318    "${document.selectSingleNode("/root/dynamic-element[@name='"+field+"']/dynamic-content").getText()?js_string}" 
319    <#else> 
320    "" 
321    </#if> 
322</#macro> 
323 
324<#-- Macro used to get specific portlet preference --> 
325<#macro preference prefKey prefIndex defaultValue> 
326    <#if portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value")??> 
327    "${portletPreferencesXML.selectSingleNode("/portlet-preferences/preference[name='"+prefKey+"-"+prefIndex+"']/value").getText()?js_string}"<#return> 
328    <#else> 
329    "${defaultValue?js_string}"<#return> 
330    </#if> 
331</#macro> 
332<#-- ATK 40 changes end --> 
333</#if> 
334 
335<#-- ATK-659 --> 
336<#assign displayDate = "" /> 
337<#if CurrentJournalArticle.getDisplayDate()?has_content> 
338    <#assign displayDate = CurrentJournalArticle.getDisplayDate()?date?string('MMMM dd, yyyy') /> 
339</#if> 
340<#--  schema vars starts  --> 
341<#assign modifiedDate = "" /> 
342<#if CurrentJournalArticle.getModifiedDate()?has_content> 
343    <#assign modifiedDate = CurrentJournalArticle.getModifiedDate()?date?string('yyyy-MM-dd') /> 
344</#if> 
345<#assign displayDateForSchema = "" /> 
346<#if CurrentJournalArticle.getDisplayDate()?has_content> 
347    <#assign displayDateForSchema = CurrentJournalArticle.getDisplayDate()?date?string('yyyy-MM-dd') /> 
348</#if> 
349 
350<#assign imageurlschema = "" /> 
351<#assign currenturi = "" /> 
352<#if (ThumbnailSquare.getData())??> 
353    <#if (ThumbnailSquare.getData())?contains("?")> 
354        <#assign imageurlschema = (ThumbnailSquare.getData())?keep_before("?") /> 
355    <#else> 
356        <#assign imageurlschema =  ThumbnailSquare.getData() />     
357    </#if>     
358     
359</#if> 
360<#if themeDisplay.getURLCurrent()?has_content > 
361    <#if (themeDisplay.getURLCurrent())?contains("?") > 
362        <#assign currenturi = (themeDisplay.getURLCurrent())?keep_before("?") /> 
363    <#else> 
364        <#assign currenturi = (themeDisplay.getURLCurrent()) /> 
365    </#if> 
366</#if>     
367<#assign pageurlcurrent = themeDisplay.getCDNBaseURL() + currenturi /> 
368<#assign answer =''> 
369<#if Intro.getData()?has_content > 
370	    <#assign answer = htmlUtil.unescape(Intro.getData())/> 
371	 <#else> 
372	    <#if Content.getSiblings()?has_content> 
373	        <#list Content.getSiblings() as cur_Content> 
374		        <#if (cur_Content.getData())??> 
375		            <#assign withouthtml = htmlUtil.unescape(cur_Content.getData())?replace('<[^>]+>','','r') /> 
376		            <#assign withouthtml = withouthtml?replace('\\n+','','r') /> 
377		            <#assign withouthtml = withouthtml?replace('\\t+','','r') /> 
378		            <#assign withouthtml = withouthtml?replace('\\r+','','r') /> 
379		            <#assign withouthtml = withouthtml?replace('&nbsp;','','r') /> 
380			        <#assign answer += withouthtml /> 
381		        </#if> 
382	        </#list> 
383        </#if> 
384</#if> 
385<#assign hasExternalHeroBanner = false /> 
386<#assign externalHeroBannerImageURL = "" /> 
387<#assign externalHeroBannerTitle = "" /> 
388<#assign externalHeroBannerSubTitle = "" /> 
389<#if HeroImage?? && HeroImage.getData() == ""> 
390	<#assign externalHeroBannerData = ArticleTemplateCustomService.getHeroBannerData(plid, assetLibGroup.getGroupId(), themeDisplay) /> 
391	<#assign hasExternalHeroBanner = externalHeroBannerData.hasExternalHeroBanner /> 
392	<#assign externalHeroBannerImageURL = externalHeroBannerData.externalHeroBannerImageURL /> 
393	<#assign externalHeroBannerTitle = externalHeroBannerData.externalHeroBannerTitle /> 
394	<#assign externalHeroBannerSubTitle = externalHeroBannerData.externalHeroBannerSubTitle /> 
395</#if> 
396<#--  schema ends --> 
397<div id="articleDiv"> 
398</div> 
399 
400<script> 
401 
402	var articleMetadata = {}; 
403	articleMetadata.slug = "${(htmlUtil.unescape(Slug.getData()))?js_string}"; 
404	articleMetadata.articleTitle = "${(htmlUtil.unescape(ArticleTitle.getData()))?js_string}"; 
405	 
406	<#assign heroImageId = "" /> 
407	<#assign heroImageFileName = "" /> 
408	<#assign heroMobileImageId = "" /> 
409	<#assign heroMobileImageFileName = "" /> 
410 
411	<#if HeroImage??> 
412	    articleMetadata.heroImage = "${HeroImage.getData()?js_string}"; 
413	    <#assign parts = HeroImage.getData()?split("/")!"">     
414	    <#if HeroImage.getAttribute("title")??> 
415	    	<#assign heroImageFileName = HeroImage.getAttribute("title")/> 
416	    <#else>	 
417			<#assign heroImageFileName = parts[4]!"" /> 
418		</#if> 
419		<#if HeroImage.getAttribute("fileEntryId")??> 
420		<#assign heroImageId = HeroImage.getAttribute("fileEntryId") /> 
421		<#else> 
422			<#attempt> 
423				<#assign heroImageId = DLFileEntryLocalService.getFileEntryByFileName(parts[2]?number, parts[3]?number, heroImageFileName).getFileEntryId()!"" /> 
424			<#recover> 
425				<#if HeroImage.getAttribute("uuid")?? > 
426					<#assign heroImageUuid = HeroImage.getAttribute("uuid")> 
427				</#if> 
428				<#if HeroImage.getAttribute("groupId")??>	 
429					<#assign heroImageGroupId = HeroImage.getAttribute("groupId")?number> 
430				</#if>	 
431				<#if heroImageUuid?has_content && heroImageGroupId != 0 > 
432					<#attempt> 
433						<#assign fileEntry = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(heroImageUuid,heroImageGroupId) /> 
434					<#recover> 
435						<#assign fileEntry = "" /> 
436					</#attempt>	 
437					<#if fileEntry?? && fileEntry?has_content> 
438						<#assign heroImageId = fileEntry.getFileEntryId() /> 
439					</#if> 
440				</#if> 
441			</#attempt> 
442		</#if> 
443		articleMetadata.imageFileEntryId = "${heroImageId}"; 
444		articleMetadata.imageName = "${heroImageFileName}"; 
445		articleMetadata.imageSaturationFilter = "${imageSaturationFilter?c}"; 
446	</#if> 
447	<#if HeroMobile??> 
448	    articleMetadata.heroMobile = "${HeroMobile.getData()?js_string}"; 
449	    <#assign partsMobile = HeroMobile.getData()?split("/")!""> 
450	    <#if HeroMobile.getAttribute("title")??> 
451	    	<#assign heroMobileImageFileName = HeroMobile.getAttribute("title")/> 
452	    <#else>	 
453	    	<#assign heroMobileImageFileName = partsMobile[4]!"" />	 
454		</#if> 
455		<#if HeroMobile.getAttribute("fileEntryId")??> 
456			<#assign heroMobileImageId = HeroMobile.getAttribute("fileEntryId")> 
457		<#else> 
458			<#attempt> 
459				<#assign heroMobileImageId = DLFileEntryLocalService.getFileEntryByFileName(partsMobile[2]?number, partsMobile[3]?number, heroMobileImageFileName).getFileEntryId()!"" /> 
460			<#recover> 
461				<#if HeroMobile.getAttribute("uuid")??> 
462					<#assign heroMobileUuid = HeroMobile.getAttribute("uuid")> 
463				</#if> 
464				<#if HeroMobile.getAttribute("groupId")??>	 
465					<#assign heroMobileGroupId = HeroMobile.getAttribute("groupId")?number> 
466				</#if>	 
467				<#if heroMobileUuid?? && heroMobileGroupId??> 
468					<#attempt> 
469						<#assign heroMobileImageId = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(heroMobileUuid,heroMobileGroupId).getFileEntryId()!"" /> 
470					<#recover> 
471						<#assign heroMobileImageId = 0 /> 
472					</#attempt> 
473				</#if> 
474			</#attempt>		 
475		</#if> 
476		articleMetadata.mobileImageFileEntryId = "${heroMobileImageId}"; 
477		articleMetadata.mobileImageName = "${heroMobileImageFileName}"; 
478		articleMetadata.imageSaturationFilter = "${imageSaturationFilter?c}"; 
479	</#if> 
480 
481	<#-- 
482	Set articleMetadata.publicTestArticle to restrict social sharing functionality to a single article. 
483	Otherwise, leave commented to allow social sharing on all articles. 
484	--> 
485	<#--articleMetadata.publicTestArticle = 'test-article-url';--> 
486 
487 
488	<#if BiggerTitle??> 
489    articleMetadata.biggerTitle = ${getterUtil.getBoolean(BiggerTitle.getData())?c}; 
490	<#else> 
491    articleMetadata.biggerTitle = false; 
492	</#if> 
493 
494	articleMetadata.subtitle = "${(htmlUtil.unescape(Subtitle.getData()))?js_string}"; 
495	 
496	<#assign introData = htmlUtil.unescape(Intro.getData())> 
497	<#if !introData?contains("l2it-audio-player")> 
498	<#if AddArticleAudio??> 
499		<#assign addarticleaudio = getterUtil.getBoolean(AddArticleAudio.getData())> 
500	<#else> 
501		<#assign addarticleaudio = false> 
502	</#if> 
503	<#if addarticleaudio == true> 
504		<#assign articleaudiotext = '<div id="l2it-audio-player"></div>' > 
505		<#assign introData = introData + articleaudiotext> 
506	</#if> 
507	</#if> 
508	 
509	articleMetadata.intro = "${introData?js_string}"; 
510 
511	<#assign LandingArticle = false /> 
512	<#if LandingPage??> 
513            articleMetadata.landingPage = '${getterUtil.getBoolean(LandingPage.getData())?c}'; 
514            <#assign LandingArticle =  getterUtil.getBoolean(LandingPage.getData()) /> 
515	<#else> 
516            articleMetadata.landingPage = false; 
517	</#if> 
518 
519	<#if SocialLinks??> 
520		<#if SocialLinks.getData() == ""> 
521			articleMetadata.socialLinks = true; 
522		<#else> 
523    		articleMetadata.socialLinks = ${getterUtil.getBoolean(SocialLinks.getData())?c}; 
524		</#if>	 
525	<#else> 
526    	articleMetadata.socialLinks = false; 
527	</#if> 
528	 
529	<#if GraySeparator??> 
530		<#if GraySeparator.getData() == ""> 
531			articleMetadata.graySeparator = true;	 
532		<#else>		 
533			articleMetadata.graySeparator = ${getterUtil.getBoolean(GraySeparator.getData())?c}; 
534		</#if>    	 
535	<#else> 
536    	articleMetadata.graySeparator = false; 
537	</#if> 
538 
539	<#if ShowParentBreadcrumb?? && LandingPage?? && getterUtil.getBoolean(LandingPage.getData()) == true> 
540        articleMetadata.showParentBreadcrumb = ${getterUtil.getBoolean(ShowParentBreadcrumb.getData())?c} 
541	<#else> 
542            articleMetadata.showParentBreadcrumb = true; 
543	</#if> 
544 
545    <#if BreadcrumbLabel??> 
546        articleMetadata.parentBreadcrumbLabel = "${(htmlUtil.unescape(BreadcrumbLabel.getData()))?js_string}"; 
547	</#if> 
548 
549    <#if BreadcrumbURL??> 
550        articleMetadata.parentBreadcrumbURL = "${BreadcrumbURL.getData()?js_string}"; 
551	</#if> 
552 
553	<#if Byline??> 
554	articleMetadata.byline = "${(htmlUtil.unescape(Byline.getData()))?js_string}"; 
555	</#if> 
556 
557	<#if FeaturedContributor??> 
558    articleMetadata.featuredContributor = "${htmlUtil.unescape(FeaturedContributor.getData())}" 
559	</#if> 
560 
561	<#-- Removed as of ATK-1208 -- No longer needed -- Legacy --> 
562	<#--   
563	<#if PostArticleSlideShareKey?? && PostArticleSlideShareKey.PostArticleSlideshareContent??> 
564    articleMetadata.postArticleSlideshareKey = "${PostArticleSlideShareKey.getData()}" 
565 
566    articleMetadata.postArticleSlideshareContent = "${PostArticleSlideShareKey.PostArticleSlideshareContent.getData()}" 
567	</#if> 
568	--> 
569 
570	var articleContents = []; 
571	<#if Content.getSiblings()?has_content> 
572		<#list Content.getSiblings() as cur_Content> 
573 
574        var images = []; 
575 
576			<#if cur_Content.PrimaryImage?has_content> 
577				<#list cur_Content.PrimaryImage.getSiblings() as cur_PrimaryImage> 
578				<#assign contentImageName = "" /> 
579				<#assign contentImageFileEntryId = "" /> 
580				 
581				<#if cur_PrimaryImage.getData() != ""> 
582					<#assign cur_PrimaryImageParts = cur_PrimaryImage.getData()?split("/")!"" /> 
583					<#if cur_PrimaryImage.getAttribute("title")??> 
584						<#assign contentImageName = cur_PrimaryImage.getAttribute("title") /> 
585					<#else> 
586						<#assign contentImageName = cur_PrimaryImageParts[4]!"" /> 
587					</#if> 
588					<#if cur_PrimaryImage.getAttribute("fileEntryId")??> 
589						<#assign contentImageFileEntryId = cur_PrimaryImage.getAttribute("fileEntryId") /> 
590					<#else> 
591						<#attempt> 
592            				<#assign contentImageFileEntryId = DLFileEntryLocalService.getFileEntryByFileName(cur_PrimaryImageParts[2]?number, cur_PrimaryImageParts[3]?number, contentImageName).getFileEntryId()!"" /> 
593        				<#recover> 
594        					<#if cur_PrimaryImage.getAttribute("uuid")??> 
595        						<#assign curImageUuid = cur_PrimaryImage.getAttribute("uuid")/> 
596        					</#if> 
597        					<#if cur_PrimaryImage.getAttribute("groupId")??> 
598        						<#assign curImageGroupId = cur_PrimaryImage.getAttribute("groupId")?number /> 
599        					</#if>	 
600        					<#if curImageUuid?? && curImageGroupId??> 
601            					<#assign contentImageFileEntryId = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(curImageUuid,curImageGroupId).getFileEntryId()!"" /> 
602            				</#if> 
603        				</#attempt> 
604        			</#if>					 
605				</#if> 
606				 
607                var image = {"imageURL": "${cur_PrimaryImage.getData()?js_string}", "imageFileEntryId": "${contentImageFileEntryId}", "imageFileName":"${contentImageName}", "imageSaturationFilter":"${imageSaturationFilter?c}"}; 
608 
609					<#if cur_Content.PrimaryImage.SlideshowCaption??> 
610                        image["caption"] = "${(htmlUtil.unescape(cur_PrimaryImage.SlideshowCaption.getData()))?js_string}"; 
611					</#if> 
612 
613                    image["sharingEnabled"] = ${(cur_PrimaryImage.SharingEnabled?? && cur_PrimaryImage.SharingEnabled.getData() == "true")?c}; 
614 
615                images.push(image); 
616 
617				</#list> 
618			</#if> 
619 
620        articleContents.push({ 
621            <#if cur_Content.FeatureSlug??> 
622			slug: "${cur_Content.FeatureSlug.getData()?js_string}", 
623			</#if> 
624			<#if cur_Content.TextAlignment??> 
625			textAlignment: "${cur_Content.TextAlignment.getData()?js_string}", 
626			</#if> 
627			content: "${(htmlUtil.unescape(cur_Content.getData()))?js_string}", 
628			styling: "${cur_Content.stylingSelect.getData()?js_string}", 
629			alternateText: "${(htmlUtil.unescape(cur_Content.AlternateText.getData()))?js_string}", 
630			primaryImage: images, 
631			secondaryImage: "${cur_Content.SecondaryMaskImage.getData()?js_string}", 
632			buttonText: "${(htmlUtil.unescape(cur_Content.ButtonText.getData()))?js_string}", 
633			buttonURL: "${cur_Content.ButtonURL.getData()?js_string}", 
634			displayDate: "${displayDate}" 
635		}); 
636 
637 
638		</#list> 
639	</#if> 
640	 
641	var bios = []; 
642	<#assign articleGroup = GroupLocalService.getGroup(CurrentAssetEntry.getGroupId()) 
643		guestGroup = GroupLocalService.getFriendlyURLGroup(articleGroup.getCompanyId(), "/guest") /> 
644	<#-- 
645		Create list of groups that asset entries live in, so that linked bios can be retrieved by UUID 
646	--> 
647	<#assign assetLinkGroups = []> 
648	<#if AssetLinks?has_content> 
649		<#list AssetLinks as assetLink> 
650			<#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())> 
651			<#assign assetLinkGroups = assetLinkGroups + [linkedAssetEntry.getGroupId()]> 
652		</#list> 
653	</#if> 
654 
655	//Create asset link ordering 
656	var assetOrderArr = []; 
657 
658	<#list assetLinkOrder?split(",") as assetLinkUUID> 
659		<#-- 
660			Find group which asset link is stored in and assign the resulting asset entry 
661		--> 
662		<#assign orderAssetEntry = ""> 
663 
664		<#list assetLinkGroups as assetLinkGroupId> 
665			<#assign orderAssetEntry = AssetEntryLocalService.fetchEntry(assetLinkGroupId, assetLinkUUID)!""> 
666 
667			<#if orderAssetEntry != ""> 
668				<#break /> 
669			</#if> 
670		</#list> 
671 
672		<#if orderAssetEntry != ""> 
673			<#assign orderJournalArticle = JournalArticleLocalService.fetchLatestArticle(orderAssetEntry.getClassPK())!""> 
674            <#if orderJournalArticle != ""> 
675	            assetOrderArr.push("${orderJournalArticle.getArticleId()}"); 
676            </#if> 
677		</#if> 
678	</#list> 
679 
680	var assetOrderMap = {}; 
681 
682	for(var order=1; order<assetOrderArr.length; order++) { 
683		assetOrderMap[assetOrderArr[order-1]] = order; 
684
685 
686	var getAssetOrder = function(uuid) { 
687		var order = assetOrderMap[uuid]; 
688		if(!order) { 
689			order = Object.keys(assetOrderMap).length + 1; 
690			assetOrderMap[uuid] = order; 
691
692 
693		return order; 
694	}; 
695	<#assign authorlistschema = [] /> 
696	<#assign authorListForPdf = [] /> 
697 
698	<#if Authors?? && Authors.getSiblings()?has_content> 
699         
700        var bioC =0; 
701        	<#list Authors.getSiblings() as cur_Authors> 
702        	      
703        		<#if  cur_Authors.getData() != "" > 
704            	    <#assign cur_webContent_map = jsonFactoryUtil.createJSONObject(cur_Authors.getData())> 
705                    <#assign cur_webContent_classPK = cur_webContent_map.getString("classPK")> 
706                    <#if cur_webContent_classPK??> 
707            		    <#if JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)??> 
708		                    <#assign articleK = JournalArticleLocalService.fetchLatestArticle(cur_webContent_classPK?number)> 
709	            		    <#assign articleKAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",articleK.getResourcePrimKey()) /> 
710	            		  
711		            		<#if articleKAssetEntry?? && articleKAssetEntry.getAssetRenderer()??> 
712								<#assign xml = saxReaderUtil.read(articleKAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) /> 
713			            		  
714			            		  
715			            		   
716			            		 <#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") /> 
717			            		 <#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") /> 
718			            		 <#assign xml_headshotImage = TemplateCustomService.getDocumentFileDetails(xml,"CutoutHeadshot",themeDisplay)/> 
719			            		              
720					            <#-- Split on '*****' to separate the ID+filename part and the URL --> 
721					            <#assign headshotxmlImageDetailParts = xml_headshotImage?split("*****")!""> 
722										 
723					            <#-- Extract the left and right parts --> 
724					            <#assign headshotxmlLeftPart = headshotxmlImageDetailParts[0]!""> 
725					            <#assign xml_headshotImage = headshotxmlImageDetailParts[1]!""> 
726										 
727					            <#-- From the left part, split on '+++++' to get the ID --> 
728					            <#assign headshotxmlImageFileEntryId = headshotxmlLeftPart?split("+++++")[0]!""> 
729					            <#assign headshotxmlImageFileName = headshotxmlLeftPart?split("+++++")[1]!""> 
730			            		  
731			            		 <#if xml_headshotImage?contains("&download=")> 
732			            		      <#assign xml_headshotImage = xml_headshotImage?keep_before("&download=")> 
733			            		 </#if>      
734			            		 
735			            		  
736			            		  var bio1 = {}; 
737			                      bio1.structureKey=('${articleK.getDDMStructure().getName("en_US")}'); 
738			                      bio1.weight=  ++bioC; 
739			            		  bio1.fullName = '${(htmlUtil.unescape(xml_fullName))?js_string}'; 
740			            		  bio1.headshot = '${xml_headshotImage?js_string}'; 
741			            		  bio1.imageFileEntryId = '${headshotxmlImageFileEntryId?js_string}'; 
742			            		  bio1.imageFileName = '${headshotxmlImageFileName?js_string}'; 
743			            		  bio1.imageSaturationFilter = '${imageSaturationFilter?c}', 
744			            		  bio1.title = '${xml_title}'; 
745				            	  <#if (articleGroup.getLiveGroupId() != 0 ) >	 
746										<#assign articleK = JournalArticleLocalService.getArticleByUrlTitle(assetLibGroupId, articleK.getUrlTitle()) />	 
747								  </#if>	 
748								  <#assign viewURL = '' /> 
749								 
750								 <#if articleK.getDDMStructure().getName("en_US") == "Bio Page"> 
751								 	 <#assign viewURL = TemplateCustomService.getArticleViewURL(articleK.getArticleId(),assetLibGroup,articleK.getGroupId(),themeDisplay,guestGroup.getGroupId())/> 
752								 	 <#if !(viewURL?has_content)> 
753								 	 	<#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/> 
754								 	 </#if> 
755								 </#if> 
756								 
757								bio1.bioURL = '${viewURL}';	 
758								bios.push(bio1); 
759								<#assign authorListForPdf = [xml_fullName + "::::::::" + xml_title + "++++++++" + viewURL + ";;;;;;;;" +  headshotxmlImageFileEntryId] + authorListForPdf /> 
760								<#assign viewURLschema = ''/> 
761								<#if viewURL?has_content> 
762								    <#assign viewURLschema =  viewURL /> 
763								</#if> 
764								<#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} /> 
765			            		<#assign authorlistschema = authorlistschema + [authordataschema] /> 
766							 </#if>            		 	 
767						</#if>	 
768					</#if> 
769            	</#if> 
770        		   
771        	</#list> 
772        	 
773    </#if> 
774	 
775	<#assign oldwaytogetauthourforschema = false> 
776	<#if authorlistschema?size == 0> 
777		<#assign oldwaytogetauthourforschema = true> 
778	</#if>		 
779	 
780    if (bios.length == 0){ 
781		<#assign authorCounter = authorListForPdf?size /> 
782		<#if AssetLinks?has_content> 
783 
784			<#list AssetLinks as assetLink> 
785				<#assign linkedAssetEntry = AssetEntryLocalService.getAssetEntry(assetLink.getEntryId2())> 
786				<#assign linkedJournalArticle = JournalArticleLocalService.getLatestArticle(linkedAssetEntry.getClassPK())> 
787				<#assign xml = saxReaderUtil.read(linkedAssetEntry.getAssetRenderer().getArticle().getContentByLocale(themeDisplay.getLocale())) /> 
788				<#assign structureKey =  linkedJournalArticle.getDDMStructure().getName("en_US") /> 
789				 
790			var bio = {}; 
791			 
792            <#assign xml_headshotDetails = TemplateCustomService.getDocumentFileDetails(xml,"CutoutHeadshot",themeDisplay)/> 
793             
794            <#-- Split on '*****' to separate the ID+filename part and the URL --> 
795            <#assign headshotImageDetailParts = xml_headshotDetails?split("*****")!""> 
796					 
797            <#-- Extract the left and right parts --> 
798            <#assign headshotLeftPart = headshotImageDetailParts[0]!""> 
799            <#assign xml_headshot = headshotImageDetailParts[1]!""> 
800					 
801            <#-- From the left part, split on '+++++' to get the ID --> 
802            <#assign headshotImageFileEntryId = headshotLeftPart?split("+++++")[0]!""> 
803            <#assign headshotImageFileName = headshotLeftPart?split("+++++")[1]!""> 
804             
805            																								 
806            <#if xml_headshot?contains("&download=")> 
807                 <#assign xml_headshot = xml_headshot?keep_before("&download=")> 
808            </#if>					 
809			<#if structureKey == "Bio Page" || structureKey == "Micro Bio" > 
810						<#assign xml_fullName = xml.valueOf("//dynamic-element[@name='FullName']/dynamic-content/text()") /> 
811						<#assign xml_title = xml.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") /> 
812						bio.structureKey=('${structureKey}').trim(); 
813						bio.weight = getAssetOrder("${linkedJournalArticle.getArticleId()}"); 									 
814						bio.fullName = "${(htmlUtil.unescape(xml_fullName))?js_string}"; 
815						bio.position = "${xml.valueOf("//dynamic-element[@name='Position']/dynamic-content/text()")?js_string}"; 
816						bio.title = "${xml_title?js_string}"; 
817						bio.headshot = "${xml_headshot?js_string}"; 
818						bio.imageFileEntryId = "${headshotImageFileEntryId?js_string}"; 
819						bio.imageFileName = "${headshotImageFileName?js_string}"; 
820						bio.imageSaturationFilter ='${imageSaturationFilter?c}', 
821						bio.description = "${xml.valueOf("//dynamic-element[@name='Description']/dynamic-content/text()")?js_string}"; 
822						bio.linkedInURL = "${xml.valueOf("//dynamic-element[@name='LinkedInURL']/dynamic-content/text()")?js_string}"; 
823						 
824						<#assign viewURL = '' /> 
825						<#if linkedJournalArticle.getDDMStructure().getName("en_US") == "Bio Page"> 
826								<#assign viewURL = themeDisplay.getPortalURL() + "/about/people/bio/" + xml_fullName?lower_case?replace(" ", "-")/> 
827						</#if> 
828										 
829						bio.bioURL = '${viewURL}';	 
830						bios.push(bio); 
831 
832						<#if authorCounter == 0> 
833							<#assign authorListForPdf = [xml_fullName + "::::::::" + xml_title + "++++++++" + viewURL + ";;;;;;;;" +  headshotImageFileEntryId] + authorListForPdf /> 
834						</#if> 
835								 
836						<#assign viewURLschema = ''/> 
837						<#if viewURL?has_content> 
838						    <#assign viewURLschema =  viewURL /> 
839						</#if> 
840						 
841						<#if oldwaytogetauthourforschema> 
842							<#assign authordataschema = {"url":viewURLschema, "jobTitle":xml_title, "name":xml_fullName} /> 
843							<#assign authorlistschema = authorlistschema + [authordataschema] /> 
844						</#if>	 
845				</#if> 
846			</#list> 
847 
848			bios.sort(function(bio1, bio2){ 
849				return bio1.weight - bio2.weight; 
850			}); 
851		</#if> 
852 
853
854	<#assign assetCategories = AssetCategoryLocalService.getCategories(CurrentAssetEntry.getClassNameId(), CurrentAssetEntry.getClassPK())> 
855 
856	var articleCategories = []; 
857 
858	<#list assetCategories as category> 
859		<#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())> 
860		<#assign categoryUrl = "#"> 
861 
862		<#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty> 
863 
864			<#if categoryProperty.key == "url"> 
865				<#assign categoryUrl = categoryProperty.value> 
866			</#if> 
867		</#list> 
868 
869    articleCategories.push({ 
870		id: "${category.categoryId}", 
871		name: "${category.name}", 
872		url: "${categoryUrl}", 
873		vocabularyName: "${categoryVocabulary.getName()?js_string}", 
874	}); 
875	</#list> 
876 
877	articleMetadata.categories = articleCategories; 
878	<#if LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false)?? 
879	&& LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular")?? > 
880		<#assign isMicroSite = (LayoutSetService.getLayoutSet(articleGroup.getGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
881	<#else> 
882		<#assign isMicroSite = false> 
883	</#if> 
884	 
885    <#-- ATK-1384 -- 240212 is groupid for Microsite --> 
886    <#assign siteName = "Kearney"> 
887    <#if GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getParentGroupId() == 240212> 
888    	<#assign siteName = GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?cap_first /> 
889    </#if>	 
890 
891	articleMetadata.isMicroSite = ${isMicroSite?c}; 
892	articleMetadata.groupName = "${articleGroup.getName("en_US")?js_string}"; 
893	articleMetadata.siteName = "${siteName?js_string}"; 
894	articleMetadata.groupFriendlyUrl = "${articleGroup.getFriendlyURL()?js_string}"; 
895 
896	<#if ReadMoreURL??> 
897    articleMetadata.readMoreURL = "${ReadMoreURL.getData()?js_string}"; 
898	<#else> 
899    articleMetadata.readMoreURL = ""; 
900	</#if> 
901 
902	<#if ReadMoreTextOverride??> 
903    articleMetadata.readMoreTextOverride = "${(htmlUtil.unescape(ReadMoreTextOverride.getData()))?js_string}"; 
904	<#else> 
905    articleMetadata.readMoreTextOverride = ""; 
906	</#if> 
907 
908	<#if ContributorsTitleOverride??> 
909    articleMetadata.contributorsTitleOverride = "${(htmlUtil.unescape(ContributorsTitleOverride.getData()))?js_string}"; 
910	<#else> 
911    articleMetadata.contributorsTitleOverride = ""; 
912	</#if> 
913 
914	<#if ReadMoreOverlay??> 
915            articleMetadata.readMoreOverlay = ${getterUtil.getBoolean(ReadMoreOverlay.getData())?c} 
916	<#else> 
917            articleMetadata.readMoreOverlay = false; 
918	</#if> 
919	 
920	var sidebarContents = []; 
921	<#assign enableSidebar = false> 
922	<#if EnableSidebar??> 
923		<#assign enableSidebar = getterUtil.getBoolean(EnableSidebar.getData())> 
924	</#if> 
925	<#-- Check if Sidebar is enabled or not --> 
926	<#if enableSidebar == true> 
927	      
928	     <#assign listingOfArticles = false> 
929	     <#assign singleAssetWithImage = false> 
930	     <#assign richTextSection = false> 
931	     <#assign listView = false> 
932	     <#if EnableSidebar.ListingOfArticles??>  
933	     	 <#assign listingOfArticles = getterUtil.getBoolean(EnableSidebar.ListingOfArticles.getData())> 
934	     </#if> 
935	     <#if EnableSidebar.SingleAssetWithImage??> 
936	     	 <#assign singleAssetWithImage = getterUtil.getBoolean(EnableSidebar.SingleAssetWithImage.getData())> 
937	     </#if> 
938	     <#if EnableSidebar.RichTextSection??> 
939	     	<#assign richTextSection = getterUtil.getBoolean(EnableSidebar.RichTextSection.getData())> 
940	     </#if> 
941	     <#if EnableSidebar.ListView??> 
942	     	<#assign listView = getterUtil.getBoolean(EnableSidebar.ListView.getData())>	 
943	     </#if> 
944	      
945	     <#-- Web content with Link Structure -- ATK-1208 --> 
946         <#if PostArticleSlideShareKeyFieldSet.PostArticleSlideShareKeyFieldSetFieldSet.PostArticleSlideshareContent?has_content> 
947	       <#assign linkAssetArticle = ArticleTemplateCustomService.getManualArticle(PostArticleSlideShareKeyFieldSet.PostArticleSlideShareKeyFieldSetFieldSet.PostArticleSlideshareContent.getData())!"null" /> 
948		   <#if !linkAssetArticle?matches("null")>		 	 
949			  <#assign jArt = JournalArticleLocalService.getLatestArticle(linkAssetArticle.getClassPK())> 
950          	  <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))> 
951              <#assign structureName = jArt.getDDMStructure().getName("en_US")> 
952              <#if structureName?matches("Link")> 
953	              var articleSidebarRichText = <@entryNode document=document field="ArticleSidebarRichText"/>; 
954	              var linkWebContentData = { 
955            		  articleSidebarRichText: articleSidebarRichText 
956
957            	  sidebarContents.push({ 
958            		  linkWebContentData:linkWebContentData, 
959            		  componentType:"linkWebContent" 
960            	  }); 
961              </#if> 
962		   </#if> 
963         </#if> 
964	      
965	     <#-- If Asset publisher listing of articles is enabled --> 
966	     <#if listingOfArticles == true> 
967			 
968	     	<#assign listOfArticlesTitles = "Related"> 
969			<#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListingOfArticlesFieldSet.ListingOfArticlesFieldSetFieldSet.getSiblings()?has_content> 
970				<#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListingOfArticlesFieldSet.ListingOfArticlesFieldSetFieldSet.getSiblings() as assetArticleListEntry> 
971					<#if assetArticleListEntry.ListingOfArticlesTitle.getData()?has_content> 
972						<#assign listOfArticlesTitles = htmlUtil.unescape(assetArticleListEntry.ListingOfArticlesTitle.getData())> 
973					</#if> 	 
974					<#assign manualArticlesEntries = {}> 	 
975					<#if assetArticleListEntry.SelectSidebarArticles??> 
976						<#assign manualArticlesEntries = ArticleTemplateCustomService.getManualArticleList(assetArticleListEntry.SelectSidebarArticles.getSiblings())>  
977					</#if> 
978					var manualArticlesEntry = []; 
979					<#if manualArticlesEntries?size &gt; 0 > 
980							<#list manualArticlesEntries as curEntry> 
981								<#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
982								<#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/> 
983								var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"}; 
984								manualArticlesEntry.push(articleEntry);      	  	             	  	        
985							</#list> 
986					<#else> 
987							<#assign noOfFeatureArticle = "3"> 
988							<#if assetArticleListEntry.NoOfArticlesDisplayed.getData() != "0"> 
989								<#assign noOfFeatureArticle = assetArticleListEntry.NoOfArticlesDisplayed.getData()>  
990							</#if> 
991							<#assign manualArticlesEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(), CurrentAssetEntry.getClassTypeId(), noOfFeatureArticle, "Any")> 
992							<#list manualArticlesEntries as curEntry> 
993								<#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
994								<#assign viewURL = TemplateCustomService.getSidebarArticleViewURL(themeDisplay,jArt,assetLibGroup)/> 
995								var articleEntry = {"articleTitle": "${TemplateCustomService.getSidebarArticleTitle(themeDisplay,jArt,assetLibGroup)}","articleURL":"${viewURL}"}; 
996								manualArticlesEntry.push(articleEntry);      	  	             	  	        
997							</#list>  
998					</#if> 
999					sidebarContents.push({ 
1000						listingOfArticlesTitle:"${listOfArticlesTitles}", 
1001						manualArticles:manualArticlesEntry, 
1002						componentType:"listingOfArticles" 
1003					}); 
1004				</#list> 
1005			</#if> 
1006	     	  
1007	     </#if> 
1008	     <#-- Single Asset Image article --> 
1009	     <#if singleAssetWithImage == true> 
1010	     	  <#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.SingleAssetWithImageFieldSet.SingleAssetWithImageArticleFieldSet.getSiblings()?has_content> 
1011                <#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.SingleAssetWithImageFieldSet.SingleAssetWithImageArticleFieldSet.getSiblings() as singleAssetEntry> 
1012                     
1013                    <#assign learnMoreText = "Learn more"> 
1014                    <#assign enableTNSImage = true>     
1015                    <#assign enableSlug = true> 
1016 
1017                    <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.LearnMoreButtonText.getData()??> 
1018                        <#assign learnMoreText = htmlUtil.unescape(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.LearnMoreButtonText.getData())/> 
1019                    </#if> 
1020 
1021                    <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableTNSImage??> 
1022                        <#assign enableTNSImage = getterUtil.getBoolean(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableTNSImage.getData())/> 
1023                    </#if>     
1024 
1025                    <#if singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableSlug??> 
1026                        <#assign enableSlug = getterUtil.getBoolean(singleAssetEntry.SingleAssetWithImageArticleFieldSetFieldSet.EnableSlug.getData())>     
1027                    </#if> 
1028 
1029                    <#assign singleAssetArticleData = jsonFactoryUtil.createJSONObject(singleAssetEntry.SingleAssetWithImageArticle.getData())/> 
1030                     
1031                    <#if singleAssetArticleData?has_content>  
1032                        <#assign singleAssetArticle = ArticleTemplateCustomService.getManualArticle(singleAssetEntry.SingleAssetWithImageArticle.getData())> 
1033                        <#assign jArt = JournalArticleLocalService.getLatestArticle(singleAssetArticle.getClassPK())> 
1034                        <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))> 
1035                        <#assign structureName = jArt.getDDMStructure().getName("en_US")> 
1036                         
1037                        var componentType = "FEATURED_ARTICLE"; 
1038                        var title = <@entryNode document=document field="ArticleTitle"/>;  
1039                        var subtitle = <@entryNode document=document field="Subtitle"/>;  
1040                        var description = <@entryNode document=document field="Description"/>; 
1041                        if (description == "") { 
1042                            description = <@entryNode document=document field="Intro"/>; 
1043
1044                        var slug = <@entryNode document=document field="Slug"/>;  
1045                        var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>;  
1046                         
1047                        if(linkTargetOverride == "" || linkTargetOverride == null) { 
1048                            linkTargetOverride = <@entryNode document=document field="LinkURL"/>;  
1049
1050                        <#-- ATK-1357 Changes Start --> 
1051                        var videoUrl = ""; 
1052                        <#if structureName?matches('Video')>  
1053                        	videoUrl = <@entryNode document=document field="VideoURL"/>; 
1054                        </#if> 
1055                        <#-- ATK-1357 Changes End -->	 
1056 
1057                        <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())> 
1058 
1059                        <#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)??&& LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")??> 
1060                            <#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
1061                        <#else> 
1062                            <#assign isMicroSite = false> 
1063                        </#if> 
1064 
1065                        var imageFileEntryId = 0; 
1066                        var imageFileName = ""; 
1067                        var image = '${TemplateCustomService.getDocumentFileDetails(document,"ThumbnailSquare",themeDisplay)}'; 
1068                        if (null == image || "" == image) { 
1069                            image = '${TemplateCustomService.getDocumentFileDetails(document,"Thumbnail",themeDisplay)}'; 
1070
1071                        if (null == image) { 
1072                            image = ""; 
1073
1074                         
1075                        if ((image) || image != "") {  
1076                            var [imageFileEntryId, restString] = image.split('+++++'); 
1077                            var [imageFileName, image] = restString.split('*****'); 
1078
1079 
1080                        var singleAssetComponent = { 
1081                            slug: slug, 
1082                            title: title, 
1083                            subtitle: subtitle, 
1084                            description: description, 
1085                            structureName: '${structureName}', 
1086                            image: image.trim(), 
1087                            imageFileEntryId: imageFileEntryId, 
1088                            imageFileName: imageFileName, 
1089                            imageSaturationFilter:'${imageSaturationFilter?c}', 
1090                            groupFriendlyUrl: '${articleGroup.getFriendlyURL()}', 
1091                            isMicrosite: ${isMicroSite?c}, 
1092                            linkTargetOverride: linkTargetOverride, 
1093                            videoUrl: videoUrl 
1094
1095                         
1096                        sidebarContents.push({ 
1097                            singleAssetData: singleAssetComponent, 
1098                            componentType: "singleAsset", 
1099                            learnMoreTextValue: '${learnMoreText}', 
1100                            enableSlugValue: ${enableSlug?c}, 
1101                            enableTNSImageValue: ${enableTNSImage?c} 
1102                        }); 
1103                    </#if> 
1104                </#list> 
1105            </#if> 
1106 
1107	     </#if> 
1108	     <#-- Rich Text Section --> 
1109	     <#if richTextSection == true> 
1110	     		var richTextSectionData = []; 
1111	     		<#if EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings()?has_content> 
1112				<#list EnableSidebar.RichTextSection.RichTextSectionContent.getSiblings() as richTextData> 
1113					<#if (richTextData.getData())??> 
1114						<#assign richTextSection = richTextData.getData()> 
1115						richTextSectionData.push({ 
1116							richTextSectionContent: '${richTextSection?js_string}' 
1117						}); 
1118					</#if> 
1119				</#list> 
1120				</#if> 
1121	     		 
1122	     		sidebarContents.push({ 
1123	     			richTextContentData : richTextSectionData, 
1124	     			componentType:"richTextContent" 
1125	     		}); 
1126	     </#if> 
1127	     <#-- List View --> 
1128	     <#if listView == true> 
1129	            <#if EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListViewFieldSet.ListViewFieldSetFieldSet.getSiblings()?has_content> 
1130                    <#list EnableSidebarFieldSet.EnableSidebarFieldSetFieldSet.ListViewFieldSet.ListViewFieldSetFieldSet.getSiblings() as listViewEntry> 
1131 
1132                            var listViewComponentData = []; 
1133                            <#assign listViewTitle = "Related">     
1134                            <#assign displayListViewTitle = false> 
1135                             
1136                            <#if listViewEntry.ListViewTitleFieldSet.ListViewTitle.getData()??> 
1137                                <#assign listViewTitle = htmlUtil.unescape(listViewEntry.ListViewTitleFieldSet.ListViewTitle.getData())> 
1138                            </#if> 
1139                             
1140                            <#if listViewEntry.ListViewTitleFieldSet.ListViewTitleFieldSetFieldSet.DisplayListViewTitle.getData()??> 
1141                                <#assign displayListViewTitle = getterUtil.getBoolean(listViewEntry.ListViewTitleFieldSet.ListViewTitleFieldSetFieldSet.DisplayListViewTitle.getData())>     
1142                            </#if> 
1143                             
1144                            <#if listViewEntry.ListViewTextFieldSet.getSiblings()?has_content> 
1145                                <#list listViewEntry.ListViewTextFieldSet.getSiblings() as listViewData> 
1146                                    <#assign listView = htmlUtil.unescape(listViewData.ListViewText.getData())> 
1147                                    <#assign listlink = listViewData.ListViewTextFieldSetFieldSet.ListViewLink.getData()> 
1148                                    listViewComponentData.push({ 
1149                                        listViewTitle: '${listView}', 
1150                                        listViewLink: '${listlink}', 
1151                                    }); 
1152                                </#list> 
1153                            </#if> 
1154                             
1155                            sidebarContents.push({ 
1156                                listViewData: listViewComponentData, 
1157                                componentType: "listView", 
1158                                listViewTitleValue: '${listViewTitle}', 
1159                                displayListViewTitleValue: ${displayListViewTitle?c} 
1160                            }); 
1161                    </#list> 
1162                </#if> 
1163 
1164	     </#if> 
1165	 
1166	</#if> 
1167	 
1168	<#-- ATK - 902 Changes Start --> 
1169	ATK.isArticlePage = 'false'; 
1170	<#if LandingArticle == false > 
1171    	<#if themeDisplay.getURLCurrent()?contains("/article/") || themeDisplay.getURLCurrent()?contains("/-/") || (themeDisplay.getURLCurrent()?contains("/alumni/alumni-profiles/") && !themeDisplay.getURLCurrent()?ends_with("/alumni/alumni-profiles/")) > 
1172    		ATK.isArticlePage = 'true'; 
1173    	</#if> 
1174    </#if>	 
1175	<#-- ATK - 902 Changes Over --> 
1176 
1177	<#if PDF?? && PDF.getData() != ""> 
1178    articleMetadata.pdf = "${PDF.getData()?js_string}" 
1179	<#else> 
1180	<#if !GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?matches("Japan") && !GroupLocalService.getGroup(themeDisplay.getScopeGroupId()).getName("en_US")?matches("China")> 
1181		<#assign pdfURL = DynamicPDFGenerationCustomService.getPdfUrl(CurrentJournalArticle, assetLibGroup, "Article-Pdf", themeDisplay, authorListForPdf, isMicroSite, LandingArticle, "pdf-boilerplate-code", externalHeroBannerImageURL, hasExternalHeroBanner, externalHeroBannerTitle, externalHeroBannerSubTitle) /> 
1182		articleMetadata.pdf = "${pdfURL?js_string}"; 
1183	</#if> 
1184	</#if> 
1185	 
1186	ATK.React.App.Article('articleDiv', articleMetadata, articleContents, bios, sidebarContents); 
1187 
1188	// Run embedded scripts after article renders. 
1189	for (var i in articleContents) { 
1190 
1191		var re = /<script>(.+)<\/script>/gi; 
1192		var thisExtractedScript = ['', '']; 
1193 
1194		while (null != (thisExtractedScript = re.exec(articleContents[i].content))) { 
1195			window.eval(thisExtractedScript[1]); 
1196
1197
1198 
1199</script> 
1200 
1201<div class="atk-container"> 
1202	<hr class="after-25-px-phone" style="display: none;" id="hrfeatureArticle"> 
1203</div> 
1204 
1205 
1206<div id="articleAdtDiv_${portletId}" class="articleAdtDiv" /> 
1207 
1208<script> 
1209<#assign enableRelatedInsights = false> 
1210 
1211<#if EnableRelatedInsights??> 
1212	<#assign enableRelatedInsights = getterUtil.getBoolean(EnableRelatedInsights.getData())> 
1213</#if> 
1214<#if enableRelatedInsights == true> 
1215<#assign multiArtBehavior = "Two Wide"> 
1216<#assign gridTitle = "Also of interest"> 
1217<#assign noOfFeatureArticle = "2"> 
1218<#assign featureDisplayType = "Image Left"> 
1219 
1220<#assign fullWidthDisplay = "false"> 
1221<#assign greyBackground = "false"> 
1222<#assign extraSpacer = "None"> 
1223<#assign seeAllLink = ""> 
1224<#assign seeAllLinkText = ""> 
1225<#assign greyBackground = "false"> 
1226<#assign extraSpacer = "None"> 
1227<#assign autoplay = "false"> 
1228<#assign featureDisplayButtonType = "Visible"> 
1229<#assign featureDisplayButtonText = ""> 
1230 
1231<#if GridTitle??> 
1232	<#assign gridTitle =  htmlUtil.unescape(GridTitle.getData())> 
1233</#if> 
1234<#if gridTitle?has_content> 
1235	<#-- ATK-712: Code Start --> 
1236	<#if gridTitle?matches("Related insights") || gridTitle?matches("Related Insights")> 
1237		<#assign gridTitle =  "Also of interest"> 
1238	</#if> 
1239	<#-- ATK-712: Code End --> 
1240<#else> 
1241	<#assign gridTitle =  "Also of interest"> 
1242</#if> 
1243<#if MultipleArticleBehavior??> 
1244	<#assign multiArtBehavior =  MultipleArticleBehavior.getData()> 
1245</#if> 
1246<#if multiArtBehavior?has_content> 
1247<#else> 
1248	<#assign multiArtBehavior =  "Two Wide"> 
1249</#if> 
1250<#if NoOfFeatureArticles??> 
1251	<#assign noOfFeatureArticle =  NoOfFeatureArticles.getData()> 
1252</#if> 
1253<#if noOfFeatureArticle?has_content> 
1254<#else> 
1255	<#assign noOfFeatureArticle =  "2"> 
1256</#if> 
1257 
1258<#assign featureDisplayType = preferences.getValue("featureDisTypeRelatedInsights", "Image Left")?js_string> 
1259 
1260<#assign jaEntries = {}>  
1261<#if RelatedInsightsArticles??> 
1262	<#assign jaEntries = ArticleTemplateCustomService.getManualArticleList(RelatedInsightsArticles.getSiblings())>  
1263</#if> 
1264 
1265<#if jaEntries?size == 0 > 
1266	<#assign jaEntries = ArticleTemplateCustomService.getRelatedArticles(CurrentAssetEntry.getEntryId(),  CurrentAssetEntry.getClassTypeId(), noOfFeatureArticle, "Any")> 
1267</#if> 
1268 
1269<#if jaEntries?size == 0 > 
1270		<#assign gridTitle = " "> 
1271<#else> 
1272	$('#hrfeatureArticle').css('display','block'); 
1273</#if> 
1274 
1275var entries = []; 
1276	<#if jaEntries?size &gt; 0 > 
1277        <#list jaEntries as curEntry> 
1278 
1279            <#assign jArt = JournalArticleLocalService.getLatestArticle(curEntry.getClassPK())> 
1280            <#assign document = saxReaderUtil.read(jArt.getContentByLocale(themeDisplay.getLocale()))> 
1281 
1282            <#assign structureName = jArt.getDDMStructure().getName("en_US")> 
1283 
1284            var componentType = "FEATURED_ARTICLE"; 
1285 
1286            var title = <@entryNode document=document field="ArticleTitle"/>; 
1287 
1288            var subtitle = <@entryNode document=document field="Subtitle"/>; 
1289 
1290            var description = <@entryNode document=document field="Description"/>; 
1291            if (description == ""){ 
1292				description = <@entryNode document=document field="Intro"/>; 
1293
1294 
1295            var slug = <@entryNode document=document field="Slug"/>; 
1296 
1297            <#assign articleGroup = GroupLocalService.getGroup(jArt.getGroupId())> 
1298 
1299            <#if LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false)?? 
1300            && LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular")?? > 
1301                <#assign isMicroSite = (LayoutSetService.getLayoutSet(themeDisplay.getScopeGroupId(), false).getThemeSetting("isMicroSite", "regular") == "true")> 
1302            <#else> 
1303                <#assign isMicroSite = false> 
1304            </#if> 
1305 
1306            var imageFileEntryId = 0; 
1307            var imageFileName = ""; 
1308            var image = '${TemplateCustomService.getDocumentFileDetails(document,"ThumbnailSquare",themeDisplay)}';  
1309            if (null == image || "" == image || ${(fullWidthDisplay == "true")?c}) { 
1310				image = '${TemplateCustomService.getDocumentFileDetails(document,"Thumbnail",themeDisplay)}'; 
1311
1312            if (null == image) { 
1313				image = ""; 
1314
1315			 
1316			if ((image) || image != "") {  
1317				var [imageFileEntryId, restString] = image.split('+++++'); 
1318				var [imageFileName, image] = restString.split('*****'); 
1319
1320 
1321            var componentData = { 
1322				locale: "${locale}", 
1323				structureName: "${structureName}", 
1324				displayType: "${featureDisplayType}", 
1325				slug: slug, 
1326				title: title, 
1327				subtitle: subtitle, 
1328				description: description, 
1329				image: image.trim(), 
1330				imageFileEntryId: imageFileEntryId, 
1331				imageFileName: imageFileName, 
1332				imageSaturationFilter:'${imageSaturationFilter?c}', 
1333				groupFriendlyUrl: '${articleGroup.getFriendlyURL()}', 
1334				isMicrosite: ${isMicroSite?c}, 
1335				multiArtBehavior: '${multiArtBehavior}', 
1336                featureDisplayButtonText: '${featureDisplayButtonText}', 
1337                featureDisplayButtonType: '${featureDisplayButtonType}', 
1338				componentType: componentType 
1339			}; 
1340            <#if structureName == "Article"> 
1341 
1342                var linkTargetOverride = <@entryNode document=document field="LinkTargetOverride"/>; 
1343 
1344                if (linkTargetOverride !== ""){ 
1345					componentData.link = linkTargetOverride; 
1346				} else {                     
1347					<#assign assetCategories = AssetCategoryLocalService.getCategories(curEntry.getClassNameId(), curEntry.getClassPK())> 
1348 
1349					var articleCategories = []; 
1350 
1351                    <#list assetCategories as category> 
1352                        <#assign categoryVocabulary = AssetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId())> 
1353                        <#assign categoryUrl = "#"> 
1354 
1355                        <#list AssetCategoryPropertyLocalService.getCategoryProperties(category.categoryId) as categoryProperty> 
1356 
1357                            <#if categoryProperty.key == "url"> 
1358                                <#assign categoryUrl = categoryProperty.value> 
1359                            </#if> 
1360                        </#list> 
1361	 
1362                        articleCategories.push({ 
1363							id: "${category.categoryId}", 
1364							name: "${category.name}", 
1365							url: "${categoryUrl}", 
1366							vocabularyName: "${categoryVocabulary.getTitle(locale)}", 
1367						}); 
1368				    
1369                    </#list> 
1370 
1371 
1372					componentData.categories = articleCategories; 
1373					componentData.urlTitle = "${jArt.getUrlTitle()?js_string}"; 
1374
1375 
1376                var byline = <@entryNode document=document field="Byline"/>; 
1377                if (byline != null && byline != ""){ 
1378					componentData.byline = []; 
1379				};    
1380            </#if> 
1381            <#if structureName == "Link" || structureName == "External Article" || structureName == "Video"> 
1382                var linkURL = <@entryNode document=document field="LinkURL"/>; 
1383                if (linkURL !== ""){ 
1384					componentData.link = linkURL; 
1385
1386            </#if> 
1387            <#if structureName == "Video"> 
1388            	var videoURL = <@entryNode document=document field="VideoURL"/>; 
1389            	if (videoURL !== ""){ 
1390					componentData.videoURL = videoURL; 
1391
1392            </#if> 
1393            entries.push(componentData); 
1394         </#list> 
1395    </#if> 
1396 
1397var componentVoiceSearch = "article";  
1398var extraProps = { 
1399			multiArtBehavior: "${multiArtBehavior}", 
1400			gridTitle: "${gridTitle}", 
1401			fullWidthDisplay: "${fullWidthDisplay}", 
1402			greyBackground: "${greyBackground}", 
1403			extraSpacer: "${extraSpacer}", 
1404			seeAllLink: "${seeAllLink}", 
1405			seeAllLinkText: "${seeAllLinkText}", 
1406			componentVoiceSearch: componentVoiceSearch 
1407		}; 
1408        ATK.React.Component.FeaturedMultiDisplay("articleAdtDiv_${portletId?js_string}", extraProps, entries); 
1409</#if> 
1410</script> 
1411 
1412<#compress> 
1413<#if (htmlUtil.unescape(Slug.getData()))?lower_case == "article" > 
1414	<script id ="article-structured-data" type="application/ld+json"> 
1415
1416		  "@context": "https://schema.org", 
1417		  "@type": "Article", 
1418		  "dateModified" : "${modifiedDate}", 
1419		  "datePublished": "${displayDateForSchema}", 
1420		  <#if (ArticleTitle.getData())?has_content>"headline": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if> 
1421		  <#if answer?has_content> 
1422				<#if answer?contains("l2it-audio-player")> 
1423				     <#assign answer = answer?json_string?keep_before_last('<div id') /> 
1424				<#else> 
1425				     <#assign answer = answer?json_string /> 
1426                </#if>  
1427		  "description" : "${answer}",</#if> 
1428		  <#if imageurlschema?has_content>"image" : "${imageurlschema}",</#if> 
1429		  "mainEntityOfPage": { 
1430		        "@type": "WebPage", 
1431		        "@id": "${pageurlcurrent}" 
1432		    }, 
1433		  "author" : [ 
1434		  <#if (authorlistschema?size > 0)> 
1435		    <#list authorlistschema as author>     
1436
1437		                "@type" : "Person", 
1438		    	<#list author as cur_author_key, cur_author_value> 
1439		    			<#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if>		        		 
1440		        		<#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if> 
1441		        		<#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}"</#if> 
1442		        		 
1443		    	</#list> 
1444		    	        }<#if (author?index != (authorlistschema?size)-1)>,</#if> 
1445		    </#list>	 
1446		  </#if> 
1447		  ], 
1448		  "publisher": { 
1449		        "@type": "Organization", 
1450		        "@id": "https://www.kearney.com#organization" 
1451
1452
1453	</script> 
1454<#elseif (htmlUtil.unescape(Slug.getData()))?lower_case == "question and answer" > 
1455	<script id ="answer-structured-data" type="application/ld+json"> 
1456	 {	 		 	 
1457	      "@context": "https://schema.org", 
1458	      "@type": "FAQPage", 
1459	      "mainEntity": [{ 
1460	          "@type": "Question", 
1461	          "name": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}", 
1462	          "acceptedAnswer": { 
1463	            "@type": "Answer", 
1464	             <#if answer?has_content> 
1465					<#if answer?contains("l2it-audio-player")> 
1466					     <#assign answer = answer?json_string?keep_before_last('<div id') /> 
1467					<#else> 
1468					     <#assign answer = answer?json_string /> 
1469                  </#if>  
1470				"text" : "${answer}",</#if>             
1471	            "author" : [ 
1472							  <#if (authorlistschema?size > 0)> 
1473							    <#list authorlistschema as author>     
1474
1475							                "@type" : "Person", 
1476							    	<#list author as cur_author_key, cur_author_value>						 
1477							    			<#if cur_author_key=="url" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if>	        		 
1478							        		<#if cur_author_key=="jobTitle" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}",</#if> 
1479							        		<#if cur_author_key=="name" && cur_author_value?has_content>"${cur_author_key}"  : "${cur_author_value}"</#if> 
1480							        		 
1481							    	</#list> 
1482							    	        }<#if (author?index != (authorlistschema?size)-1)>,</#if> 
1483							    </#list>	 
1484							  </#if> 
1485
1486
1487	        }] 
1488
1489	 </script> 
1490 </#if> 
1491 </#compress> 
1492  
1493  
1494 <script> 
1495// Listen for Liferay's SPA navigation event 
1496if (window.Liferay && Liferay.on) { 
1497    Liferay.on('endNavigate', function() { 
1498        // If the new page contains the audio player container, initialize Listen2It 
1499        if (document.getElementById('l2it-audio-player')) { 
1500            // Check if Listen2It has already been loaded; if not, load it. 
1501            if (typeof Listen2It === 'undefined') { 
1502						    try { 
1503                	initialize(document, "listen2it-widget"); 
1504
1505                catch(error) { 
1506                	console.error("Error with Listen2it Audio:", error); 
1507
1508
1509            else { 
1510                // If the widget is already loaded, just initialize it for the new page 
1511                try { 
1512                	initListen2It(); 
1513
1514                catch(error) { 
1515                	console.error("Error with initialization Listen2it Audio:", error); 
1516
1517
1518
1519    }); 
1520
1521</script> 
1522  
1523  
1524 <script> 
1525$(document).ready(function() { 
1526 
1527$("#linkedInShare").on( "click", function() { 
1528	 Analytics.track('socialShare',{ 
1529	'propertyName': 'socialShare', 
1530	<#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if> 
1531	'socialPlatform':'Linkedin', 
1532	'pageURL':themeDisplay.getLayoutURL() 
1533	}); 
1534 }) 
1535  
1536  $("#twitterShare").on( "click", function() { 
1537	 Analytics.track('socialShare',{ 
1538	'propertyName': 'socialShare', 
1539	<#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if> 
1540	'socialPlatform':'Twitter', 
1541	'pageURL':themeDisplay.getLayoutURL() 
1542	}); 
1543 }) 
1544 
1545 $("#facebookShare").on( "click", function() { 
1546	 Analytics.track('socialShare',{ 
1547	'propertyName': 'socialShare', 
1548	<#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if> 
1549	'socialPlatform':'Facebook', 
1550	'pageURL':themeDisplay.getLayoutURL() 
1551	}); 
1552 }) 
1553  
1554 $("#printIcon").on( "click", function() { 
1555	 Analytics.track('printPage',{ 
1556	'propertyName': 'printPage', 
1557	<#if (ArticleTitle.getData())?has_content>"articleTitle": "${(htmlUtil.unescape(ArticleTitle.getData()))?json_string}",</#if> 
1558	'pageURL':themeDisplay.getLayoutURL() 
1559	}); 
1560 }) 
1561  
1562}); 
1563 </script>