<?xml version="1.0" encoding="Windows-1252"?>
<xsl:stylesheet version="1.0" xmlns:t="http://www.siemens.com.automation/2005/SecurityController" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="ISO-8859-1" indent="yes" omit-xml-declaration="yes"/>
<!--<xsl:output method="html" version="4.0" indent="yes" encoding="ISO-8859-1" media-type="text/html"/>-->
<xsl:template match="/">{\rtf1\ansi\ansicpg850\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Tahoma;}}
\viewkind5\uc1\pard\tx568\tx4970\tx5822\b\f0\fs18
<!--groupuser-->
<xsl:if test="/t:SeCon/t:groupuser">
<xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="/t:SeCon/t:groupuser/@message" /></xsl:call-template>\par
\b0<xsl:for-each select="/t:SeCon/t:groupuser/t:group">
<xsl:sort select="@domain"/>
<xsl:sort select="@value"/>\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822
<xsl:if test="@domain != ''">
<xsl:value-of select="@domain"/>\
</xsl:if>"<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@value" /></xsl:call-template>" (<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@comment" /></xsl:call-template>)\par
</xsl:for-each>\par
</xsl:if>
<!--registry-->
<xsl:if test="/t:SeCon/t:registry/t:path">
\b\f0<xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="/t:SeCon/t:registry/@message" /></xsl:call-template>\b0\par
<xsl:for-each select="/t:SeCon/t:registry/t:path">
<xsl:sort select="@hkey"/>
<xsl:sort select="@value"/>\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@hkey" /></xsl:call-template>\\<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@value" /></xsl:call-template>\par
<xsl:for-each select="t:key">\pard\tx568\tx4970\tx5822\tab <xsl:value-of select="@name"/> = <xsl:value-of select="@value"/>\par
</xsl:for-each>
</xsl:for-each>\par
</xsl:if>
<!--network-->
<xsl:if test="/t:SeCon/t:network">
\b <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="/t:SeCon/t:network/@message" /></xsl:call-template>\b0\par
<xsl:if test="t:SeCon/t:network/t:lan/t:icmp">\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:SeCon/t:network/t:lan/t:icmp/@message"/></xsl:call-template>\par
</xsl:if>
<xsl:for-each select="t:SeCon/t:network/t:lan/t:systemService">
<xsl:sort select="@message"/>\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>\par<xsl:call-template name ="Scope"/></xsl:for-each>
<!--Ports-->
<xsl:for-each select="t:SeCon/t:network/t:lan/t:port">
<xsl:sort select="@name"/>\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@name"/></xsl:call-template>\par
\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@message"/></xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@value"/></xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@message2"/></xsl:call-template>\par
<xsl:call-template name="Scope"/></xsl:for-each>
<!--adding applications to firewall-->
<xsl:for-each select="t:SeCon/t:network/t:lan/t:service">
<xsl:sort select="@name"/>\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@name"/></xsl:call-template>\par
\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="@exepath"/></xsl:call-template>\par
<xsl:call-template name="Scope"/></xsl:for-each>
\par</xsl:if>
<!--setting DCOM-->
<xsl:if test="t:SeCon/t:componentService">
\b <xsl:call-template name="GetText"><xsl:with-param name="valueOf" select="t:SeCon/t:componentService/@message"/></xsl:call-template>\b0\par
<xsl:if test="t:SeCon/t:componentService/t:dcom/t:defaults">
<!--Global Defaults-->
\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:SeCon/t:componentService/t:dcom/t:defaults/@message"/>
</xsl:call-template>\par
<xsl:for-each select="t:SeCon/t:componentService/t:dcom/t:defaults/t:launch">
<xsl:sort select="@user"/>\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>
\b  "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow \tab Deny \b0\par<xsl:call-template name="Permissions"/>
</xsl:for-each>
<xsl:for-each select="t:SeCon/t:componentService/t:dcom/t:defaults/t:access">
<xsl:sort select="@user"/>\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>
\b  "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow \tab Deny \b0\par<xsl:call-template name="Permissions"/>
</xsl:for-each>
</xsl:if>
<xsl:if test="t:SeCon/t:componentService/t:dcom/t:limits">
<!--Global Limit-->
\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:SeCon/t:componentService/t:dcom/t:limits/@message"/>
</xsl:call-template>\par
<xsl:for-each select="t:SeCon/t:componentService/t:dcom/t:limits/t:launch">
<xsl:sort select="@user"/>\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>
\b  "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow \tab Deny \b0\par<xsl:call-template name="Permissions"/>
</xsl:for-each>
<xsl:for-each select="t:SeCon/t:componentService/t:dcom/t:limits/t:access">
<xsl:sort select="@user"/>\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>
\b  "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow \tab Deny \b0\par<xsl:call-template name="Permissions"/>
</xsl:for-each>
</xsl:if>\par
<!--Adding DCOM applications-->
<xsl:for-each select="t:SeCon/t:componentService/t:dcom/t:component">
<xsl:sort select="@name"/>
\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@name"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@applicationID"/>
</xsl:call-template>
<xsl:if test="@runAs !=''">
<xsl:text> </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@runAs"/>
</xsl:call-template>
</xsl:if>\par
<xsl:call-template name="DCOMAppPerm">
<xsl:with-param name="Perm" select="t:authenticationLevel"/></xsl:call-template>
<xsl:call-template name="DCOMAppPerm">
<xsl:with-param name="Perm" select="t:launchPermissions"/>
</xsl:call-template>
<xsl:call-template name="DCOMAppPerm">
<xsl:with-param name="Perm" select="t:accessPermissions"/>
</xsl:call-template>
<xsl:call-template name="DCOMAppPerm">
<xsl:with-param name="Perm" select="t:configurationPermissions"/>
</xsl:call-template>
\par
</xsl:for-each>
\par</xsl:if>
<!--setting FilePermissions-->
<xsl:if test="t:SeCon/t:fileSystemPermissions">
\b <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:SeCon/t:fileSystemPermissions/@message"/>
</xsl:call-template>\b0\par
<xsl:for-each  select="t:SeCon/t:fileSystemPermissions/t:fileSystemPath">
\pard{\pntext\f1}{\pnf1\pnindent0{\pntxtb\'B7}}\tx568\tx4970\tx5822 <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@value"/>
</xsl:call-template>\par
\pard\fi-852\li852\tx568\tx4970\tx5822<xsl:call-template name="TrueFalse">
<!--Inheritance-->
<xsl:with-param name="value" select="t:inheritFromParentToChild/@value"/>
</xsl:call-template>
<xsl:text>   </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:inheritFromParentToChild/@message"/>
</xsl:call-template>\par
<xsl:if test="t:inheritFromParentToChild/@value = 'false'">
<xsl:text>\tab +   </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:inheritFromParentToChild/@message2"/>
</xsl:call-template>\par
</xsl:if>
<!--Replace or copy inherited data-->
<xsl:call-template name="TrueFalse">
<xsl:with-param name="value" select="t:replaceAllChild/@value"/>
</xsl:call-template>
<xsl:text>   </xsl:text>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:replaceAllChild/@message"/>
</xsl:call-template>\par
<xsl:for-each select="t:filePermissions">
<xsl:sort select="@domain"/>
<xsl:sort select="@user"/>
\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/>
</xsl:call-template>\par
\pard\tx568\tx4970\tx5822\tab\b "<xsl:if test="@domain != ''">
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@domain"/>
</xsl:call-template>\\
</xsl:if>
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow\tab Deny\b0\par
<xsl:call-template name="Permissions"/>
</xsl:for-each>
</xsl:for-each>
}</xsl:if>
}
</xsl:template>

