{{!-- 
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--}}
<div class="diff-content">
	<div class="row-fluid">
		<div class="span6">
			<b>Policy ID :&nbsp;&nbsp;</b><label class="label label-ranger"> {{objectId}}</label>
			<label class="no-margin label-size13-weightbold">Policy Name : {{policyName}}</label>
            {{#if zoneName}}
                <label class="no-margin label-size13-weightbold" > Zone Name  &nbsp;&nbsp;:  {{zoneName}}</label>
            {{/if}}
			{{#if repositoryType}}
				<label class="no-margin label-size13-weightbold">Repository Type : {{repositoryType}}</label>
			{{/if}}
			<label class="no-margin label-size13-weightbold"> Updated Date  &nbsp;&nbsp;:  {{objectCreatedDate}}</label>
			<label class="no-margin label-size13-weightbold" > Updated By  &nbsp;&nbsp;:  {{userName}}</label>
		</div>	
		<div class="span6 text-right">
			<div class="add-text legend"></div> Added
			<div class="delete-text legend"></div> Deleted
		</div>
	</div>
{{#if collection.length}}
	<h5>Policy Details :</h5>
	<div class="diff policyDetail">
		<div class="diff-left">
			<h3>Fields</h3>
			<ol class="attr">
			{{#each collection}}
				<li class="change-row">{{./this.attributes.attributeName}}</li>
			{{/each}}	
			</ol>
		</div>
		  <div class="diff-left">
			<h3>Old Value</h3>
			<ol class="unstyled data">
			{{#each collection}}
					{{#compare ./this.attributes.previousValue "eq" ''}}
				 			<li>--</li>		
					{{else}}
						<li class="change-row">{{{highlightForPlugableServiceModel ./this.attributes.newValue ./this.attributes.previousValue 'old' ./this.attributes.type}}}</li>
					{{/compare}}
					<!-- <li class="change-row">{{./this.attributes.previousValue}}</li> -->
			{{/each}}	
			</ol>
		</div> 
		<div class="diff-right">
			<h3>New Value</h3>
			<ol class="unstyled data">
			{{#each collection}}
					{{#compare ./this.attributes.newValue "eq" ''}}
				 			<li>--</li>		
					{{else}}
						<li class="change-row">{{{highlightForPlugableServiceModel ./this.attributes.newValue ./this.attributes.previousValue 'new' ./this.attributes.type}}}</li>
					{{/compare}}
			{{/each}}	
			</ol>
		</div>
	</div>
{{/if}}

{{#if oldPolicyCondition}}
    <h5>Policy Conditions :</h5>
    <div class="diff validityPeriod" >
        <div class="diff-left diff-list" data-id="diff">
            <h3>Old Value</h3>
            {{#each oldPolicyCondition}}
                {{#if this.type}}
                <li class="change-row">
                    {{this.type}} : [{{this.values}}]
                </li>
                {{else}}
                    <li style="text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
                {{/if}}
            {{/each}}
        </div>
        <div class="diff-right diff-list" data-id="diff">
            <h3>New Value</h3>
            {{#each newPolicyConditions}}
                {{#if this.type}}
                <li class="change-row">
                    {{this.type}} : [{{this.values}}]
                </li>
                {{else}}
                    <li style="text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
                {{/if}}
            {{/each}}
        </div>
    </div>
{{/if}}

{{#if oldPolicyValidityPeriod}}
    <h5>Validity Period :</h5>
    <div class="diff validityPeriod" >
        <div class="diff-left diff-list" data-id="diff">
            <h3>Old Value</h3>
            {{#each oldPolicyValidityPeriod}}
                <ol class="unstyled data">
                    {{#ifCond this.startTime '||' this.endTime }}
                        <li class="change-row"><i>Start Date</i>:
                            {{#if this.startTime}}
                                <span class="startTime">{{this.startTime}}</span><span>,</span>
                            {{else}}
                                 --
                            {{/if}}
                        </li>
                        <li class="change-row"><i>End Date</i>:
                            {{#if this.endTime}}
                                <span class="endTime">{{this.endTime}}</span><span>,</span>
                            {{else}}
                               --
                            {{/if}}
                        </li>
                        <li class="change-row"><i>Time Zone</i>:
                            {{#if this.timeZone}}
                                <span class="timeZone">{{this.timeZone}}</span><span>,</span>
                            {{else}}
                               --
                            {{/if}}
                        </li>
                    {{else}}
                        <li style=" min-height: 71px; line-height: 75px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
                    {{/ifCond}}
                </ol><br/>
            {{/each}}
        </div>
        <div class="diff-right diff-list" data-id="diff">
            <h3>New Value</h3>
            {{#each newPolicyValidityPeriod}}
                <ol class="unstyled data">
                    {{#ifCond this.startTime '||' this.endTime }}
                        <li class="change-row"><i>Start Date</i>:
                            {{#if this.startTime}}
                                <span class="startTime">{{this.startTime}}</span><span>,</span>
                            {{else}}
                               --
                            {{/if}}
                        </li>
                        <li class="change-row"><i>End Date</i>:
                            {{#if this.endTime}}
                                <span class="endTime">{{this.endTime}}</span><span>,</span>
                            {{else}}
                               --
                            {{/if}}
                        </li>
                        <li class="change-row"><i>Time Zone</i>:
                            {{#if this.timeZone}}
                                <span class="timeZone">{{this.timeZone}}</span><span>,</span>
                            {{else}}
                               --
                            {{/if}}
                        </li>
                    {{else}}
                        <li style=" min-height: 71px; line-height: 75px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
                    {{/ifCond}}
                </ol><br/>
            {{/each}}
        </div>
    </div>
{{/if}}

{{#if oldPolicyItems}}
	<h5>Allow PolicyItems :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldPolicyItems}}
					<ol class="unstyled data">
						{{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}	
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}	
				</ol><br/>		
			{{/each}}
		</div>
	</div>
	{{/if}}
	
{{#if oldAllowExceptionPolicyItems}}
	<h5>Allow Exception PolicyItems :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldAllowExceptionPolicyItems}}
					<ol class="unstyled data">
                                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}	
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newAllowExceptionPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}	
				</ol><br/>		
			{{/each}}
		</div>
	</div>
	{{/if}}


{{#if oldDenyPolicyItems}}
	<h5>Deny PolicyItems :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldDenyPolicyItems}}
					<ol class="unstyled data">
                                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}	
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newDenyPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}	
				</ol><br/>		
			{{/each}}
		</div>
	</div>
	{{/if}}



{{#if oldDenyExceptionPolicyItems}}
	<h5>Deny Exception PolicyItems :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldDenyExceptionPolicyItems}}
					<ol class="unstyled data">
                                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}	
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newDenyExceptionPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                        <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.groups}}  
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;		 
								{{else}}
									{{#each this.users}}  
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Permissions</i>:
								{{#each this.permissions}}
									<span class="perm">{{this}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.conditions}}
								<li class="change-row">
									<i>Conditions</i>:
										{{#each this.conditions}}
											<span class="condition">{{this.type}} : [{{this.values}}]</span><span>,</span>
										{{/each}}
								</li>
							{{/if}}	
							<li class="change-row"><i>Delegate Admin</i>: {{this.delegateAdmin}}</li>
				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}	
				</ol><br/>		
			{{/each}}
		</div>
	</div>
	{{/if}}
	
<!-- Masking Policy Items -->
{{#if oldMaskPolicyItems}}
	<h5>Masking Policy Items :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldMaskPolicyItems}}
					<ol class="unstyled data">
                                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.groups}}
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.users}}
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Accesses</i>:
								{{#each this.accesses}}
									<span class="perm">{{this.type}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.dataMaskInfo}}
							<li class="change-row">
							<i>Data Mask Types</i>:
							<span class="maskingAndRow">{{this.dataMaskInfo.dataMaskType}}</span> <span>,</span>
							</li>
							{{/if}}
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newMaskPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.groups}}
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.users}}
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Accesses</i>:
								{{#each this.accesses}}
									<span class="perm">{{this.type}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.dataMaskInfo}}
							<li class="change-row">
							<i>Data Mask Types</i>:
							<span class="maskingAndRow">{{this.dataMaskInfo.dataMaskType}}</span> <span>,</span>
							</li>
							{{/if}}

				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}
				</ol><br/>
			{{/each}}
		</div>
	</div>
	{{/if}}

<!--  Row filter Policy Items-->
{{#if oldRowFilterPolicyItems}}
	<h5>Row Level Filter Policy Items :</h5>
	<div class="diff diff-perms">
		<div class="diff-left diff-list" data-id="diff">
			<h3>Old Value</h3>
				{{#each oldRowFilterPolicyItems}}
					<ol class="unstyled data">
                                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.groups}}
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.users}}
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Accesses</i>:
								{{#each this.accesses}}
									<span class="perm">{{this.type}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.rowFilterInfo}}
							<li class="change-row">
							<i>Row Level Filter</i>:
							<span class="maskingAndRow">{{this.rowFilterInfo.filterExpr}}</span> <span>,</span>
							</li>
							{{/if}}
						{{else}}
							<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
						{{/ifCond}}
					</ol><br/>
			{{/each}}
		</div>
		<div class="diff-right diff-list" data-id="diff">
			<h3>New Value</h3>
			{{#each newRowFilterPolicyItems}}
				<ol class="unstyled data">
                                {{#ifCond this.users '||' this.groups }}
                                                        <li class="change-row"><i>Roles</i>:
                                                                {{#if_eq this.roles compare=0}}
                                                                        &lt;empty&gt;
                                                                {{else}}
                                                                        {{#each this.roles}}
                                                                                <span class="rolename">{{this}}</span><span>,</span>
                                                                        {{/each}}
                                                                {{/if_eq}}
                                                        </li>
							<li class="change-row"><i>Groups</i>:
								{{#if_eq this.groups compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.groups}}
											<span class="groupname">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Users</i>:
								{{#if_eq this.users compare=0}}
									&lt;empty&gt;
								{{else}}
									{{#each this.users}}
											<span class="username">{{this}}</span><span>,</span>
									{{/each}}
								{{/if_eq}}
							</li>
							<li class="change-row"><i>Accesses</i>:
								{{#each this.accesses}}
									<span class="perm">{{this.type}}</span> <span>,</span>
								{{/each}}
							</li>
							{{#if this.rowFilterInfo}}
							<li class="change-row">
							<i>Row Level Filter</i>:
							<span class="maskingAndRow">{{this.rowFilterInfo.filterExpr}}</span> <span>,</span>
							</li>
							{{/if}}

				{{else}}
						<li style=" min-height: 99px; line-height: 102px; text-align: center; font-weight: bold; font-style: italic;">&lt;empty&gt;</li>
				{{/ifCond}}
				</ol><br/>
			{{/each}}
		</div>
	</div>
	{{/if}}

</div>