<xsl:template name="DCOMAppPerm">
<xsl:param name="Perm"/>
<xsl:if test="$Perm">
<xsl:choose>
<xsl:when test="$Perm/*">
<xsl:for-each select ="$Perm/*">
\pard\tx568\tx4970\tx5822\tab
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="$Perm/@message"/>
</xsl:call-template> \b "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@user"/>
</xsl:call-template>"\tab Allow\tab Deny\b0\par
<xsl:call-template name="Permissions"/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
\pard\tx568\tx4970\tx5822\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="$Perm/@message"/>
</xsl:call-template>
\b  "<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="$Perm/@message2"/>
</xsl:call-template>"\b0\par
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>


	<xsl:template name="GetText">
		<xsl:param name="valueOf"/>
		<!--double backslashes-->
		<xsl:variable name="version1">
			<xsl:call-template name="replace-string">
				<xsl:with-param name="text" select="$valueOf"/>
				<xsl:with-param name="replace" select="'\'"/>
				<xsl:with-param name="with" select="'\\'"/>
			</xsl:call-template>
		</xsl:variable>
		<!--escape "{"-->
		<xsl:variable name="version2">
			<xsl:call-template name="replace-string">
				<xsl:with-param name="text" select="$version1"/>
				<xsl:with-param name="replace" select="'{'"/>
				<xsl:with-param name="with" select="'\{'"/>
			</xsl:call-template>
		</xsl:variable>
		<!--escape "}"-->
		<xsl:variable name="version3">
			<xsl:call-template name="replace-string">
				<xsl:with-param name="text" select="$version2"/>
				<xsl:with-param name="replace" select="'}'"/>
				<xsl:with-param name="with" select="'\}'"/>
			</xsl:call-template>
		</xsl:variable>
		<!--replace ² with one backslash "\"-->
		<xsl:call-template name="replace-string">
			<xsl:with-param name="text" select="$version3"/>
			<xsl:with-param name="replace" select="'²'"/>
			<xsl:with-param name="with" select="'\'"/>
		</xsl:call-template>
	</xsl:template>

<xsl:template name="TrueFalse">
<xsl:param name="value"/>
<xsl:choose>
<xsl:when test="$value = 'true'">\tab +
</xsl:when>
<xsl:otherwise>\tab -
</xsl:otherwise>
</xsl:choose>
</xsl:template>
	
  <xsl:template name="replace-string">
    <xsl:param name="text"/>
    <xsl:param name="replace"/>
    <xsl:param name="with"/>
    <xsl:choose>
      <xsl:when test="contains($text,$replace)">
        <xsl:value-of select="substring-before($text,$replace)"/>
        <xsl:value-of select="$with"/>
        <xsl:call-template name="replace-string">
          <xsl:with-param name="text" select="substring-after($text,$replace)"/>
          <xsl:with-param name="replace" select="$replace"/>
          <xsl:with-param name="with" select="$with"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
				<xsl:value-of select="$text" disable-output-escaping="yes"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>


<xsl:template name ="Permissions">
<xsl:for-each select="*"><!-- go through all access rights -->
\tab <xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="@message"/></xsl:call-template><xsl:call-template name="TrueFalse">
<xsl:with-param name="value" select="@allow"/></xsl:call-template><xsl:call-template name="TrueFalse">
<xsl:with-param name="value" select="@deny"/></xsl:call-template>\par</xsl:for-each></xsl:template>


<xsl:template name ="Scope">
<xsl:if test="t:scopeAny">
<!--scope Any-->
\pard\tx568\tx4970\tx5822\tab 
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:scopeAny/@message"/></xsl:call-template>\par
</xsl:if>
<xsl:if test="t:scopeSubnet">
\pard\tx568\tx4970\tx5822\tab 
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:scopeSubnet/@message"/></xsl:call-template>\par
</xsl:if>
<xsl:if test="t:scopeCustom">
\pard\tx568\tx4970\tx5822\tab 
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:scopeCustom/@message"/></xsl:call-template>\par
\pard\tx568\tx4970\tx5822\tab 
<xsl:call-template name="GetText">
<xsl:with-param name="valueOf" select="t:scopeCustom/@value"/></xsl:call-template>\par
</xsl:if>
</xsl:template>  
</xsl:stylesheet>