do svn:eol-style changes from r19972
authorTom Yu <tlyu@mit.edu>
Sat, 29 Sep 2007 01:02:10 +0000 (01:02 +0000)
committerTom Yu <tlyu@mit.edu>
Sat, 29 Sep 2007 01:02:10 +0000 (01:02 +0000)
ticket: 5768
version_fixed: 1.6.3

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@20014 dc483132-0cff-0310-8789-dd5450dbe970

116 files changed:
src/lib/krb5/krb/srv_dec_tkt.c
src/windows/build/BKWconfig.xml
src/windows/build/Logger.pm
src/windows/build/bkw-automation.html
src/windows/build/bkw.pl
src/windows/build/bootstrap.xml
src/windows/build/commandandcontrol.pl
src/windows/build/copyfiles.pl
src/windows/build/copyfiles.xml
src/windows/build/corebinaryfiles.xml
src/windows/build/css/main-action(1).css
src/windows/build/css/main-action.css
src/windows/build/makeZip.pl
src/windows/build/pruneFiles.pl
src/windows/build/repository1.pl
src/windows/build/sdkfiles.xml
src/windows/build/signFiles.pl
src/windows/build/site-local.sed
src/windows/build/tee.pl
src/windows/build/which.pl
src/windows/build/zipXML.pl
src/windows/identity/config/Makefile
src/windows/identity/config/netidmgr_intver.h.in
src/windows/identity/config/netidmgr_version.h.in
src/windows/identity/doc/Makefile
src/windows/identity/doc/doxyfile.cfg
src/windows/identity/doc/footer.html
src/windows/identity/doc/header.html
src/windows/identity/doc/stylesheet.css
src/windows/identity/help/Index.hhk
src/windows/identity/help/Makefile
src/windows/identity/help/html/about_netidmgr.htm
src/windows/identity/help/html/act_chpw.htm
src/windows/identity/help/html/act_destroy_creds.htm
src/windows/identity/help/html/act_import_creds.htm
src/windows/identity/help/html/act_new_creds.htm
src/windows/identity/help/html/act_renew_creds.htm
src/windows/identity/help/html/act_set_default.htm
src/windows/identity/help/html/bugs.htm
src/windows/identity/help/html/cmdline_netidmgr.htm
src/windows/identity/help/html/concept_cred_pro.htm
src/windows/identity/help/html/concept_credential.htm
src/windows/identity/help/html/concept_ident_pro.htm
src/windows/identity/help/html/concept_identity.htm
src/windows/identity/help/html/concepts.htm
src/windows/identity/help/html/copyright.htm
src/windows/identity/help/html/howdoi.htm
src/windows/identity/help/html/menu_all.htm
src/windows/identity/help/html/menu_credential.htm
src/windows/identity/help/html/menu_file.htm
src/windows/identity/help/html/menu_help.htm
src/windows/identity/help/html/menu_options.htm
src/windows/identity/help/html/menu_view.htm
src/windows/identity/help/html/nidmgr.css
src/windows/identity/help/html/tb_standard.htm
src/windows/identity/help/html/template.htm
src/windows/identity/help/html/use_config.htm
src/windows/identity/help/html/use_icon.htm
src/windows/identity/help/html/use_layout.htm
src/windows/identity/help/html/use_start.htm
src/windows/identity/help/html/using.htm
src/windows/identity/help/html/welcome.htm
src/windows/identity/help/html/wnd_main.htm
src/windows/identity/help/netidmgr.hhp
src/windows/identity/help/popups.txt
src/windows/identity/help/popups_newcreds.txt
src/windows/identity/help/popups_password.txt
src/windows/identity/help/toc.hhc
src/windows/identity/include/Makefile
src/windows/identity/kconfig/Makefile
src/windows/identity/kcreddb/Makefile
src/windows/identity/kcreddb/kcdbconfig.csv
src/windows/identity/kcreddb/lang/en_us/kcredres.rc
src/windows/identity/kherr/Makefile
src/windows/identity/kmm/Makefile
src/windows/identity/kmm/kmmconfig.csv
src/windows/identity/kmm/lang/kmm_msgs.mc
src/windows/identity/kmq/Makefile
src/windows/identity/kmq/kmqconfig.csv
src/windows/identity/nidmgrdll/nidmgrdll.rc
src/windows/identity/plugins/common/Makefile
src/windows/identity/plugins/krb4/krbconfig.csv
src/windows/identity/plugins/krb4/lang/en_us/langres.rc
src/windows/identity/plugins/krb4/lang/krb4_msgs.mc
src/windows/identity/plugins/krb4/version.rc
src/windows/identity/plugins/krb5/krbconfig.csv
src/windows/identity/plugins/krb5/lang/en_us/langres.rc
src/windows/identity/plugins/krb5/lang/krb5_msgs.mc
src/windows/identity/plugins/krb5/version.rc
src/windows/identity/sample/templates/credprov/Makefile
src/windows/identity/sample/templates/credprov/README
src/windows/identity/sample/templates/credprov/lang/en_us/langres.rc
src/windows/identity/sample/templates/credprov/version.rc
src/windows/identity/ui/appver.rc
src/windows/identity/ui/lang/en_us/cmdline.rtf
src/windows/identity/ui/makeacceldef.pl
src/windows/identity/ui/makeactiondef.pl
src/windows/identity/ui/netidmgr.exe.manifest.i386
src/windows/identity/ui/netidmgr.manifest.i386.vc7
src/windows/identity/ui/netidmgr.manifest.i386.vc7.debug
src/windows/identity/ui/netidmgr.manifest.i386.vc8
src/windows/identity/ui/netidmgr.manifest.i386.vc8.debug
src/windows/identity/uilib/Makefile
src/windows/identity/uilib/accel.csv
src/windows/identity/uilib/acceldef.cfg
src/windows/identity/uilib/actiondef.cfg
src/windows/identity/uilib/actions.csv
src/windows/identity/util/Makefile
src/windows/installer/nsis/nsi-includes-tagged.nsi
src/windows/installer/nsis/site-local-tagged.nsi
src/windows/installer/wix/lang/license.rtf
src/windows/installer/wix/platform.wxi
src/windows/installer/wix/runtime.wxi
src/windows/installer/wix/runtime_debug.wxi
src/windows/installer/wix/site-local-tagged.wxi
src/windows/kfwlogon/kfwlogon.def

index 7dad1ed16320a857ce94d4ce06d2acef30915b11..e994ac9950e151bad97c3f15b20f6560075a21d0 100644 (file)
@@ -1,94 +1,94 @@
-/*\r
- * lib/krb5/krb/srv_dec_tkt.c\r
- *\r
- * Copyright 2006 by the Massachusetts Institute of Technology.\r
- * All Rights Reserved.\r
- *\r
- * Export of this software from the United States of America may\r
- *   require a specific license from the United States Government.\r
- *   It is the responsibility of any person or organization contemplating\r
- *   export to obtain such a license before exporting.\r
- *\r
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and\r
- * distribute this software and its documentation for any purpose and\r
- * without fee is hereby granted, provided that the above copyright\r
- * notice appear in all copies and that both that copyright notice and\r
- * this permission notice appear in supporting documentation, and that\r
- * the name of M.I.T. not be used in advertising or publicity pertaining\r
- * to distribution of the software without specific, written prior\r
- * permission.  Furthermore if you modify this software you must label\r
- * your software as modified software and not distribute it in such a\r
- * fashion that it might be confused with the original M.I.T. software.\r
- * M.I.T. makes no representations about the suitability of\r
- * this software for any purpose.  It is provided "as is" without express\r
- * or implied warranty.\r
- *\r
- *\r
- * Server decrypt ticket via keytab or keyblock. \r
- *\r
- * Different from krb5_rd_req_decoded. (krb5/src/lib/krb5/krb/rd_req_dec.c)\r
- *   - No krb5_principal_compare or KRB5KRB_AP_ERR_BADMATCH error.\r
- *   - No replay cache processing.\r
- *   - No skew checking or KRB5KRB_AP_ERR_SKEW error.\r
- *   - No address checking or KRB5KRB_AP_ERR_BADADDR error.\r
- *   - No time validation.\r
- *   - No permitted enctype validation or KRB5_NOPERM_ETYPE error.\r
- *   - Does not free ticket->enc_part2 on error. \r
- */\r
-\r
-#include <k5-int.h>\r
-\r
-krb5_error_code KRB5_CALLCONV\r
-krb5int_server_decrypt_ticket_keyblock(krb5_context context,\r
-                                      const krb5_keyblock *key,\r
-                                      krb5_ticket *ticket)\r
-{\r
-    krb5_error_code retval;\r
-    krb5_data *realm;\r
-    krb5_transited *trans;\r
-\r
-    retval = krb5_decrypt_tkt_part(context, key, ticket);\r
-    if (retval) \r
-       goto done;\r
-\r
-    trans = &ticket->enc_part2->transited;\r
-    realm = &ticket->enc_part2->client->realm;\r
-    if (trans->tr_contents.data && *trans->tr_contents.data) {\r
-       retval = krb5_check_transited_list(context, &trans->tr_contents,\r
-                                          realm, &ticket->server->realm);\r
-       goto done;\r
-    }\r
-\r
-    if (ticket->enc_part2->flags & TKT_FLG_INVALID) {  /* ie, KDC_OPT_POSTDATED */\r
-       retval = KRB5KRB_AP_ERR_TKT_INVALID;\r
-       goto done;\r
-    }\r
-\r
-  done:\r
-    return retval;\r
-}\r
-\r
-\r
-krb5_error_code        KRB5_CALLCONV\r
-krb5_server_decrypt_ticket_keytab(krb5_context context,\r
-                                 const krb5_keytab kt,\r
-                                 krb5_ticket *ticket)\r
-{\r
-    krb5_error_code       retval;\r
-    krb5_enctype          enctype;\r
-    krb5_keytab_entry     ktent;\r
-\r
-    enctype = ticket->enc_part.enctype;\r
-\r
-    if ((retval = krb5_kt_get_entry(context, kt, ticket->server,\r
-                                    ticket->enc_part.kvno,\r
-                                    enctype, &ktent)))\r
-        return retval;\r
-\r
-    retval = krb5int_server_decrypt_ticket_keyblock(context,\r
-                                                   &ktent.key, ticket);\r
-    /* Upon error, Free keytab entry first, then return */\r
-\r
-    (void) krb5_kt_free_entry(context, &ktent);\r
-    return retval;\r
-}\r
+/*
+ * lib/krb5/krb/srv_dec_tkt.c
+ *
+ * Copyright 2006 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * Export of this software from the United States of America may
+ *   require a specific license from the United States Government.
+ *   It is the responsibility of any person or organization contemplating
+ *   export to obtain such a license before exporting.
+ *
+ * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ * distribute this software and its documentation for any purpose and
+ * without fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright notice and
+ * this permission notice appear in supporting documentation, and that
+ * the name of M.I.T. not be used in advertising or publicity pertaining
+ * to distribution of the software without specific, written prior
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose.  It is provided "as is" without express
+ * or implied warranty.
+ *
+ *
+ * Server decrypt ticket via keytab or keyblock. 
+ *
+ * Different from krb5_rd_req_decoded. (krb5/src/lib/krb5/krb/rd_req_dec.c)
+ *   - No krb5_principal_compare or KRB5KRB_AP_ERR_BADMATCH error.
+ *   - No replay cache processing.
+ *   - No skew checking or KRB5KRB_AP_ERR_SKEW error.
+ *   - No address checking or KRB5KRB_AP_ERR_BADADDR error.
+ *   - No time validation.
+ *   - No permitted enctype validation or KRB5_NOPERM_ETYPE error.
+ *   - Does not free ticket->enc_part2 on error. 
+ */
+
+#include <k5-int.h>
+
+krb5_error_code KRB5_CALLCONV
+krb5int_server_decrypt_ticket_keyblock(krb5_context context,
+                                      const krb5_keyblock *key,
+                                      krb5_ticket *ticket)
+{
+    krb5_error_code retval;
+    krb5_data *realm;
+    krb5_transited *trans;
+
+    retval = krb5_decrypt_tkt_part(context, key, ticket);
+    if (retval) 
+       goto done;
+
+    trans = &ticket->enc_part2->transited;
+    realm = &ticket->enc_part2->client->realm;
+    if (trans->tr_contents.data && *trans->tr_contents.data) {
+       retval = krb5_check_transited_list(context, &trans->tr_contents,
+                                          realm, &ticket->server->realm);
+       goto done;
+    }
+
+    if (ticket->enc_part2->flags & TKT_FLG_INVALID) {  /* ie, KDC_OPT_POSTDATED */
+       retval = KRB5KRB_AP_ERR_TKT_INVALID;
+       goto done;
+    }
+
+  done:
+    return retval;
+}
+
+
+krb5_error_code        KRB5_CALLCONV
+krb5_server_decrypt_ticket_keytab(krb5_context context,
+                                 const krb5_keytab kt,
+                                 krb5_ticket *ticket)
+{
+    krb5_error_code       retval;
+    krb5_enctype          enctype;
+    krb5_keytab_entry     ktent;
+
+    enctype = ticket->enc_part.enctype;
+
+    if ((retval = krb5_kt_get_entry(context, kt, ticket->server,
+                                    ticket->enc_part.kvno,
+                                    enctype, &ktent)))
+        return retval;
+
+    retval = krb5int_server_decrypt_ticket_keyblock(context,
+                                                   &ktent.key, ticket);
+    /* Upon error, Free keytab entry first, then return */
+
+    (void) krb5_kt_free_entry(context, &ktent);
+    return retval;
+}
index 42cf1543b8e163721e1a80e48cb6d18043ea3e14..92fdc6ecd9c98c5e774c0444c1985883649f5379 100644 (file)
-<?xml version="1.0" encoding="utf-8" ?>\r
-<!-- BKW: Build Kerberos for Windows -->\r
-<BKW_Config>\r
-    <Config>\r
-        <!-- All the parameters are specified here.  Most can be over-ridden\r
-                on the command line.\r
-\r
-            Parameters are grouped into Options, Directories, Repository and Environment.\r
-\r
-            Attributes a parameter can have:\r
-            abbr: A one character abbreviation.\r
-            def:  defined or not.  A value of 'A' for 'always' means the    \r
-               option can't be negated on the command line.                 \r
-            value:  string value, if the option can have a value.  If the option\r
-               can't take a value, omit the value attribute.\r
-            options:  space-delimited list, the 1st element is the default.\r
-               Synonyms for a valid option are concatenated with '|'.      \r
-            env: an environment variable will be set to value or deleted,  \r
-                depending on def.  If set and no value is given, '1' is used.                                 \r
-            -->\r
-        <!-- Options: -->\r
-        <clean      def="0" />\r
-        <config     def="1" abbr="f" value="bkwconfig.xml" />\r
-        <debug      def="0" abbr="d" />\r
-        <help       def="0" abbr="h|?" />\r
-        <logfile    def="1" abbr="l" value="bkw.pl.log" />\r
-        <make       def="1" />\r
-        <nolog      def="0" />\r
-        <package    def="1" />\r
-        <repository def="A" abbr="r" value="skip" options="skip checkout|co export|ex update|up" />\r
-        <sign       def="0" />\r
-        <verbose    def="0" abbr="v" />\r
-        <vverbose   def="0" />\r
-\r
-        <!-- Directory settings: -->\r
-        <!--    Sources will be checked out of repositories into <src>.  The structure\r
-                of the repositories will cause pismere/athena to be created under <src>.    -->\r
-        <src        def="A" abbr="s" value="C:\KfW" />        <!-- Must be absolute path. -->\r
-        <out        def="A" abbr="o" value="C:\KfW\public" /> <!-- Must be absolute path. -->\r
-\r
-        <!-- Repository settings: -->\r
-        <cvstag     def="0" abbr="c" value="" />\r
-        <svntag     def="0" abbr="t" value="" />\r
-        <svnbranch  def="0" abbr="b" value="" />\r
-        <username   def="0" abbr="u" value="" />    <!-- Needed for svn/plink.  Override from command line -->\r
-        <CVSROOT    def="A" value=":kserver:cvs.mit.edu:/cvs/pismere" />\r
-        <SVNURL     def="A" value="svn.mit.edu" />  <!-- NB:  No protocol or slashes!! -->\r
-\r
-        <!-- Environment variables: -->\r
-        <KH_RELEASE def="1" env="1" value="OFFICIAL" options="OFFICIAL PRERELEASE PRIVATE" />\r
-        <NODEBUG    def="1" env="1" />  <!-- Interacts with /DEBUG -->\r
-        </Config>\r
-    <Stages>\r
-        <FetchSources>\r
-            <Zips>\r
-                <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior    -->\r
-                <Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final">\r
-                    <CopyList>\r
-                        <Files>\r
-                            <!-- File from    paths are relative to <src>/pismere.  -->\r
-                            <!-- File to      paths are relative to <out>.          -->\r
-                            <File dummy="foo" /> <!-- Forces XML::Simple behavior   -->\r
-                            <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
-                            <File name="*.*" from="athena"  to="src\athena" />\r
-                            <File name="*.*" from="doc"     to="src\doc" />\r
-                            <File name="*.*" from="scripts" to="src\scripts" />\r
-                            </Files>\r
-                    </CopyList>\r
-                    <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution:    -->\r
-                        <Prune name="CVS" />\r
-                        <Prune name=".cvsignore" flags="i" />\r
-                        <Prune name="Changelog"  flags="i" />\r
-                        </Prunes>\r
-                    <Requires>\r
-                        <Switch dummy="foo" />\r
-                        <Switch name="REPOSITORY" value="CHECKOUT|EXPORT"/>\r
-                        <ErrorMsg text="Can't build source zip unless /REPOSITORY CHECKOUT or /REPOSITORY EXPORT is specified." />\r
-                        </Requires>\r
-                    </Zip>\r
-                </Zips>\r
-            </FetchSources>\r
-        <Make>\r
-            <!-- Script checks for prunes. -->\r
-            </Make>\r
-        <PrePackage>\r
-            <CopyList>\r
-                <Config>\r
-                    <!--    Debug and Release build results go in different places.\r
-                            The otherwise identical paths differ in one section.  For example:\r
-                            .../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename.\r
-                            Here we define the two differing sections:    -->\r
-                    <DebugArea value="dbg" />\r
-                    <ReleaseArea value="rel" />\r
-                    <!--    Paths in the file list that include <AlwaysTag> will always have the tag replaced \r
-                            with <DebugArea> or <ReleaseArea>, depending on the type of build.\r
-                            Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted \r
-                            and be copied when doing a debug (or release) build.  Examples:\r
-                            Will always be copied, from a build-dependent directory:\r
-                            <File name="kfwlogon.dll"                 from="..\target\bin\i386\%bldtype%\" to="\bin\i386" /> \r
-                            Will only be copied in debug build:\r
-                            <File name="netidmgr.exe.static.manifest" from="..\target\bin\i386\%debug%\"   to="\bin\i386" notrequired="true" />\r
-                            Will always be copied, from a build-independent directory:\r
-                            <File name="des.h"                        from="auth\krb4\include\"            to="\inc\krb4" newname="foo.h"/>\r
-                            -->\r
-                    <AlwaysTag  value="%bldtype%" />    <!-- Pick a string that won't appear in a path. -->\r
-                    <DebugTag   value="%debug%" />      <!-- Pick a string that won't appear in a path. -->\r
-                    <ReleaseTag value="%release%" />    <!-- Pick a string that won't appear in a path. -->\r
-                    </Config>\r
-                <Files>\r
-                    <Include path="copyfiles.xml" />\r
-                    </Files> <!-- Relative to location of bkw.pl. -->\r
-            </CopyList>\r
-        </PrePackage>\r
-        <Package>\r
-            <Config>\r
-                <Paths>    \r
-                    <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. -->\r
-                    </Paths>\r
-                </Config>\r
-            <MSI></MSI>\r
-            <NSIS></NSIS> <!-- NB:  Most config is done in site-local.nsi.  -->\r
-        </Package>\r
-        <PostPackage>\r
-            <Config>    <!-- This config info will be copied into each CopyList in PostPackage. -->\r
-                <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. -->\r
-                <Signing>\r
-                    <CommandTemplate    value="signtool sign /a /d &quot;MIT Kerberos for Windows&quot; /du &quot;http://web.mit.edu/kerberos&quot; /t TIMESTAMPSERVERGOESHERE %filename%" />\r
-                    <FilePatterns       value="*.exe *.dll *.cpl *.msi" />\r
-                    </Signing>\r
-                </Config>\r
-            <Zips>\r
-                <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior    -->\r
-                <!--    Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files.    -->\r
-                <!-- File from  paths are relative to <src>/pismere.    -->\r
-                <!-- File to    paths are relative to <out>.            -->\r
-                <Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final">\r
-                    <CopyList>\r
-                        <Config>\r
-                            <DebugArea   value="dbg" />\r
-                            <ReleaseArea value="rel" />\r
-                            <AlwaysTag   value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->\r
-                            <DebugTag    value="%debug%" />   <!-- Pick a string that won't appear in a path. -->\r
-                            <ReleaseTag  value="%release%" /> <!-- Pick a string that won't appear in a path. -->\r
-                            </Config>\r
-                        <Files>\r
-                            <Include path="corebinaryfiles.xml" />  <!-- Included file is relative to location of bkw.pl. -->\r
-                            </Files> \r
-                        </CopyList>\r
-                </Zip>\r
-                <Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final">\r
-                    <CopyList>\r
-                        <Files>\r
-                            <Include path="sdkfiles.xml" />         <!-- Included file is relative to location of bkw.pl. -->\r
-                            </Files>\r
-                        </CopyList>\r
-                    </Zip>\r
-                </Zips>            \r
-            <CopyList>            <!-- Copied at end of post-package step.  -->\r
-                <Files>\r
-                    <File dummy="foo" />\r
-                    <!-- File from    paths are relative to <src/pismere>.  -->\r
-                    <!-- File to      paths are relative to <out>.          -->\r
-                    <File name="msi-deployment-guide.txt"   from="staging\install\wix\" to="" />\r
-                    <File name="netidmgr_userdoc.pdf"       from="staging\doc"          to="" />\r
-                    <File name="kfw.msi"                    from="buildwix"             to="" newname="%filestem%.msi" />\r
-                    <File name="MITKerberosForWindows%-DEBUG%.exe" from="buildnsi"      to="" newname="%filestem%%-DEBUG%.exe" />\r
-                    <File name="relnotes.html"              from="staging\doc"          to="" />\r
-                    </Files>\r
-                </CopyList>\r
-            </PostPackage>\r
-    </Stages>\r
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- BKW: Build Kerberos for Windows -->
+<BKW_Config>
+    <Config>
+        <!-- All the parameters are specified here.  Most can be over-ridden
+                on the command line.
+
+            Parameters are grouped into Options, Directories, Repository and Environment.
+
+            Attributes a parameter can have:
+            abbr: A one character abbreviation.
+            def:  defined or not.  A value of 'A' for 'always' means the    
+               option can't be negated on the command line.                 
+            value:  string value, if the option can have a value.  If the option
+               can't take a value, omit the value attribute.
+            options:  space-delimited list, the 1st element is the default.
+               Synonyms for a valid option are concatenated with '|'.      
+            env: an environment variable will be set to value or deleted,  
+                depending on def.  If set and no value is given, '1' is used.                                 
+            -->
+        <!-- Options: -->
+        <clean      def="0" />
+        <config     def="1" abbr="f" value="bkwconfig.xml" />
+        <debug      def="0" abbr="d" />
+        <help       def="0" abbr="h|?" />
+        <logfile    def="1" abbr="l" value="bkw.pl.log" />
+        <make       def="1" />
+        <nolog      def="0" />
+        <package    def="1" />
+        <repository def="A" abbr="r" value="skip" options="skip checkout|co export|ex update|up" />
+        <sign       def="0" />
+        <verbose    def="0" abbr="v" />
+        <vverbose   def="0" />
+
+        <!-- Directory settings: -->
+        <!--    Sources will be checked out of repositories into <src>.  The structure
+                of the repositories will cause pismere/athena to be created under <src>.    -->
+        <src        def="A" abbr="s" value="C:\KfW" />        <!-- Must be absolute path. -->
+        <out        def="A" abbr="o" value="C:\KfW\public" /> <!-- Must be absolute path. -->
+
+        <!-- Repository settings: -->
+        <cvstag     def="0" abbr="c" value="" />
+        <svntag     def="0" abbr="t" value="" />
+        <svnbranch  def="0" abbr="b" value="" />
+        <username   def="0" abbr="u" value="" />    <!-- Needed for svn/plink.  Override from command line -->
+        <CVSROOT    def="A" value=":kserver:cvs.mit.edu:/cvs/pismere" />
+        <SVNURL     def="A" value="svn.mit.edu" />  <!-- NB:  No protocol or slashes!! -->
+
+        <!-- Environment variables: -->
+        <KH_RELEASE def="1" env="1" value="OFFICIAL" options="OFFICIAL PRERELEASE PRIVATE" />
+        <NODEBUG    def="1" env="1" />  <!-- Interacts with /DEBUG -->
+        </Config>
+    <Stages>
+        <FetchSources>
+            <Zips>
+                <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior    -->
+                <Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final">
+                    <CopyList>
+                        <Files>
+                            <!-- File from    paths are relative to <src>/pismere.  -->
+                            <!-- File to      paths are relative to <out>.          -->
+                            <File dummy="foo" /> <!-- Forces XML::Simple behavior   -->
+                            <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->
+                            <File name="*.*" from="athena"  to="src\athena" />
+                            <File name="*.*" from="doc"     to="src\doc" />
+                            <File name="*.*" from="scripts" to="src\scripts" />
+                            </Files>
+                    </CopyList>
+                    <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution:    -->
+                        <Prune name="CVS" />
+                        <Prune name=".cvsignore" flags="i" />
+                        <Prune name="Changelog"  flags="i" />
+                        </Prunes>
+                    <Requires>
+                        <Switch dummy="foo" />
+                        <Switch name="REPOSITORY" value="CHECKOUT|EXPORT"/>
+                        <ErrorMsg text="Can't build source zip unless /REPOSITORY CHECKOUT or /REPOSITORY EXPORT is specified." />
+                        </Requires>
+                    </Zip>
+                </Zips>
+            </FetchSources>
+        <Make>
+            <!-- Script checks for prunes. -->
+            </Make>
+        <PrePackage>
+            <CopyList>
+                <Config>
+                    <!--    Debug and Release build results go in different places.
+                            The otherwise identical paths differ in one section.  For example:
+                            .../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename.
+                            Here we define the two differing sections:    -->
+                    <DebugArea value="dbg" />
+                    <ReleaseArea value="rel" />
+                    <!--    Paths in the file list that include <AlwaysTag> will always have the tag replaced 
+                            with <DebugArea> or <ReleaseArea>, depending on the type of build.
+                            Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted 
+                            and be copied when doing a debug (or release) build.  Examples:
+                            Will always be copied, from a build-dependent directory:
+                            <File name="kfwlogon.dll"                 from="..\target\bin\i386\%bldtype%\" to="\bin\i386" /> 
+                            Will only be copied in debug build:
+                            <File name="netidmgr.exe.static.manifest" from="..\target\bin\i386\%debug%\"   to="\bin\i386" notrequired="true" />
+                            Will always be copied, from a build-independent directory:
+                            <File name="des.h"                        from="auth\krb4\include\"            to="\inc\krb4" newname="foo.h"/>
+                            -->
+                    <AlwaysTag  value="%bldtype%" />    <!-- Pick a string that won't appear in a path. -->
+                    <DebugTag   value="%debug%" />      <!-- Pick a string that won't appear in a path. -->
+                    <ReleaseTag value="%release%" />    <!-- Pick a string that won't appear in a path. -->
+                    </Config>
+                <Files>
+                    <Include path="copyfiles.xml" />
+                    </Files> <!-- Relative to location of bkw.pl. -->
+            </CopyList>
+        </PrePackage>
+        <Package>
+            <Config>
+                <Paths>    
+                    <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. -->
+                    </Paths>
+                </Config>
+            <MSI></MSI>
+            <NSIS></NSIS> <!-- NB:  Most config is done in site-local.nsi.  -->
+        </Package>
+        <PostPackage>
+            <Config>    <!-- This config info will be copied into each CopyList in PostPackage. -->
+                <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. -->
+                <Signing>
+                    <CommandTemplate    value="signtool sign /a /d &quot;MIT Kerberos for Windows&quot; /du &quot;http://web.mit.edu/kerberos&quot; /t TIMESTAMPSERVERGOESHERE %filename%" />
+                    <FilePatterns       value="*.exe *.dll *.cpl *.msi" />
+                    </Signing>
+                </Config>
+            <Zips>
+                <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior    -->
+                <!--    Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files.    -->
+                <!-- File from  paths are relative to <src>/pismere.    -->
+                <!-- File to    paths are relative to <out>.            -->
+                <Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final">
+                    <CopyList>
+                        <Config>
+                            <DebugArea   value="dbg" />
+                            <ReleaseArea value="rel" />
+                            <AlwaysTag   value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->
+                            <DebugTag    value="%debug%" />   <!-- Pick a string that won't appear in a path. -->
+                            <ReleaseTag  value="%release%" /> <!-- Pick a string that won't appear in a path. -->
+                            </Config>
+                        <Files>
+                            <Include path="corebinaryfiles.xml" />  <!-- Included file is relative to location of bkw.pl. -->
+                            </Files> 
+                        </CopyList>
+                </Zip>
+                <Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final">
+                    <CopyList>
+                        <Files>
+                            <Include path="sdkfiles.xml" />         <!-- Included file is relative to location of bkw.pl. -->
+                            </Files>
+                        </CopyList>
+                    </Zip>
+                </Zips>            
+            <CopyList>            <!-- Copied at end of post-package step.  -->
+                <Files>
+                    <File dummy="foo" />
+                    <!-- File from    paths are relative to <src/pismere>.  -->
+                    <!-- File to      paths are relative to <out>.          -->
+                    <File name="msi-deployment-guide.txt"   from="staging\install\wix\" to="" />
+                    <File name="netidmgr_userdoc.pdf"       from="staging\doc"          to="" />
+                    <File name="kfw.msi"                    from="buildwix"             to="" newname="%filestem%.msi" />
+                    <File name="MITKerberosForWindows%-DEBUG%.exe" from="buildnsi"      to="" newname="%filestem%%-DEBUG%.exe" />
+                    <File name="relnotes.html"              from="staging\doc"          to="" />
+                    </Files>
+                </CopyList>
+            </PostPackage>
+    </Stages>
 </BKW_Config>
\ No newline at end of file
index f74c218076728a4fe9a53bd4ff35039119c199b6..c7f904a946ea42721bdbd4e46b4146dfbe24a76f 100644 (file)
@@ -1,87 +1,87 @@
-package Logger;\r
-\r
-use strict;\r
-use IO::File;\r
-use FindBin;\r
-\r
-my $bStarted = 0;\r
-\r
-sub new {\r
-    my $class = shift;\r
-    my $file = shift;\r
-    my $append = shift;\r
-    $file || die "Usage: \$foo = new Logger filename [append]\n";\r
-    my $self = {};\r
-    bless  $self, $class;\r
-    $self->{FILE} = $file;\r
-    $self->{APPEND} = $append?'-a':'';\r
-    return $self;\r
-}\r
-\r
-sub start {\r
-    my $self = shift;\r
-\r
-    return 1 if $self->{PIPE};\r
-\r
-    STDOUT->flush;\r
-    STDERR->flush;\r
-\r
-    my $fh_out = new IO::File;\r
-    my $fh_err = new IO::File;\r
-    my $fh_pipe = new IO::File;\r
-\r
-    $self->{OUT} = $fh_out;\r
-    $self->{ERR} = $fh_err;\r
-    $self->{PIPE} = $fh_pipe;\r
-\r
-    $fh_out->open(">&STDOUT") || die;\r
-    $fh_err->open(">&STDERR") || die;\r
-    $fh_pipe->open("|$^X $FindBin::Bin/tee.pl $self->{APPEND} $self->{FILE}") || die;\r
-\r
-    STDOUT->fdopen(fileno $fh_pipe, "w") || die;\r
-    STDERR->fdopen(fileno $fh_pipe, "w") || die;\r
-\r
-    STDOUT->autoflush(1);\r
-    STDERR->autoflush(1);\r
-\r
-    $SIG{__DIE__} = sub {\r
-       print STDERR $_[0];\r
-       $self->stop;\r
-       die "\n";\r
-    };\r
-\r
-       $bStarted = 1;\r
-    return 1;\r
-}\r
-\r
-# 20070314 kpkoch:     \r
-#  There appears to be a bug in ActivePerl where Logger's games with streams\r
-#  and the SIG DIE handler cause eval to throw exceptions.  By deleting the DIE handler,\r
-#  subsequent evals do not fail.\r
-sub no_die_handler {\r
-       delete $SIG{__DIE__};\r
-       }\r
-\r
-sub stop {\r
-    my $self = shift;\r
-\r
-    return 0 if !$self->{PIPE};\r
-\r
-    STDOUT->close;\r
-    STDERR->close;\r
-    $self->{PIPE}->close;\r
-    STDOUT->fdopen(fileno $self->{OUT}, "w");\r
-    STDERR->fdopen(fileno $self->{ERR}, "w");\r
-    delete $self->{OUT};\r
-    delete $self->{ERR};\r
-    delete $self->{PIPE};\r
-       $bStarted = 0;\r
-    return 1;\r
-}\r
-\r
-sub DESTROY {\r
-    my $self = shift;\r
-       $self->stop     if ($bStarted);\r
-       }\r
-\r
-1;\r
+package Logger;
+
+use strict;
+use IO::File;
+use FindBin;
+
+my $bStarted = 0;
+
+sub new {
+    my $class = shift;
+    my $file = shift;
+    my $append = shift;
+    $file || die "Usage: \$foo = new Logger filename [append]\n";
+    my $self = {};
+    bless  $self, $class;
+    $self->{FILE} = $file;
+    $self->{APPEND} = $append?'-a':'';
+    return $self;
+}
+
+sub start {
+    my $self = shift;
+
+    return 1 if $self->{PIPE};
+
+    STDOUT->flush;
+    STDERR->flush;
+
+    my $fh_out = new IO::File;
+    my $fh_err = new IO::File;
+    my $fh_pipe = new IO::File;
+
+    $self->{OUT} = $fh_out;
+    $self->{ERR} = $fh_err;
+    $self->{PIPE} = $fh_pipe;
+
+    $fh_out->open(">&STDOUT") || die;
+    $fh_err->open(">&STDERR") || die;
+    $fh_pipe->open("|$^X $FindBin::Bin/tee.pl $self->{APPEND} $self->{FILE}") || die;
+
+    STDOUT->fdopen(fileno $fh_pipe, "w") || die;
+    STDERR->fdopen(fileno $fh_pipe, "w") || die;
+
+    STDOUT->autoflush(1);
+    STDERR->autoflush(1);
+
+    $SIG{__DIE__} = sub {
+       print STDERR $_[0];
+       $self->stop;
+       die "\n";
+    };
+
+       $bStarted = 1;
+    return 1;
+}
+
+# 20070314 kpkoch:     
+#  There appears to be a bug in ActivePerl where Logger's games with streams
+#  and the SIG DIE handler cause eval to throw exceptions.  By deleting the DIE handler,
+#  subsequent evals do not fail.
+sub no_die_handler {
+       delete $SIG{__DIE__};
+       }
+
+sub stop {
+    my $self = shift;
+
+    return 0 if !$self->{PIPE};
+
+    STDOUT->close;
+    STDERR->close;
+    $self->{PIPE}->close;
+    STDOUT->fdopen(fileno $self->{OUT}, "w");
+    STDERR->fdopen(fileno $self->{ERR}, "w");
+    delete $self->{OUT};
+    delete $self->{ERR};
+    delete $self->{PIPE};
+       $bStarted = 0;
+    return 1;
+}
+
+sub DESTROY {
+    my $self = shift;
+       $self->stop     if ($bStarted);
+       }
+
+1;
index 637c9c9b806443d274dc88bec8ac0e62162a5913..5e21ba570f9c8bd45bf4d02514fe1dd672855553 100644 (file)
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">\r
-<!-- saved from url=(0066)https://confab.mit.edu/confluence/display/ISDA/lore-bkw-automation --><HTML><HEAD>\r
-        <TITLE>lore-bkw-automation - Confluence</TITLE>\r
-        <META http-equiv="Content-Type" content="text/html; charset=utf-8">\r
-        <META http-equiv="Pragma" content="no-cache">\r
-        <META http-equiv="Expires" content="-1">\r
-        <LINK href="css/main-action.css" type="text/css" rel="stylesheet">\r
-            <LINK href="css\main-action(1).css" type="text/css" rel="stylesheet">\r
-                <META content="MSHTML 6.00.2900.3059" name="GENERATOR"></HEAD>\r
-    <BODY>\r
-        <DIV style="MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px" align="left">\r
-            <DIV class="wiki-content" style="MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px" align="left">The \r
-                Kerberos for Windows (KfW) build is automated.&nbsp; A script will fetch the \r
-                sources from a repository and then build, sign and package all the KfW \r
-                distribution components.\r
-            </DIV>\r
-            <DIV class="wiki-content" style="MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px" align="left">This \r
-                description consists of\r
-            </DIV>\r
-            <UL>\r
-                <LI>\r
-                    <A href="#Environment">Setting up the build environment</A>\r
-                <LI>\r
-                    <A href="#Running">Running the script</A>\r
-                <LI>\r
-                    <A href="Details">Script internal details</A>\r
-                <LI>\r
-                    <A href="#Remainingwork">Remaining work / bug list</A>\r
-                <LI>\r
-                    <A href="#Troubleshooting">Troubleshooting</A>\r
-                </LI>\r
-            </UL>\r
-            <H2>Setting Up the Build Environment</H2>\r
-            <P>KfW is built on a Windows PC, in the default Windows shell (cmd.exe). These \r
-                components must be installed:</P>\r
-            <UL>\r
-                <LI>\r
-                    Visual Studio 2003<BR>\r
-                Versions of Visual Studio before or after 2003 are not supported.\r
-                <LI>\r
-                    A recent release of the\r
-                    <SPAN class="nobr">\r
-                        <A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&amp;displaylang=en">\r
-                            Microsoft Platform SDK</A></SPAN>\r
-                &nbsp;\r
-                <LI>\r
-                    <SPAN class="nobr">\r
-                        <A title="Visit page outside Confluence" href="http://www.activestate.com" rel="nofollow">\r
-                            ActiveState Perl 5.8 or more recent</A></SPAN><BR>\r
-                Build 631 is known to work.\r
-                <LI>\r
-                    <SPAN class="nobr">\r
-                        <A title="Visit page outside Confluence" href="http://www.doxygen.org/" rel="nofollow">\r
-                            Doxygen</A></SPAN>\r
-                <LI>\r
-                    sed, awk, cat, rm and find<BR>\r
-                    These can be obtained from the\r
-                    <SPAN class="nobr">\r
-                        <A title="Visit page outside Confluence" href="http://cygwin.com/" rel="nofollow">Cygwin \r
-                            distribution</A></SPAN>.\r
-                    <BR clear="all">\r
-                    <BR clear="all">\r
-                    find must be in C:\tools\cygwin\bin, so install Cygwin in C:\tools\cygwin.\r
-                    <BR>\r
-                    <BR>\r
-                    The cygwin awk is a link and the MS shell doesn't deal well with that.&nbsp; <TT>C</TT>\r
-                    opy <TT>c:\tools\cygwin\bin\gawk</TT> to <TT>c:\tools\cygwin\bin\awk</TT>.\r
-                <LI>\r
-                    <SPAN class="nobr">\r
-                        <A title="Visit page outside Confluence" href="http://sourceforge.net/project/showfiles.php?group_id=105970"\r
-                            rel="nofollow">Wix</A></SPAN>\r
-                <LI>\r
-                    <SPAN class="nobr">\r
-                        <A title="Visit page outside Confluence" href="http://nsis.sourceforge.net" rel="nofollow">\r
-                            NSIS</A></SPAN></LI></UL>\r
-            <H3>Environment variables</H3>\r
-            <P>\r
-                All the components above must be in PATH. Installing ActivePerl puts perl in \r
-                the PATH. Doxygen, Cygwin, hhc, wix and&nbsp;nsis need to be added.</P>\r
-            <P>perl must be installed so that .pl files are automatically executed with perl. \r
-                The ActivePerl installation will do this for you.</P>\r
-            <P>In the INCLUDE path, the Microsoft Platform SDK must come before the Microsoft \r
-                Visual C++ include files. Using a Platform SDK Build Environment window will \r
-                set this up the right way.&nbsp;</P>\r
-            <P>If you make your path modifications permanent via Control Panel / System / \r
-                Advanced / Environment Variables:&nbsp; If you use a Platform SDK Build \r
-                Environment window, it appears that you need to put your PATH components in the \r
-                System PATH, not the User PATH.</P>\r
-            <P>Visual Studio installs hhc in C:\Program Files\HTML Help Workshop.</P>\r
-            <P>nmake must be in PATH. If you use a Platform SDK build environment window, it is \r
-                already done for you.</P>\r
-            <h2>Running the Script<A name="Running"></A></h2>\r
-            <P>\r
-                The build is a perl script controlled by command line switches and an XML \r
-                configuration file. The config file is required. Settings in the config file \r
-                can be overridden by optional command line switches.&nbsp;</P>\r
-            <P>There are options for controlling most steps of the build process.&nbsp; The \r
-                steps are</P>\r
-            <UL>\r
-                <LI>\r
-                Verifying the environment\r
-                <LI>\r
-                Fetching the sources from repositories\r
-                <LI>\r
-                Building the sources\r
-                <LI>\r
-                Setting up the packaging environment\r
-                <LI>\r
-                Building the installers\r
-                <LI>\r
-                    Building the rest of the components\r
-                </LI>\r
-            </UL>\r
-            <P>The usage message shows the switches that control these steps:</P>\r
-            <P><TT>C:\Projects\KfW&gt;perl bkw.pl /?</TT><BR>\r
-                <TT>Usage: bkw.pl [options] NMAKE-options</TT></P>\r
-            <P><TT>&nbsp; Options are case insensitive. </TT>\r
-            </P>\r
-            <P><TT>&nbsp; Options:&nbsp;\r
-                    <BR>\r
-                </TT><TT>&nbsp; /help /?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    usage information (what you now see).\r
-                    <BR>\r
-                    &nbsp; /config /f path&nbsp;&nbsp; Path to config file. Default is \r
-                    bkwconfig.xml.\r
-                    <BR>\r
-                    &nbsp; /src /s dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source directory to use. \r
-                    Should contain\r
-                    <BR>\r
-                    &nbsp;&nbsp;&nbsp; \r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    pismere/athena. If cvstag or svntag is&nbsp;null,\r
-                    <BR>\r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    the directory should be prepopulated.\r
-                    <BR>\r
-                    &nbsp; /out /o dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directory to be created \r
-                    where build results will go\r
-                    <BR>\r
-                </TT><TT>&nbsp; /repository checkout | co \ What repository action to take.\r
-                    <BR>\r
-                    &nbsp;&nbsp;&nbsp; &nbsp;/r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    update&nbsp;&nbsp; | up&nbsp;\ Options are to checkout, update, export<BR>\r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export&nbsp;&nbsp; \r
-                    | ex \ or take no action [skip].&nbsp;<BR>\r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    skip<BR>\r
-                    &nbsp; /username /u name username used to access svn if checking out.\r
-                    <BR>\r
-                    &nbsp; /cvstag /c tag&nbsp;&nbsp;&nbsp; use -r &lt;tag&gt;\r
-                    <TAG>in cvs \r
-command <BR>&nbsp; /svnbranch /b tag use \r
-/branches/&lt;tag&gt;<TAG>&nbsp;instead of /trunk.<BR>&nbsp; /svntag /t tag&nbsp;&nbsp;&nbsp; use \r
-/tags/&lt;tag&gt;<TAG>&nbsp;instead of /trunk.<BR>&nbsp; /debug \r
-/d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do&nbsp;debug make instead of \r
-release make. <BR>&nbsp; \r
-/[no]make&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-Control the make \r
-step. <BR>&nbsp; \r
-/clean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build \r
-clean target. <BR>&nbsp; \r
-/[no]package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Control the packaging step. <BR>&nbsp; \r
-/[no]sign&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Control \r
-signing \r
-of executable&nbsp;files. <BR>&nbsp; /verbose \r
-/v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug mode - verbose output. <BR>&nbsp; /logfile /l path&nbsp; Where to write output. \r
-Default is bkw.pl.log. <BR>&nbsp; \r
-                    /nolog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't \r
-                    save output. </TT>\r
-            </P>\r
-            <P><TT>&nbsp; Other:\r
-                    <BR>\r
-                    &nbsp;&nbsp;&nbsp; NMAKE-options any options you want to pass to NMAKE, which \r
-                    can be:\r
-                    <BR>\r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-                    (note: /nologo is always used)<BR>\r
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NODEBUG=1</TT></P>\r
-            <P><TT>NMAKE-options any options you want to pass to NMAKE, which can be:</TT><BR>\r
-                <TT>(note: /nologo is always used)</TT><BR>\r
-                <TT>[ nmake options follow ]</TT></P>\r
-            <P><BR>\r
-                Notes on the script steps:</P>\r
-            <P><STRONG>Verifying the environment</STRONG>:&nbsp;\r
-                <BR>\r
-                The script tests for each program that it needs and warns if the program isn't \r
-                found.</P>\r
-            <P><STRONG>Fetching sources from repositories</STRONG>:&nbsp;\r
-                <BR>\r
-                If building from a source distribution kit, this section does not apply.</P>\r
-            <P>CVSROOT and SVNURL must be specified in the configuration file.</P>\r
-            <P>A source zip file can only be produced if checking out fresh sources from a \r
-                repository.&nbsp;</P>\r
-            <P>If checking out, the entire pismere directory will be deleted.&nbsp; A warning \r
-                message requires that you confirm this action.</P>\r
-            <P><STRONG>Building the sources:</STRONG><BR>\r
-                /DEBUG controls whether a debug or release build is done.&nbsp; /CLEAN will \r
-                build the CLEAN target.</P>\r
-            <P><STRONG>Setting up the packaging environment :<BR>\r
-                </STRONG>The pre-package steps gathers up build results and puts them in a <FONT face="Courier">\r
-                    staging</FONT> area.&nbsp;\r
-            </P>\r
-            <P>If /SIGN is specified, <FONT face="Courier">.exe</FONT>s, <FONT face="Courier">.dll</FONT>s \r
-                and <FONT face="Courier">.cpl</FONT>s are signed.&nbsp; The signing command \r
-                template is in the configuration file.</P>\r
-            <P><STRONG>Building the installers:</STRONG><BR>\r
-                The <FONT face="Courier">staging </FONT>area is copied into a fresh area for \r
-                each of the installers.&nbsp; The installer results are copied back to the <FONT face="Courier">\r
-                    staging </FONT>area.</P>\r
-            <P><STRONG>Building the rest of the components:</STRONG><BR>\r
-                Zip files are built in temporary areas and copied to <FONT face="Courier">outdir</FONT>.&nbsp; \r
-                The installers and assorted files are copied from <FONT face="Courier">staging</FONT>\r
-                to <FONT face="Courier">outdir</FONT>.&nbsp; If /SIGN is specified, the \r
-                installers will be signed.</P>\r
-            <P>&nbsp;</P>\r
-            <H2><A name="Details"></A>Script Internal Details</H2>\r
-            <H3><A name="Copylists"></A>Copy Lists</H3>\r
-            <P>CopyLists are used in many places.&nbsp;&nbsp;For example, files to be put into \r
-                a .zip are copied to a fresh directory which is then zipped up.&nbsp; There is \r
-                an optional Configuration section and a required Files section.&nbsp;</P>\r
-            <P>The configuration section defines the roots of the from and to paths and can \r
-                optionally define path substitutions.&nbsp;\r
-            </P>\r
-            <P>The to and from paths are forced by the script rather than being set in the \r
-                config file.&nbsp; Comments in the copyfile xml indicate this.</P>\r
-            <P>Lengthy copy lists can be kept in separate files and included with the Include \r
-                directive.&nbsp; Example:</P>\r
-            <P><TT>&lt;Include path="sdkfiles.xml" /&gt;</TT></P>\r
-            <H3>Substitution tags</H3>\r
-            <P>Filenames in copylists can contain variable 'tags' that are replaced before the \r
-                file is copied.&nbsp; Some configuration files contain substitution tags which \r
-                customize the configuration.&nbsp; The supported tags are</P>\r
-            <P>\r
-                <TABLE id="Table3" height="0" cellSpacing="1" cellPadding="1" border="1">\r
-                    <TR>\r
-                        <TD width="136">%VERSION_MAJOR%</TD>\r
-                        <TD height="21">KfW Version from pismere/athena/include/kerberos.ver.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%VERSION_MINOR%</TD>\r
-                        <TD height="9">KfW Version from pismere/athena/include/kerberos.ver.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%VERSION_PATCH%</TD>\r
-                        <TD height="17">KfW Version from pismere/athena/include/kerberos.ver.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%filestem%</TD>\r
-                        <TD height="17">Defined as kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%debug%</TD>\r
-                        <TD>'dbg.'&nbsp; Only substituted during a debug build.&nbsp;</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%release%</TD>\r
-                        <TD>'rel.'&nbsp; Only substituted during a release build.&nbsp;\r
-                        </TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%bldtype%</TD>\r
-                        <TD>Always substituted, to 'dbg' or 'rel,' depending on the type of build.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%-DEBUG%</TD>\r
-                        <TD>'-DEBUG' during a debug build; otherwise empty.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%BUILDDIR%</TD>\r
-                        <TD>SRCDIR\pismere.&nbsp; Used in site-local installer configuration files.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%TARGETDIR%</TD>\r
-                        <TD>SRCDIR\pismere\staging.&nbsp; Used in site-local installer configuration files.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%CONFIGDIR-WIX%</TD>\r
-                        <TD>SRCDIR\pismere\staging\sample.&nbsp; Used in site-local installer configuration \r
-                            files.</TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="136">%CONFIGDIR-NSI%</TD>\r
-                        <TD>SRCDIR\pismere\staging.&nbsp; Used in site-local installer configuration files.</TD>\r
-                    </TR>\r
-                </TABLE>\r
-            </P>\r
-            <P>The overall build configuration specifies a debug or release build.&nbsp; Debug \r
-                and release results are put in different places.&nbsp; Files whose location \r
-                depend on the build type can use %bldtype% in their names.&nbsp; The script \r
-                will substitute %bldtype% with either dbg or rel, depending on the build \r
-                type.&nbsp;<STRONG></P>\r
-        </DIV>\r
-        <DIV style="MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px" align="left">\r
-            <H3>Example</H3>\r
-            </STRONG>\r
-            <P>Here is&nbsp;a copylist entry.&nbsp; Each segment of the file's path that comes \r
-                from a different place is in a different color.</P>\r
-            <P>Release build.&nbsp; Config file:\r
-            </P>\r
-            <P>\r
-                <TABLE id="Table2" cellSpacing="1" cellPadding="1" border="0">\r
-                    <TR>\r
-                        <TD colSpan="4"><FONT face="courier">&lt;BKW_Config&gt;</FONT></TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="23"></TD>\r
-                        <TD colSpan="3"><FONT face="courier">&lt;Config&gt;</FONT></TD>\r
-                    </TR>\r
-                    <TR>\r
-                        <TD width="23"></TD>\r
-                        <TD width="20"></TD>\r
-                        <TD><FONT face="courier">&lt;src&nbsp;value ="<FONT color="#000099">C:\bkw"</FONT> /&gt;</FONT>\r
-                        </TD>\r
-                    </TR>\r
-                </TABLE>\r
-            </P>\r
-            <P>Copylist comments:</P>\r
-            <P><tt>&lt;!-- File from paths are relative to\r
-                    <src>\<FONT color="#ff00cc">pismere\athena</FONT> --&gt; <BR>&lt;!-- File to paths are relative to <src>\<FONT color="#00ff00">\r
-                                pismere\staging</FONT>\r
-                    --&gt; </tt>\r
-            </P>\r
-            <P>When the script processes this copylist, it will force the from and to paths as \r
-                indicated.</P>\r
-            <P>This line\r
-            </P>\r
-            <P><tt>&lt;File name="<FONT color="#00ffff">comerr32.dll</FONT>" from="<FONT color="#ff9933">..\target\bin\i386</FONT>\<FONT color="#ff0000">%bldtype%</FONT>\" \r
-                    to="\<FONT color="#9966ff">bin\i386</FONT>" /&gt;</tt></P>\r
-            <P>will result in <FONT face="Courier"><FONT color="#000099">C:\bkw</FONT>\<FONT color="#ff00cc">pismere\athena</FONT>\<FONT color="#ff9933">..\target\bin\i386</FONT>\<FONT color="#ff0000">rel</FONT>\<FONT color="#00ffff">comerr32.dll</FONT></FONT></P>\r
-            <P>being copied to <FONT face="Courier"><FONT color="#000099">C:\bkw</FONT>\<FONT color="#00ff00">pismere\staging</FONT>\<FONT color="#9966ff">bin\i386</FONT>\<FONT color="#00ffff">comerr32.dll</FONT></FONT>.</P>\r
-            <P>Other possible attributes in a copylist entry:</P>\r
-            <UL>\r
-                <LI>\r
-                    <TT>notrequired</TT>\r
-                <LI>\r
-                    <TT>newname="filename"</TT>\r
-                </LI>\r
-            </UL>\r
-            <P>By default, copylist entries are required and the script will die if they aren't \r
-                present. To ignore missing files, add <TT>notrequired</TT>.</P>\r
-            <P>To rename the file, set the <TT>newname</TT> attribute.</P>\r
-            <H2><FONT face="Verdana"><A name="Remainingwork"></A>Remaining Work / Bug List</FONT></H2>\r
-            <P>Implement RETAIL, OFFICIAL, PRERELEASE, PRIVATE, SPECIAL.</P>\r
-            <P>Figure out what MIT_ONLY, BUILD_KFW, DEBUG_SYMBOL should be.</P>\r
-            <P>TARGET, APPVER.</P>\r
-            <P>NODEBUG=1.&nbsp; Set if release build.</P>\r
-            <H2><FONT face="Verdana"><A name="Troubleshooting"></A>Troubleshooting</FONT>\r
-            </H2>\r
-            <P><STRONG>Can't clean directory; can't delete file or directory</STRONG><BR>\r
-                Make sure a file in the named directory isn't open in another application.</P>\r
-            <P><STRONG>Can't find kerberos.ver</STRONG><BR>\r
-                You skipped the repository step and are trying to build in an empty directory.</P>\r
-        </DIV>\r
-    </BODY>\r
-</HTML>\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
+<!-- saved from url=(0066)https://confab.mit.edu/confluence/display/ISDA/lore-bkw-automation --><HTML><HEAD>
+        <TITLE>lore-bkw-automation - Confluence</TITLE>
+        <META http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <META http-equiv="Pragma" content="no-cache">
+        <META http-equiv="Expires" content="-1">
+        <LINK href="css/main-action.css" type="text/css" rel="stylesheet">
+            <LINK href="css\main-action(1).css" type="text/css" rel="stylesheet">
+                <META content="MSHTML 6.00.2900.3059" name="GENERATOR"></HEAD>
+    <BODY>
+        <DIV style="MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px" align="left">
+            <DIV class="wiki-content" style="MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px" align="left">The 
+                Kerberos for Windows (KfW) build is automated.&nbsp; A script will fetch the 
+                sources from a repository and then build, sign and package all the KfW 
+                distribution components.
+            </DIV>
+            <DIV class="wiki-content" style="MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px" align="left">This 
+                description consists of
+            </DIV>
+            <UL>
+                <LI>
+                    <A href="#Environment">Setting up the build environment</A>
+                <LI>
+                    <A href="#Running">Running the script</A>
+                <LI>
+                    <A href="Details">Script internal details</A>
+                <LI>
+                    <A href="#Remainingwork">Remaining work / bug list</A>
+                <LI>
+                    <A href="#Troubleshooting">Troubleshooting</A>
+                </LI>
+            </UL>
+            <H2>Setting Up the Build Environment</H2>
+            <P>KfW is built on a Windows PC, in the default Windows shell (cmd.exe). These 
+                components must be installed:</P>
+            <UL>
+                <LI>
+                    Visual Studio 2003<BR>
+                Versions of Visual Studio before or after 2003 are not supported.
+                <LI>
+                    A recent release of the
+                    <SPAN class="nobr">
+                        <A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&amp;displaylang=en">
+                            Microsoft Platform SDK</A></SPAN>
+                &nbsp;
+                <LI>
+                    <SPAN class="nobr">
+                        <A title="Visit page outside Confluence" href="http://www.activestate.com" rel="nofollow">
+                            ActiveState Perl 5.8 or more recent</A></SPAN><BR>
+                Build 631 is known to work.
+                <LI>
+                    <SPAN class="nobr">
+                        <A title="Visit page outside Confluence" href="http://www.doxygen.org/" rel="nofollow">
+                            Doxygen</A></SPAN>
+                <LI>
+                    sed, awk, cat, rm and find<BR>
+                    These can be obtained from the
+                    <SPAN class="nobr">
+                        <A title="Visit page outside Confluence" href="http://cygwin.com/" rel="nofollow">Cygwin 
+                            distribution</A></SPAN>.
+                    <BR clear="all">
+                    <BR clear="all">
+                    find must be in C:\tools\cygwin\bin, so install Cygwin in C:\tools\cygwin.
+                    <BR>
+                    <BR>
+                    The cygwin awk is a link and the MS shell doesn't deal well with that.&nbsp; <TT>C</TT>
+                    opy <TT>c:\tools\cygwin\bin\gawk</TT> to <TT>c:\tools\cygwin\bin\awk</TT>.
+                <LI>
+                    <SPAN class="nobr">
+                        <A title="Visit page outside Confluence" href="http://sourceforge.net/project/showfiles.php?group_id=105970"
+                            rel="nofollow">Wix</A></SPAN>
+                <LI>
+                    <SPAN class="nobr">
+                        <A title="Visit page outside Confluence" href="http://nsis.sourceforge.net" rel="nofollow">
+                            NSIS</A></SPAN></LI></UL>
+            <H3>Environment variables</H3>
+            <P>
+                All the components above must be in PATH. Installing ActivePerl puts perl in 
+                the PATH. Doxygen, Cygwin, hhc, wix and&nbsp;nsis need to be added.</P>
+            <P>perl must be installed so that .pl files are automatically executed with perl. 
+                The ActivePerl installation will do this for you.</P>
+            <P>In the INCLUDE path, the Microsoft Platform SDK must come before the Microsoft 
+                Visual C++ include files. Using a Platform SDK Build Environment window will 
+                set this up the right way.&nbsp;</P>
+            <P>If you make your path modifications permanent via Control Panel / System / 
+                Advanced / Environment Variables:&nbsp; If you use a Platform SDK Build 
+                Environment window, it appears that you need to put your PATH components in the 
+                System PATH, not the User PATH.</P>
+            <P>Visual Studio installs hhc in C:\Program Files\HTML Help Workshop.</P>
+            <P>nmake must be in PATH. If you use a Platform SDK build environment window, it is 
+                already done for you.</P>
+            <h2>Running the Script<A name="Running"></A></h2>
+            <P>
+                The build is a perl script controlled by command line switches and an XML 
+                configuration file. The config file is required. Settings in the config file 
+                can be overridden by optional command line switches.&nbsp;</P>
+            <P>There are options for controlling most steps of the build process.&nbsp; The 
+                steps are</P>
+            <UL>
+                <LI>
+                Verifying the environment
+                <LI>
+                Fetching the sources from repositories
+                <LI>
+                Building the sources
+                <LI>
+                Setting up the packaging environment
+                <LI>
+                Building the installers
+                <LI>
+                    Building the rest of the components
+                </LI>
+            </UL>
+            <P>The usage message shows the switches that control these steps:</P>
+            <P><TT>C:\Projects\KfW&gt;perl bkw.pl /?</TT><BR>
+                <TT>Usage: bkw.pl [options] NMAKE-options</TT></P>
+            <P><TT>&nbsp; Options are case insensitive. </TT>
+            </P>
+            <P><TT>&nbsp; Options:&nbsp;
+                    <BR>
+                </TT><TT>&nbsp; /help /?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    usage information (what you now see).
+                    <BR>
+                    &nbsp; /config /f path&nbsp;&nbsp; Path to config file. Default is 
+                    bkwconfig.xml.
+                    <BR>
+                    &nbsp; /src /s dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source directory to use. 
+                    Should contain
+                    <BR>
+                    &nbsp;&nbsp;&nbsp; 
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    pismere/athena. If cvstag or svntag is&nbsp;null,
+                    <BR>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    the directory should be prepopulated.
+                    <BR>
+                    &nbsp; /out /o dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directory to be created 
+                    where build results will go
+                    <BR>
+                </TT><TT>&nbsp; /repository checkout | co \ What repository action to take.
+                    <BR>
+                    &nbsp;&nbsp;&nbsp; &nbsp;/r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    update&nbsp;&nbsp; | up&nbsp;\ Options are to checkout, update, export<BR>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export&nbsp;&nbsp; 
+                    | ex \ or take no action [skip].&nbsp;<BR>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    skip<BR>
+                    &nbsp; /username /u name username used to access svn if checking out.
+                    <BR>
+                    &nbsp; /cvstag /c tag&nbsp;&nbsp;&nbsp; use -r &lt;tag&gt;
+                    <TAG>in cvs 
+command <BR>&nbsp; /svnbranch /b tag use 
+/branches/&lt;tag&gt;<TAG>&nbsp;instead of /trunk.<BR>&nbsp; /svntag /t tag&nbsp;&nbsp;&nbsp; use 
+/tags/&lt;tag&gt;<TAG>&nbsp;instead of /trunk.<BR>&nbsp; /debug 
+/d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do&nbsp;debug make instead of 
+release make. <BR>&nbsp; 
+/[no]make&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+Control the make 
+step. <BR>&nbsp; 
+/clean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build 
+clean target. <BR>&nbsp; 
+/[no]package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Control the packaging step. <BR>&nbsp; 
+/[no]sign&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Control 
+signing 
+of executable&nbsp;files. <BR>&nbsp; /verbose 
+/v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug mode - verbose output. <BR>&nbsp; /logfile /l path&nbsp; Where to write output. 
+Default is bkw.pl.log. <BR>&nbsp; 
+                    /nolog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't 
+                    save output. </TT>
+            </P>
+            <P><TT>&nbsp; Other:
+                    <BR>
+                    &nbsp;&nbsp;&nbsp; NMAKE-options any options you want to pass to NMAKE, which 
+                    can be:
+                    <BR>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+                    (note: /nologo is always used)<BR>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NODEBUG=1</TT></P>
+            <P><TT>NMAKE-options any options you want to pass to NMAKE, which can be:</TT><BR>
+                <TT>(note: /nologo is always used)</TT><BR>
+                <TT>[ nmake options follow ]</TT></P>
+            <P><BR>
+                Notes on the script steps:</P>
+            <P><STRONG>Verifying the environment</STRONG>:&nbsp;
+                <BR>
+                The script tests for each program that it needs and warns if the program isn't 
+                found.</P>
+            <P><STRONG>Fetching sources from repositories</STRONG>:&nbsp;
+                <BR>
+                If building from a source distribution kit, this section does not apply.</P>
+            <P>CVSROOT and SVNURL must be specified in the configuration file.</P>
+            <P>A source zip file can only be produced if checking out fresh sources from a 
+                repository.&nbsp;</P>
+            <P>If checking out, the entire pismere directory will be deleted.&nbsp; A warning 
+                message requires that you confirm this action.</P>
+            <P><STRONG>Building the sources:</STRONG><BR>
+                /DEBUG controls whether a debug or release build is done.&nbsp; /CLEAN will 
+                build the CLEAN target.</P>
+            <P><STRONG>Setting up the packaging environment :<BR>
+                </STRONG>The pre-package steps gathers up build results and puts them in a <FONT face="Courier">
+                    staging</FONT> area.&nbsp;
+            </P>
+            <P>If /SIGN is specified, <FONT face="Courier">.exe</FONT>s, <FONT face="Courier">.dll</FONT>s 
+                and <FONT face="Courier">.cpl</FONT>s are signed.&nbsp; The signing command 
+                template is in the configuration file.</P>
+            <P><STRONG>Building the installers:</STRONG><BR>
+                The <FONT face="Courier">staging </FONT>area is copied into a fresh area for 
+                each of the installers.&nbsp; The installer results are copied back to the <FONT face="Courier">
+                    staging </FONT>area.</P>
+            <P><STRONG>Building the rest of the components:</STRONG><BR>
+                Zip files are built in temporary areas and copied to <FONT face="Courier">outdir</FONT>.&nbsp; 
+                The installers and assorted files are copied from <FONT face="Courier">staging</FONT>
+                to <FONT face="Courier">outdir</FONT>.&nbsp; If /SIGN is specified, the 
+                installers will be signed.</P>
+            <P>&nbsp;</P>
+            <H2><A name="Details"></A>Script Internal Details</H2>
+            <H3><A name="Copylists"></A>Copy Lists</H3>
+            <P>CopyLists are used in many places.&nbsp;&nbsp;For example, files to be put into 
+                a .zip are copied to a fresh directory which is then zipped up.&nbsp; There is 
+                an optional Configuration section and a required Files section.&nbsp;</P>
+            <P>The configuration section defines the roots of the from and to paths and can 
+                optionally define path substitutions.&nbsp;
+            </P>
+            <P>The to and from paths are forced by the script rather than being set in the 
+                config file.&nbsp; Comments in the copyfile xml indicate this.</P>
+            <P>Lengthy copy lists can be kept in separate files and included with the Include 
+                directive.&nbsp; Example:</P>
+            <P><TT>&lt;Include path="sdkfiles.xml" /&gt;</TT></P>
+            <H3>Substitution tags</H3>
+            <P>Filenames in copylists can contain variable 'tags' that are replaced before the 
+                file is copied.&nbsp; Some configuration files contain substitution tags which 
+                customize the configuration.&nbsp; The supported tags are</P>
+            <P>
+                <TABLE id="Table3" height="0" cellSpacing="1" cellPadding="1" border="1">
+                    <TR>
+                        <TD width="136">%VERSION_MAJOR%</TD>
+                        <TD height="21">KfW Version from pismere/athena/include/kerberos.ver.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%VERSION_MINOR%</TD>
+                        <TD height="9">KfW Version from pismere/athena/include/kerberos.ver.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%VERSION_PATCH%</TD>
+                        <TD height="17">KfW Version from pismere/athena/include/kerberos.ver.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%filestem%</TD>
+                        <TD height="17">Defined as kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%debug%</TD>
+                        <TD>'dbg.'&nbsp; Only substituted during a debug build.&nbsp;</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%release%</TD>
+                        <TD>'rel.'&nbsp; Only substituted during a release build.&nbsp;
+                        </TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%bldtype%</TD>
+                        <TD>Always substituted, to 'dbg' or 'rel,' depending on the type of build.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%-DEBUG%</TD>
+                        <TD>'-DEBUG' during a debug build; otherwise empty.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%BUILDDIR%</TD>
+                        <TD>SRCDIR\pismere.&nbsp; Used in site-local installer configuration files.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%TARGETDIR%</TD>
+                        <TD>SRCDIR\pismere\staging.&nbsp; Used in site-local installer configuration files.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%CONFIGDIR-WIX%</TD>
+                        <TD>SRCDIR\pismere\staging\sample.&nbsp; Used in site-local installer configuration 
+                            files.</TD>
+                    </TR>
+                    <TR>
+                        <TD width="136">%CONFIGDIR-NSI%</TD>
+                        <TD>SRCDIR\pismere\staging.&nbsp; Used in site-local installer configuration files.</TD>
+                    </TR>
+                </TABLE>
+            </P>
+            <P>The overall build configuration specifies a debug or release build.&nbsp; Debug 
+                and release results are put in different places.&nbsp; Files whose location 
+                depend on the build type can use %bldtype% in their names.&nbsp; The script 
+                will substitute %bldtype% with either dbg or rel, depending on the build 
+                type.&nbsp;<STRONG></P>
+        </DIV>
+        <DIV style="MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px" align="left">
+            <H3>Example</H3>
+            </STRONG>
+            <P>Here is&nbsp;a copylist entry.&nbsp; Each segment of the file's path that comes 
+                from a different place is in a different color.</P>
+            <P>Release build.&nbsp; Config file:
+            </P>
+            <P>
+                <TABLE id="Table2" cellSpacing="1" cellPadding="1" border="0">
+                    <TR>
+                        <TD colSpan="4"><FONT face="courier">&lt;BKW_Config&gt;</FONT></TD>
+                    </TR>
+                    <TR>
+                        <TD width="23"></TD>
+                        <TD colSpan="3"><FONT face="courier">&lt;Config&gt;</FONT></TD>
+                    </TR>
+                    <TR>
+                        <TD width="23"></TD>
+                        <TD width="20"></TD>
+                        <TD><FONT face="courier">&lt;src&nbsp;value ="<FONT color="#000099">C:\bkw"</FONT> /&gt;</FONT>
+                        </TD>
+                    </TR>
+                </TABLE>
+            </P>
+            <P>Copylist comments:</P>
+            <P><tt>&lt;!-- File from paths are relative to
+                    <src>\<FONT color="#ff00cc">pismere\athena</FONT> --&gt; <BR>&lt;!-- File to paths are relative to <src>\<FONT color="#00ff00">
+                                pismere\staging</FONT>
+                    --&gt; </tt>
+            </P>
+            <P>When the script processes this copylist, it will force the from and to paths as 
+                indicated.</P>
+            <P>This line
+            </P>
+            <P><tt>&lt;File name="<FONT color="#00ffff">comerr32.dll</FONT>" from="<FONT color="#ff9933">..\target\bin\i386</FONT>\<FONT color="#ff0000">%bldtype%</FONT>\" 
+                    to="\<FONT color="#9966ff">bin\i386</FONT>" /&gt;</tt></P>
+            <P>will result in <FONT face="Courier"><FONT color="#000099">C:\bkw</FONT>\<FONT color="#ff00cc">pismere\athena</FONT>\<FONT color="#ff9933">..\target\bin\i386</FONT>\<FONT color="#ff0000">rel</FONT>\<FONT color="#00ffff">comerr32.dll</FONT></FONT></P>
+            <P>being copied to <FONT face="Courier"><FONT color="#000099">C:\bkw</FONT>\<FONT color="#00ff00">pismere\staging</FONT>\<FONT color="#9966ff">bin\i386</FONT>\<FONT color="#00ffff">comerr32.dll</FONT></FONT>.</P>
+            <P>Other possible attributes in a copylist entry:</P>
+            <UL>
+                <LI>
+                    <TT>notrequired</TT>
+                <LI>
+                    <TT>newname="filename"</TT>
+                </LI>
+            </UL>
+            <P>By default, copylist entries are required and the script will die if they aren't 
+                present. To ignore missing files, add <TT>notrequired</TT>.</P>
+            <P>To rename the file, set the <TT>newname</TT> attribute.</P>
+            <H2><FONT face="Verdana"><A name="Remainingwork"></A>Remaining Work / Bug List</FONT></H2>
+            <P>Implement RETAIL, OFFICIAL, PRERELEASE, PRIVATE, SPECIAL.</P>
+            <P>Figure out what MIT_ONLY, BUILD_KFW, DEBUG_SYMBOL should be.</P>
+            <P>TARGET, APPVER.</P>
+            <P>NODEBUG=1.&nbsp; Set if release build.</P>
+            <H2><FONT face="Verdana"><A name="Troubleshooting"></A>Troubleshooting</FONT>
+            </H2>
+            <P><STRONG>Can't clean directory; can't delete file or directory</STRONG><BR>
+                Make sure a file in the named directory isn't open in another application.</P>
+            <P><STRONG>Can't find kerberos.ver</STRONG><BR>
+                You skipped the repository step and are trying to build in an empty directory.</P>
+        </DIV>
+    </BODY>
+</HTML>
index 9321bf69bdc0c63f6e81822ceab2ea208286e760..9984a334377c3ae45fdd0cdf082fbd24484e3293 100644 (file)
-#!perl -w\r
-\r
-#use strict;\r
-use FindBin;\r
-use File::Spec;\r
-use File::Basename;\r
-use lib "$FindBin::Bin/build/lib";\r
-use Getopt::Long;\r
-use Cwd;\r
-use XML::Simple;\r
-use Data::Dumper;\r
-use Archive::Zip;\r
-use Logger;\r
-require "copyfiles.pl";\r
-require "prunefiles.pl";\r
-require "signfiles.pl";\r
-require "zipXML.pl";\r
-\r
-my $BAIL;\r
-$0 = fileparse($0);\r
-my $OPT = {foo => 'bar'};\r
-my $MAKE = 'NMAKE';\r
-our $config;\r
-\r
-sub get_info {\r
-    my $cmd = shift || die;\r
-    my $which = $^X.' which.pl';\r
-    my $full = `$which $cmd`;\r
-    return 0 if ($? / 256);\r
-    chomp($full);\r
-    $full = "\"".$full."\"";\r
-    return { cmd => $cmd, full => $full};\r
-    }\r
-\r
-sub usage {\r
-    print <<USAGE;\r
-Usage: $0 [options] NMAKE-options\r
-\r
-  Options are case insensitive.\r
-\r
-  Options:\r
-    /help /?           usage information (what you now see).\r
-    /config /f path    Path to config file.  Default is bkwconfig.xml.\r
-    /srcdir /s dir     Source directory to use.  Should contain \r
-                       pismere/athena.  If cvstag or svntag is null, \r
-                       the directory should be prepopulated.\r
-    /outdir /o dir     Directory to be created where build results will go\r
-    /repository checkout | co \\  What repository action to take.\r
-       /r       update   | up \\  Options are to checkout, update, export\r
-                export   | ex \\  or skip (take no action).\r
-                skip        \r
-    /username /u name  username used to access svn if checking out.\r
-    /cvstag /c tag     use -r <tag> in cvs command\r
-    /svnbranch /b tag  use /branches/<tag> instead of /trunk.\r
-    /svntag /t tag     use /tags/<tag> instead of /trunk.\r
-    /debug /d          Do debug make instead of release make.\r
-    /[no]make          Control the make step.\r
-    /clean             Build clean target.\r
-    /[no]package       Control the packaging step.\r
-    /[no]sign          Control signing of executable files.\r
-    /verbose /v        Debug mode - verbose output.\r
-    /logfile /l path   Where to write output.  Default is bkw.pl.log.\r
-    /nolog             Don't save output.\r
-  Other:\r
-    NMAKE-options      any options you want to pass to NMAKE, which can be:\r
-                       (note: /nologo is always used)\r
-\r
-USAGE\r
-    system("$MAKE /?");\r
-    }\r
-\r
-sub handler {\r
-    my $sig = shift;\r
-    my $bailmsg = "Bailing out due to SIG$sig!\n";\r
-    my $warnmsg = <<EOH;\r
-*********************************\r
-* FUTURE BUILDS MAY FAIL UNLESS *\r
-* BUILD DIRECTORIES ARE CLEANED *\r
-*********************************\r
-EOH\r
-    $BAIL = $bailmsg.$warnmsg;\r
-}\r
-\r
-sub main {\r
-    local $cmdline = "bkw.pl";\r
-    foreach $arg (@ARGV) {$cmdline .= " $arg";}\r
-\r
-    Getopt::Long::Configure('no_bundling', 'no_auto_abbrev',\r
-           'no_getopt_compat', 'require_order',\r
-           'ignore_case', 'pass_through',\r
-           'prefix_pattern=(--|-|\+|\/)',\r
-           );\r
-\r
-    local @goargs   = ('config|f=s');\r
-    if (!GetOptions($OPT, @goargs)) {\r
-        Usage();\r
-        exit(0);\r
-        }\r
-\r
-    if (! exists $OPT->{config}) {$OPT->{config}  = "bkwconfig.xml";}\r
-    my $configfile  = $OPT->{config};\r
-    print "Info -- Reading configuration from $configfile.\n";\r
-    my $xml         = new XML::Simple();\r
-    $config         = $xml->XMLin($configfile); ## Read in configuration file.\r
-\r
-    # Set up convenience variables:\r
-    local $odr  = $config->{Config};    ## Options, directories, repository, environment.\r
-\r
-    # Build argument description from Config section of the XML,\r
-    #  to parse the rest of the arguments:\r
-    local @xmlargs;\r
-    while (($sw, $val) = each %$odr) {\r
-        local $arg  = $sw;\r
-        if (exists $val->{abbr})    {$arg .= "|$val->{abbr}";}\r
-        if (exists $val->{value})   {       ## Can't do both negations and string values.\r
-            $arg .= ":s";\r
-            }\r
-        else {    \r
-            if (! ($val->{def} =~ /A/)) {$arg .= "!";}\r
-            }\r
-        push @xmlargs, $arg;\r
-        }\r
-\r
-    if (!GetOptions($OPT, @xmlargs)) {$OPT->{help} = 1;}\r
-\r
-    if ( $OPT->{help} ) {\r
-        usage();\r
-        exit(0);\r
-        }\r
-        \r
-    delete $OPT->{foo};        \r
-\r
-##++ Validate required conditions:\r
-\r
-    # List of programs which must be in PATH:\r
-    my @required_list = ('sed', 'awk', 'which', 'cat', 'rm', 'cvs', 'svn', 'doxygen', \r
-                         'hhc', 'candle', 'light', 'makensis', 'nmake', 'plink', 'filever');\r
-    my $requirements_met    = 1;\r
-    my $first_missing       = 0;\r
-    my $error_list          = "";\r
-    foreach my $required (@required_list) {\r
-        if (!get_info($required)) {\r
-            $requirements_met = 0;\r
-            if (!$first_missing) {\r
-                $first_missing = 1;\r
-                $error_list = "Fatal -- Environment problem!  The following program(s) are not in PATH:\n";\r
-                }\r
-            $error_list .= "$required\n";\r
-            }\r
-        }\r
-    if (!$requirements_met) {\r
-        print $error_list;\r
-        print "Info -- Update PATH or install the programs and try again.\n";\r
-        exit(0);\r
-        }\r
-\r
-##-- Validate required conditions.\r
-    \r
-    use Time::gmtime;\r
-    $ENV{DATE} = gmctime()." GMT";\r
-    our $originalDir = `cd`;\r
-    $originalDir =~ s/\n//g;\r
-\r
-##++ Assemble configuration from config file and command line:\r
-\r
-    my $bOutputCleaned  = 0;\r
-\r
-#while ($v = each %$OPT) {print "$v: $OPT->{$v}\n";}\r
-\r
-    # Scan the configuration for switch definitions:\r
-    while (($sw, $val) = each %$odr) {\r
-        next if (! exists $val->{def}); ## ?? Should always exist.\r
-\r
-        # Set/clear environment variables:\r
-        if ($val->{env}) {\r
-            if ($val->{def})    {$ENV{$sw}   = (exists $val->{value}) ? $val->{value} : 1; }\r
-            else                {delete $ENV{$sw};  }\r
-            }\r
-\r
-        # If the switch is in the command line, override the stored value:\r
-        if (exists $OPT->{$sw}) {\r
-            if (exists $val->{value}) {\r
-                $val->{value}   = $OPT->{$sw};  \r
-                $val->{def}     = 1;\r
-                }\r
-            else {\r
-                $val->{def}   = $OPT->{$sw};    ## If no<switch>, value will be zero.\r
-                }\r
-            }\r
-        # If the switch can be negated, test that, too:\r
-        if ( ! ($val->{def} =~ /A/)) {\r
-            local $nosw = "no".$sw;\r
-            if (exists $OPT->{$nosw}) {\r
-                $val->{def} = 0;\r
-                }\r
-            }\r
-    \r
-        # For any switch definition with fixed values ("options"), validate:\r
-        if (exists $val->{options}) {\r
-            local $bValid   = 0;\r
-            # options can be like value1|syn1 value2|syn2|syn3\r
-            foreach $option (split(/ /, $val->{options})) {\r
-                local $bFirst   = 1;\r
-                local $sFirst;\r
-                foreach $opt (split(/\|/, $option)) {\r
-                    # opt will be like value2, syn2, syn3\r
-                    if ($bFirst) {\r
-                        $sFirst = $opt; ## Remember the full name of the option.\r
-                        $bFirst = 0;\r
-                        }\r
-                    if ($val->{value} =~ /$opt/i) {\r
-                        $val->{value} = $sFirst;    ## Save the full name.\r
-                        $bValid = 1;\r
-                        }\r
-                    }\r
-                }\r
-            if (! $bValid) {\r
-                print "Fatal -- invalid $sw value $val->{value}.  Possible values are $val->{options}.\n";\r
-                usage();\r
-                die;\r
-                }\r
-            }\r
-        }\r
-\r
-    # Set up convenience variables:\r
-    our $verbose    = $odr->{verbose}->{def};\r
-    our $vverbose   = $odr->{vverbose}->{def};\r
-    our $clean      = $clean->{clean}->{def};\r
-    local $src      = $odr->{src}->{value};\r
-    local $out      = $odr->{out}->{value};\r
-\r
-    if ($clean && $odr->{package}->{def}) {\r
-        print "Info -- /clean forces /nopackage.\n";\r
-        $odr->{package}->{def} = 0;\r
-        }\r
-\r
-    if ($vverbose) {print "Debug -- Config: ".Dumper($config);}\r
-    \r
-    # Test the unix find command:\r
-    # List of directories where it might be:\r
-    my @find_dirs = ('c:\\cygwin\\bin', 'c:\\tools\\cygwin\\bin');\r
-    if (exists $odr->{unixfind}->{value})    {    ## Was an additional place to look specified?\r
-        push (@find_dirs, $odr->{unixfind}->{value});\r
-        }\r
-    my $bFindFound      = 0;\r
-    foreach my $dir (@find_dirs) {\r
-        if (-d $dir) {\r
-            local $savedPATH    = $ENV{PATH};\r
-            $ENV{PATH}          = $dir.";".$savedPATH;\r
-            if (-e "a.tmp") {!system("rm a.tmp")        or die "Fatal -- Couldn't clean temporary file a.tmp.";}\r
-            !system("find . -maxdepth 0 -name a.tmp > b.tmp 2>&1")  or die "Fatal -- find test failed.";\r
-            local $filesize = -s "b.tmp";\r
-            $ENV{PATH} = $savedPATH;\r
-            if ($filesize <= 0) {\r
-                $bFindFound                 = 1;\r
-                $odr->{unixfind}->{value}   = $dir;\r
-                last;\r
-                }\r
-            }\r
-        }\r
-    if (! $bFindFound) {\r
-        print "Fatal -- unix find command not found in \n";\r
-        map {print " $_ "} @find_dirs;\r
-        print "\n";\r
-        die;\r
-        }\r
-                \r
-    # Don't allow /svntag and /svnbranch simultaneously:\r
-    if ( (length $odr->{svntag}->{value} > 0)   && \r
-         (length $odr->{svnbranch}->{value} > 0) ) {\r
-        die "Fatal -- Can't specify both /SVNTAG and /SVNBRANCH.";\r
-        }\r
-\r
-    # /logfile and /nolog interact:\r
-    if ($odr->{nolog}->{def})  {$odr->{logfile}->{def} = 0;}\r
-\r
-##-- Assemble configuration from config file and command line.\r
-\r
-    local $rverb = $odr->{repository}->{value};\r
-    if ( (($rverb =~ /checkout/) || ($rverb =~ /export/)) && $clean) {\r
-        print "Warning -- Because sources are being checked out, make clean will not be run.\n";\r
-        $clean  = $odr->{clean}->{def}    = 0;\r
-        }\r
-\r
-    my $wd  = $src."\\pismere";\r
-\r
-    if (! ($rverb =~ /skip/)) {\r
-        local $len = 0;\r
-        if (exists $odr->{username}->{value}) {\r
-            $len = length $odr->{username}->{value};\r
-            }\r
-        if ($len < 1) {\r
-            die "Fatal -- you won't get far accessing the repository without specifying a username.";\r
-            }\r
-        }\r
-\r
-    #                (------------------------------------------------)\r
-    if ( (-d $wd) && ( ($rverb =~ /export/) || ($rverb =~ /checkout/) ) ) {\r
-        print "\n\nHEADS UP!!\n\n";\r
-        print "/REPOSITORY ".uc($rverb)." will cause everything under $wd to be deleted.\n";\r
-        print "If this is not what you intended, here's your chance to bail out!\n\n\n";\r
-        print "Are you sure you want to remove everything under $wd? ";\r
-        my $char = getc;\r
-        if (! ($char =~ /y/i))  {die "Info -- operation aborted by user."}\r
-        !system("rm -rf $wd/*") or die "Fatal -- Couldn't clean $wd.";\r
-        !system("rmdir $wd")    or die "Fatal -- Couldn't remove $wd.";\r
-        }\r
-\r
-# Begin logging:\r
-    my $l;\r
-    if ($odr->{logfile}->{def}) {\r
-        print "Info -- logging to $odr->{logfile}->{value}.\n";\r
-        $l = new Logger $odr->{logfile}->{value};\r
-        $l->start;\r
-        $l->no_die_handler;        ## Needed so XML::Simple won't throw exceptions.\r
-        }\r
-\r
-    print "Executing $cmdline\n";\r
-    local $argvsize = @ARGV;\r
-    if ($argvsize > 0) {\r
-        print "\nArguments for NMAKE: ";\r
-        map {print " $_ "} @ARGV;\r
-        print "\n";\r
-        }\r
-       \r
-    print "Info -- Using unix find in $odr->{unixfind}->{value}\n"   if ($verbose);\r
-\r
-##++ Begin repository action:\r
-    if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n"    if ($verbose);}\r
-    else {\r
-        if ($verbose) {print "Info -- *** Begin fetching sources.\n";}\r
-        local $cvspath = "$src";\r
-        if (! -d $cvspath) {                        ## xcopy will create the entire path for us.\r
-            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
-            !system("echo F | xcopy a.tmp $cvspath\\a.tmp") or die "Fatal -- Couldn't xcopy to $cvspath.";\r
-            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";\r
-            !system("rm $cvspath\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";\r
-            }\r
-        \r
-        # Set up cvs environment variables:\r
-        $ENV{CVSROOT}       = $odr->{CVSROOT}->{value};\r
-        local $krb5dir      = "$wd\\athena\\auth\\krb5";\r
-\r
-        local $cvscmdroot   = "cvs $rverb";\r
-        if (length $odr->{cvstag}->{value} > 0) {\r
-            $cvscmdroot .= " -r $odr->{cvstag}->{value}";\r
-            }\r
-\r
-        if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        \r
-            chdir($src)                                     or die "Fatal -- couldn't chdir to $src\n";\r
-            print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-            my @cvsmodules    = (    \r
-                'krb',  \r
-                'pismere/athena/util/lib/delaydlls', \r
-                'pismere/athena/util/lib/getopt', \r
-                'pismere/athena/util/guiwrap'\r
-                );\r
-            foreach my $module (@cvsmodules) {\r
-                local $cvscmd = $cvscmdroot." ".$module;\r
-                if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
-                !system("$cvscmd") or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
-                }\r
-            }\r
-        else {                ## Update.\r
-            chdir($wd)                                      or die "Fatal -- couldn't chdir to $wd\n";\r
-            print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-            if ($verbose) {print "Info -- cvs command: $cvscmdroot\n";}\r
-            !system($cvscmdroot)    or die "Fatal -- command \"$cvscmdroot\" failed; return code $?\n";\r
-            }\r
-\r
-        # Set up svn environment variable:\r
-        $ENV{SVN_SSH} = "plink.exe";\r
-        # If  the directory structure doesn't exist, many cd commands will fail.\r
-        if (! -d $krb5dir) {                                ## xcopy will create the entire path for us.\r
-            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
-            !system("echo F | xcopy a.tmp $krb5dir\\a.tmp") or die "Fatal -- Couldn't xcopy to $krb5dir.";\r
-            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";\r
-            !system("rm $krb5dir\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";\r
-            }\r
-\r
-        chdir($krb5dir)                                 or die "Fatal -- Couldn't chdir to $krb5dir";\r
-        print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-        my $svncmd = "svn $rverb ";\r
-        if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        # Append the rest of the checkout/export command:\r
-            chdir("..");\r
-            if ($rverb =~ /export/) {\r
-                ## svn export will fail if the destination directory exists\r
-                rmdir "krb5";\r
-            }       \r
-            $svncmd .= "svn+ssh://".$odr->{username}->{value}."@".$odr->{SVNURL}->{value}."/krb5/";\r
-            if (length $odr->{svntag}->{value} > 0) {\r
-                $svncmd .= "tags/$odr->{svntag}->{value}";\r
-                }\r
-            elsif (length $odr->{svnbranch}->{value} > 0) {\r
-                $svncmd .= "branches/$odr->{svnbranch}->{value}";\r
-                }\r
-            else {\r
-                $svncmd .= "trunk";\r
-                }\r
-\r
-            $svncmd .= " krb5";\r
-\r
-            }\r
-        if ($verbose) {print "Info -- svn command: $svncmd\n";}\r
-        !system($svncmd)            or die "Fatal -- command \"$svncmd\" failed; return code $?\n";\r
-        if ($verbose) {print "Info -- ***   End fetching sources.\n";}\r
-        }\r
-##-- End  repository action.\r
-        \r
-    ##++ Read in the version information to be able to update the \r
-    #  site-local files in the install build areas.\r
-    # ** Do this now (after repository update and before first zip) \r
-    #    because making zip files requires some configuration data be set up.\r
-    local $version_path = $config->{Stages}->{Package}->{Config}->{Paths}->{Versions}->{path};\r
-    open(DAT, "$src/$version_path")     or die "Could not open $version_path.";\r
-    @raw = <DAT>;\r
-    close DAT;\r
-    foreach $line (@raw) {\r
-        chomp $line;\r
-        if ($line =~ /#define/) {                   # Process #define lines:\r
-            $line =~ s/#define//;                   # Remove #define token\r
-            $line =~ s/^\s+//;                      #  and leading & trailing whitespace\r
-            $line =~ s/\s+$//;\r
-            local @qr = split("\"", $line);         # Try splitting with quotes\r
-            if (exists $qr[1]) {\r
-                $qr[0] =~ s/^\s+//;                 #  Clean up whitespace\r
-                $qr[0] =~ s/\s+$//;\r
-                $config->{Versions}->{$qr[0]} = $qr[1]; # Save string\r
-                }\r
-            else {                                  # No quotes, so\r
-                local @ar = split(" ", $line);      #  split with space\r
-                $ar[0] =~ s/^\s+//;                 #  Clean up whitespace\r
-                $ar[0] =~ s/\s+$//;\r
-                $config->{Versions}->{$ar[0]} = $ar[1]; # and  save numeric value\r
-                }\r
-            }\r
-        }\r
-    \r
-    # Check that the versions we will need for site-local have been defined:\r
-    my @required_versions = ('VER_PROD_MAJOR', 'VER_PROD_MINOR', 'VER_PROD_REV', \r
-                             'VER_PROD_MAJOR_STR', 'VER_PROD_MINOR_STR', 'VER_PROD_REV_STR', \r
-                             'VER_PRODUCTNAME_STR');\r
-    $requirements_met   = 1;\r
-    $first_missing      = 0;\r
-    $error_list         = "";\r
-    foreach my $required (@required_versions) {\r
-        if (! exists $config->{Versions}->{$required}) {\r
-            $requirements_met = 0;\r
-            if (!$first_missing) {\r
-                $first_missing = 1;\r
-                $error_list = "Fatal -- The following version(s) are not defined in $src/$version_path.\n";\r
-                }\r
-            $error_list .= "$required\n";\r
-            }\r
-        }\r
-    if (!$requirements_met) {\r
-        print $error_list;\r
-        exit(0);\r
-        }\r
-    \r
-    # Apply any of these tags to filestem:\r
-    my $filestem    = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
-    $filestem       =~ s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/;\r
-    $filestem       =~ s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/;\r
-    $filestem       =~ s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/;\r
-    $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name}    = $filestem;\r
-    ##-- Read in the version information & set config info.\r
-\r
-##++ Repository action, part 2:\r
-    if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        \r
-       if (! $bOutputCleaned) {                    ## In case somebody cleaned $out before us.\r
-           if (-d $out)    {!system("rm -rf $out/*")   or die "Fatal -- Couldn't clean $out."}    ## Clean output directory.\r
-           else            {mkdir($out);}\r
-           $bOutputCleaned = 1;\r
-           }\r
-       zipXML($config->{Stages}->{FetchSources}, $config); ## Make zips.\r
-       }\r
-##-- End  repository action, part 2.\r
-\r
-##++ Make action:\r
-    if (    ($odr->{make}->{def}) ) {\r
-        if ($verbose) {print "Info -- *** Begin preparing for build.\n";}\r
-\r
-        chdir("$wd") or die "Fatal -- couldn't chdir to $wd\n";\r
-        print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-    \r
-        my ($path, $destpath);\r
-        \r
-        # Copy athena\scripts\site\graft\krb5\Makefile.src to athena\auth\krb5:\r
-        $path = "scripts\\site\\graft\\krb5\\Makefile.src";\r
-        if (!-e  $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
-        $destpath = "athena\\auth\\krb5\\Makefile.src";\r
-        !system("echo F | xcopy /D $wd\\$path $wd\\$destpath /Y > NUL") or die "Fatal -- Copy of $wd\\$path to $wd\\$destpath failed.";\r
-        print "Info -- copied $wd\\$path to $wd\\$destpath\n"   if ($verbose);;\r
-        \r
-        # Add DEBUG_SYMBOL to .../wshelper/Makefile.src:\r
-        $path = "athena\\wshelper\\wshelper\\Makefile.src";\r
-        if (!-e  $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
-        if (system("grep DEBUG_SYMBOL $path > NUL") != 0) {\r
-            !system ("echo DEBUG_SYMBOL=1 >> $wd\\$path") or die "Fatal -- Append line to file failed.\n";\r
-            print "Info -- Added DEBUG_SYMBOL to $wd\\$path\n"  if ($verbose);\r
-            }\r
-        \r
-        # Prune any unwanted directories before the build:\r
-        pruneFiles($config->{Stages}->{Make}, $config);\r
-\r
-        if ($verbose) {print "Info -- ***   End preparing for build.\n";}\r
-    \r
-        my ($buildtarget, $buildtext);\r
-        if ($clean) {\r
-            $buildtarget = "clean" ;\r
-            $buildtext   = " clean."\r
-            }\r
-        else {\r
-            $buildtarget = "" ;\r
-            $buildtext   = "."\r
-            }\r
-        \r
-        chdir("$wd\\athena") or die "Fatal -- couldn't chdir to source directory $wd\\athena\n";\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-        local $dbgswitch = ($odr->{debug}->{def}) ? " " : "NODEBUG=1";\r
-        !system("perl ../scripts/build.pl --softdirs --nolog $buildtarget $dbgswitch BUILD_KFW=1 BUILD_OFFICIAL=1 DEBUG_SYMBOL=1")\r
-            or die "Fatal -- build $buildtarget failed.";\r
-            \r
-        chdir("$wd")                        or die "Fatal -- couldn't chdir to $wd.";\r
-        print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
-        if ($clean) {\r
-            if (-d "staging") {\r
-                !system("rm -rf staging")   or die "Fatal -- Couldn't remove $wd\\staging.";\r
-                }\r
-            }\r
-    \r
-        if ($verbose) {print "Info -- ***   End build".$buildtext."\n";}\r
-        }                                           ## End make conditional.\r
-    else {print "Info -- *** Skipping build.\n"    if ($verbose);}\r
-##-- Make action.\r
-        \r
-##++ Package action:\r
-    if (! $odr->{package}->{def}) {      ## If /clean, nopackage will be set.\r
-        print "Info -- *** Skipping packaging.\n";\r
-        if ((-d $out) && ! $bOutputCleaned) {\r
-            print "Warning -- *** Output directory $out will not be cleaned.\n";\r
-            }\r
-        }\r
-    else {\r
-        if ($verbose) {print "Info -- *** Begin prepackage.\n";}\r
-\r
-        if (! $bOutputCleaned) {                        ## In case somebody cleaned $out before us.\r
-            if (-d $out)    {!system("rm -rf $out/*")   or die "Fatal -- Couldn't clean $out."}    ## Clean output directory.\r
-            else            {mkdir($out);}\r
-            $bOutputCleaned = 1;\r
-            }\r
-\r
-        # The build results are copied to a staging area, where the packager expects to find them.\r
-        #  We put the staging area in the fixed area .../pismere/staging.\r
-        my $prepackage  = $config->{Stages}->{PrePackage};\r
-        my $staging     = "$wd\\staging";\r
-        chdir($wd)                          or die "Fatal -- couldn't chdir to $wd\n";\r
-        print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
-        if (-d "staging") {\r
-            !system("rm -rf $staging/*")        or die "Fatal -- Couldn't clean $staging.";\r
-            }\r
-        else {\r
-            mkdir($staging)                     or die "Fatal -- Couldn't create $staging.";\r
-            }\r
-        \r
-        # Force Where From and To are relative to:\r
-        $prepackage->{CopyList}->{Config}->{From}->{root}   = "$wd\\athena";\r
-        $prepackage->{CopyList}->{Config}->{To}->{root}     = "$wd\\staging";\r
-        copyFiles($prepackage->{CopyList}, $config);        ## Copy any files [this step takes a while]\r
-\r
-        # Sign files:\r
-        chdir($staging) or die "Fatal -- couldn't chdir to $staging\n";\r
-        print "Info -- chdir to ".`cd`."\n"     if ($verbose);\r
-        if ($odr->{sign}->{def}) {\r
-            signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config);\r
-            }\r
-            \r
-        # Create working directories for building the installers:\r
-        if (-d "$wd\\buildwix")    {!system("rm -rf $wd\\buildwix/*")               or die "Fatal -- Couldn't clean $wd\\buildwix."}    \r
-        !system("echo D | xcopy /s $wd\\staging\\install\\wix\\*.* $wd\\buildwix")  or die "Fatal -- Couldn't create $wd\\buildwix.";\r
-        if (-d "$wd\\buildnsi")    {!system("rm -rf $wd\\buildnsi/*")               or die "Fatal -- Couldn't clean $wd\\buildnsi."}    \r
-        !system("echo D | xcopy /s $wd\\staging\\install\\nsis\\*.* $wd\\buildnsi") or die "Fatal -- Couldn't create $wd\\buildnsi.";\r
-\r
-        chdir("$staging\\install\\wix") or die "Fatal -- Couldn't cd to $staging\\install\\wix";\r
-        print "Info -- chdir to ".`cd`."\n"     if ($verbose);\r
-        # Correct errors in files.wxi:\r
-        !system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi.";\r
-        !system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi.";\r
-            \r
-        # Make sed script to run on the site-local configuration files:\r
-        local $tmpfile      = "site-local.sed" ;\r
-        if (-e $tmpfile) {system("del $tmpfile");}\r
-        # Basic substitutions:\r
-        local $dblback_wd   = $wd;\r
-        $dblback_wd         =~ s/\\/\\\\/g;\r
-        !system("echo s/%BUILDDIR%/$dblback_wd/ >> $tmpfile")               or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        local $dblback_staging  = "$wd\\staging";\r
-        $dblback_staging        =~ s/\\/\\\\/g;\r
-        !system("echo s/%TARGETDIR%/$dblback_staging/ >> $tmpfile")         or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        local $dblback_sample   = "$wd\\staging\\sample";\r
-        $dblback_sample         =~ s/\\/\\\\/g;\r
-        !system("echo s/%CONFIGDIR-WIX%/$dblback_sample/ >> $tmpfile")      or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo s/%CONFIGDIR-NSI%/$dblback_staging/ >> $tmpfile")     or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/ >> $tmpfile")  or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/ >> $tmpfile")  or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/ >> $tmpfile")    or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        # Strip out some defines so they can be replaced:  [used for site-local.nsi]\r
-        !system("echo /\^!define\.\*RELEASE\.\*\$/d >> $tmpfile")           or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo /\^!define\.\*DEBUG\.\*\$/d >> $tmpfile")             or die "Fatal -- Couldn't modify $tmpfile.";    \r
-        !system("echo /\^!define\.\*BETA\.\*\$/d >> $tmpfile")              or die "Fatal -- Couldn't modify $tmpfile.";    \r
-\r
-        # Run the script on site-local.wxi:\r
-        !system("sed -f $tmpfile site-local-tagged.wxi > $wd\\buildwix\\site-local.wxi")   or die "Fatal -- Couldn't modify site-local.wxi.";\r
-\r
-        # Now update site-local.nsi:\r
-        chdir "..\\nsis";\r
-        print "Info -- chdir to ".`cd`."\n"                                 if ($verbose);\r
-        !system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp")   or die "Fatal -- Couldn't modify site-local.wxi.";\r
-        # Add DEBUG or RELEASE:\r
-        if ($odr->{debug}->{def}) {                    ## debug build\r
-            !system("echo !define DEBUG >> b.tmp")     or die "Fatal -- Couldn't modify b.tmp.";    \r
-            }\r
-        else {                                         ## release build\r
-            !system("echo !define RELEASE >> b.tmp")   or die "Fatal -- Couldn't modify b.tmp.";\r
-            }\r
-        # Add BETA if present:\r
-        if (exists $config->{Versions}->{'BETA_STR'}) {\r
-            !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp.";    \r
-            }\r
-        !system("mv -f b.tmp $wd\\buildnsi\\site-local.nsi")                        or die "Fatal -- Couldn't replace site-local.nsi.";\r
-\r
-        # Run the script on nsi-includes-tagged.nsi:\r
-        !system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > $wd\\buildnsi\\nsi-includes.nsi")  or die "Fatal -- Couldn't modify nsi-includes.nsi.";\r
-        !system("rm ..\\wix\\$tmpfile")                                     or die "Fatal -- Couldn't remove $tmpfile.";\r
-\r
-        if ($verbose) {print "Info -- ***   End prepackage.\n";}\r
-        \r
-        if ($verbose) {print "Info -- *** Begin package.\n";}\r
-        # Make the msi:\r
-        chdir("$wd\\buildwix")                      or die "Fatal -- Couldn't cd to $wd\\buildwix";\r
-        print "Info -- *** Make .msi:\n"            if ($verbose);\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-        !system("$MAKE")                            or die "Error -- msi installer build failed.";\r
-                \r
-        chdir("$wd\\buildnsi")                      or die "Fatal -- Couldn't cd to $wd\\buildnsi";\r
-        print "Info -- *** Make NSIS:\n"            if ($verbose);\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-        !system("cl.exe killer.cpp advapi32.lib")   or die "Error -- nsis killer.exe not built.";\r
-        !system("rename killer.exe Killer.exe")     or die "Error -- Couldn't rename killer.exe";\r
-        !system("makensis kfw.nsi")                 or die "Error -- executable installer build failed.";\r
-\r
-# Begin packaging extra items:\r
-        chdir($wd)                                  or die "Fatal -- Couldn't cd to $wd";\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-\r
-        zipXML($config->{Stages}->{PostPackage}, $config);                      ## Make zips.\r
-\r
-        $config->{Stages}->{PostPackage}->{CopyList}->{Config} = $config->{Stages}->{PostPackage}->{Config};    ## Use the post package config.\r
-        $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{From}->{root}  = "$src\\pismere";\r
-        $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{To}->{root}    = $out;\r
-        copyFiles($config->{Stages}->{PostPackage}->{CopyList}, $config);       ## Copy any files\r
-\r
-        !system("rm -rf $wd\\buildwix")             or die "Fatal -- Couldn't remove $wd\\buildwix.";\r
-        !system("rm -rf $wd\\buildnsi")             or die "Fatal -- Couldn't remove $wd\\buildnsi.";\r
-\r
-        chdir($out)                                 or die "Fatal -- Couldn't cd to $out";\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-        if ($odr->{sign}->{def}) {\r
-            signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config);\r
-            }\r
-\r
-        if ($verbose) {print "Info -- ***   End package.\n";}\r
-        }\r
-##-- Package action.\r
-\r
-    system("rm -rf $src/a.tmp");                ## Clean up junk.\r
-    system("rm -rf $out/a.tmp");                ## Clean up junk.\r
-    system("rm -rf $out/ziptemp");              ## Clean up junk.\r
-\r
-# End logging:\r
-    if ($odr->{logfile}->{def})   {$l->stop;}\r
-\r
-    return 0;\r
-    }                                           ## End subroutine main.\r
-\r
-$SIG{'INT'} = \&handler;\r
-$SIG{'QUIT'} = \&handler;\r
-\r
+#!perl -w
+
+#use strict;
+use FindBin;
+use File::Spec;
+use File::Basename;
+use lib "$FindBin::Bin/build/lib";
+use Getopt::Long;
+use Cwd;
+use XML::Simple;
+use Data::Dumper;
+use Archive::Zip;
+use Logger;
+require "copyfiles.pl";
+require "prunefiles.pl";
+require "signfiles.pl";
+require "zipXML.pl";
+
+my $BAIL;
+$0 = fileparse($0);
+my $OPT = {foo => 'bar'};
+my $MAKE = 'NMAKE';
+our $config;
+
+sub get_info {
+    my $cmd = shift || die;
+    my $which = $^X.' which.pl';
+    my $full = `$which $cmd`;
+    return 0 if ($? / 256);
+    chomp($full);
+    $full = "\"".$full."\"";
+    return { cmd => $cmd, full => $full};
+    }
+
+sub usage {
+    print <<USAGE;
+Usage: $0 [options] NMAKE-options
+
+  Options are case insensitive.
+
+  Options:
+    /help /?           usage information (what you now see).
+    /config /f path    Path to config file.  Default is bkwconfig.xml.
+    /srcdir /s dir     Source directory to use.  Should contain 
+                       pismere/athena.  If cvstag or svntag is null, 
+                       the directory should be prepopulated.
+    /outdir /o dir     Directory to be created where build results will go
+    /repository checkout | co \\  What repository action to take.
+       /r       update   | up \\  Options are to checkout, update, export
+                export   | ex \\  or skip (take no action).
+                skip        
+    /username /u name  username used to access svn if checking out.
+    /cvstag /c tag     use -r <tag> in cvs command
+    /svnbranch /b tag  use /branches/<tag> instead of /trunk.
+    /svntag /t tag     use /tags/<tag> instead of /trunk.
+    /debug /d          Do debug make instead of release make.
+    /[no]make          Control the make step.
+    /clean             Build clean target.
+    /[no]package       Control the packaging step.
+    /[no]sign          Control signing of executable files.
+    /verbose /v        Debug mode - verbose output.
+    /logfile /l path   Where to write output.  Default is bkw.pl.log.
+    /nolog             Don't save output.
+  Other:
+    NMAKE-options      any options you want to pass to NMAKE, which can be:
+                       (note: /nologo is always used)
+
+USAGE
+    system("$MAKE /?");
+    }
+
+sub handler {
+    my $sig = shift;
+    my $bailmsg = "Bailing out due to SIG$sig!\n";
+    my $warnmsg = <<EOH;
+*********************************
+* FUTURE BUILDS MAY FAIL UNLESS *
+* BUILD DIRECTORIES ARE CLEANED *
+*********************************
+EOH
+    $BAIL = $bailmsg.$warnmsg;
+}
+
+sub main {
+    local $cmdline = "bkw.pl";
+    foreach $arg (@ARGV) {$cmdline .= " $arg";}
+
+    Getopt::Long::Configure('no_bundling', 'no_auto_abbrev',
+           'no_getopt_compat', 'require_order',
+           'ignore_case', 'pass_through',
+           'prefix_pattern=(--|-|\+|\/)',
+           );
+
+    local @goargs   = ('config|f=s');
+    if (!GetOptions($OPT, @goargs)) {
+        Usage();
+        exit(0);
+        }
+
+    if (! exists $OPT->{config}) {$OPT->{config}  = "bkwconfig.xml";}
+    my $configfile  = $OPT->{config};
+    print "Info -- Reading configuration from $configfile.\n";
+    my $xml         = new XML::Simple();
+    $config         = $xml->XMLin($configfile); ## Read in configuration file.
+
+    # Set up convenience variables:
+    local $odr  = $config->{Config};    ## Options, directories, repository, environment.
+
+    # Build argument description from Config section of the XML,
+    #  to parse the rest of the arguments:
+    local @xmlargs;
+    while (($sw, $val) = each %$odr) {
+        local $arg  = $sw;
+        if (exists $val->{abbr})    {$arg .= "|$val->{abbr}";}
+        if (exists $val->{value})   {       ## Can't do both negations and string values.
+            $arg .= ":s";
+            }
+        else {    
+            if (! ($val->{def} =~ /A/)) {$arg .= "!";}
+            }
+        push @xmlargs, $arg;
+        }
+
+    if (!GetOptions($OPT, @xmlargs)) {$OPT->{help} = 1;}
+
+    if ( $OPT->{help} ) {
+        usage();
+        exit(0);
+        }
+        
+    delete $OPT->{foo};        
+
+##++ Validate required conditions:
+
+    # List of programs which must be in PATH:
+    my @required_list = ('sed', 'awk', 'which', 'cat', 'rm', 'cvs', 'svn', 'doxygen', 
+                         'hhc', 'candle', 'light', 'makensis', 'nmake', 'plink', 'filever');
+    my $requirements_met    = 1;
+    my $first_missing       = 0;
+    my $error_list          = "";
+    foreach my $required (@required_list) {
+        if (!get_info($required)) {
+            $requirements_met = 0;
+            if (!$first_missing) {
+                $first_missing = 1;
+                $error_list = "Fatal -- Environment problem!  The following program(s) are not in PATH:\n";
+                }
+            $error_list .= "$required\n";
+            }
+        }
+    if (!$requirements_met) {
+        print $error_list;
+        print "Info -- Update PATH or install the programs and try again.\n";
+        exit(0);
+        }
+
+##-- Validate required conditions.
+    
+    use Time::gmtime;
+    $ENV{DATE} = gmctime()." GMT";
+    our $originalDir = `cd`;
+    $originalDir =~ s/\n//g;
+
+##++ Assemble configuration from config file and command line:
+
+    my $bOutputCleaned  = 0;
+
+#while ($v = each %$OPT) {print "$v: $OPT->{$v}\n";}
+
+    # Scan the configuration for switch definitions:
+    while (($sw, $val) = each %$odr) {
+        next if (! exists $val->{def}); ## ?? Should always exist.
+
+        # Set/clear environment variables:
+        if ($val->{env}) {
+            if ($val->{def})    {$ENV{$sw}   = (exists $val->{value}) ? $val->{value} : 1; }
+            else                {delete $ENV{$sw};  }
+            }
+
+        # If the switch is in the command line, override the stored value:
+        if (exists $OPT->{$sw}) {
+            if (exists $val->{value}) {
+                $val->{value}   = $OPT->{$sw};  
+                $val->{def}     = 1;
+                }
+            else {
+                $val->{def}   = $OPT->{$sw};    ## If no<switch>, value will be zero.
+                }
+            }
+        # If the switch can be negated, test that, too:
+        if ( ! ($val->{def} =~ /A/)) {
+            local $nosw = "no".$sw;
+            if (exists $OPT->{$nosw}) {
+                $val->{def} = 0;
+                }
+            }
+    
+        # For any switch definition with fixed values ("options"), validate:
+        if (exists $val->{options}) {
+            local $bValid   = 0;
+            # options can be like value1|syn1 value2|syn2|syn3
+            foreach $option (split(/ /, $val->{options})) {
+                local $bFirst   = 1;
+                local $sFirst;
+                foreach $opt (split(/\|/, $option)) {
+                    # opt will be like value2, syn2, syn3
+                    if ($bFirst) {
+                        $sFirst = $opt; ## Remember the full name of the option.
+                        $bFirst = 0;
+                        }
+                    if ($val->{value} =~ /$opt/i) {
+                        $val->{value} = $sFirst;    ## Save the full name.
+                        $bValid = 1;
+                        }
+                    }
+                }
+            if (! $bValid) {
+                print "Fatal -- invalid $sw value $val->{value}.  Possible values are $val->{options}.\n";
+                usage();
+                die;
+                }
+            }
+        }
+
+    # Set up convenience variables:
+    our $verbose    = $odr->{verbose}->{def};
+    our $vverbose   = $odr->{vverbose}->{def};
+    our $clean      = $clean->{clean}->{def};
+    local $src      = $odr->{src}->{value};
+    local $out      = $odr->{out}->{value};
+
+    if ($clean && $odr->{package}->{def}) {
+        print "Info -- /clean forces /nopackage.\n";
+        $odr->{package}->{def} = 0;
+        }
+
+    if ($vverbose) {print "Debug -- Config: ".Dumper($config);}
+    
+    # Test the unix find command:
+    # List of directories where it might be:
+    my @find_dirs = ('c:\\cygwin\\bin', 'c:\\tools\\cygwin\\bin');
+    if (exists $odr->{unixfind}->{value})    {    ## Was an additional place to look specified?
+        push (@find_dirs, $odr->{unixfind}->{value});
+        }
+    my $bFindFound      = 0;
+    foreach my $dir (@find_dirs) {
+        if (-d $dir) {
+            local $savedPATH    = $ENV{PATH};
+            $ENV{PATH}          = $dir.";".$savedPATH;
+            if (-e "a.tmp") {!system("rm a.tmp")        or die "Fatal -- Couldn't clean temporary file a.tmp.";}
+            !system("find . -maxdepth 0 -name a.tmp > b.tmp 2>&1")  or die "Fatal -- find test failed.";
+            local $filesize = -s "b.tmp";
+            $ENV{PATH} = $savedPATH;
+            if ($filesize <= 0) {
+                $bFindFound                 = 1;
+                $odr->{unixfind}->{value}   = $dir;
+                last;
+                }
+            }
+        }
+    if (! $bFindFound) {
+        print "Fatal -- unix find command not found in \n";
+        map {print " $_ "} @find_dirs;
+        print "\n";
+        die;
+        }
+                
+    # Don't allow /svntag and /svnbranch simultaneously:
+    if ( (length $odr->{svntag}->{value} > 0)   && 
+         (length $odr->{svnbranch}->{value} > 0) ) {
+        die "Fatal -- Can't specify both /SVNTAG and /SVNBRANCH.";
+        }
+
+    # /logfile and /nolog interact:
+    if ($odr->{nolog}->{def})  {$odr->{logfile}->{def} = 0;}
+
+##-- Assemble configuration from config file and command line.
+
+    local $rverb = $odr->{repository}->{value};
+    if ( (($rverb =~ /checkout/) || ($rverb =~ /export/)) && $clean) {
+        print "Warning -- Because sources are being checked out, make clean will not be run.\n";
+        $clean  = $odr->{clean}->{def}    = 0;
+        }
+
+    my $wd  = $src."\\pismere";
+
+    if (! ($rverb =~ /skip/)) {
+        local $len = 0;
+        if (exists $odr->{username}->{value}) {
+            $len = length $odr->{username}->{value};
+            }
+        if ($len < 1) {
+            die "Fatal -- you won't get far accessing the repository without specifying a username.";
+            }
+        }
+
+    #                (------------------------------------------------)
+    if ( (-d $wd) && ( ($rverb =~ /export/) || ($rverb =~ /checkout/) ) ) {
+        print "\n\nHEADS UP!!\n\n";
+        print "/REPOSITORY ".uc($rverb)." will cause everything under $wd to be deleted.\n";
+        print "If this is not what you intended, here's your chance to bail out!\n\n\n";
+        print "Are you sure you want to remove everything under $wd? ";
+        my $char = getc;
+        if (! ($char =~ /y/i))  {die "Info -- operation aborted by user."}
+        !system("rm -rf $wd/*") or die "Fatal -- Couldn't clean $wd.";
+        !system("rmdir $wd")    or die "Fatal -- Couldn't remove $wd.";
+        }
+
+# Begin logging:
+    my $l;
+    if ($odr->{logfile}->{def}) {
+        print "Info -- logging to $odr->{logfile}->{value}.\n";
+        $l = new Logger $odr->{logfile}->{value};
+        $l->start;
+        $l->no_die_handler;        ## Needed so XML::Simple won't throw exceptions.
+        }
+
+    print "Executing $cmdline\n";
+    local $argvsize = @ARGV;
+    if ($argvsize > 0) {
+        print "\nArguments for NMAKE: ";
+        map {print " $_ "} @ARGV;
+        print "\n";
+        }
+       
+    print "Info -- Using unix find in $odr->{unixfind}->{value}\n"   if ($verbose);
+
+##++ Begin repository action:
+    if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n"    if ($verbose);}
+    else {
+        if ($verbose) {print "Info -- *** Begin fetching sources.\n";}
+        local $cvspath = "$src";
+        if (! -d $cvspath) {                        ## xcopy will create the entire path for us.
+            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;
+            !system("echo F | xcopy a.tmp $cvspath\\a.tmp") or die "Fatal -- Couldn't xcopy to $cvspath.";
+            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";
+            !system("rm $cvspath\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";
+            }
+        
+        # Set up cvs environment variables:
+        $ENV{CVSROOT}       = $odr->{CVSROOT}->{value};
+        local $krb5dir      = "$wd\\athena\\auth\\krb5";
+
+        local $cvscmdroot   = "cvs $rverb";
+        if (length $odr->{cvstag}->{value} > 0) {
+            $cvscmdroot .= " -r $odr->{cvstag}->{value}";
+            }
+
+        if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        
+            chdir($src)                                     or die "Fatal -- couldn't chdir to $src\n";
+            print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+            my @cvsmodules    = (    
+                'krb',  
+                'pismere/athena/util/lib/delaydlls', 
+                'pismere/athena/util/lib/getopt', 
+                'pismere/athena/util/guiwrap'
+                );
+            foreach my $module (@cvsmodules) {
+                local $cvscmd = $cvscmdroot." ".$module;
+                if ($verbose) {print "Info -- cvs command: $cvscmd\n";}
+                !system("$cvscmd") or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";
+                }
+            }
+        else {                ## Update.
+            chdir($wd)                                      or die "Fatal -- couldn't chdir to $wd\n";
+            print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+            if ($verbose) {print "Info -- cvs command: $cvscmdroot\n";}
+            !system($cvscmdroot)    or die "Fatal -- command \"$cvscmdroot\" failed; return code $?\n";
+            }
+
+        # Set up svn environment variable:
+        $ENV{SVN_SSH} = "plink.exe";
+        # If  the directory structure doesn't exist, many cd commands will fail.
+        if (! -d $krb5dir) {                                ## xcopy will create the entire path for us.
+            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;
+            !system("echo F | xcopy a.tmp $krb5dir\\a.tmp") or die "Fatal -- Couldn't xcopy to $krb5dir.";
+            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";
+            !system("rm $krb5dir\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";
+            }
+
+        chdir($krb5dir)                                 or die "Fatal -- Couldn't chdir to $krb5dir";
+        print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+        my $svncmd = "svn $rverb ";
+        if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        # Append the rest of the checkout/export command:
+            chdir("..");
+            if ($rverb =~ /export/) {
+                ## svn export will fail if the destination directory exists
+                rmdir "krb5";
+            }       
+            $svncmd .= "svn+ssh://".$odr->{username}->{value}."@".$odr->{SVNURL}->{value}."/krb5/";
+            if (length $odr->{svntag}->{value} > 0) {
+                $svncmd .= "tags/$odr->{svntag}->{value}";
+                }
+            elsif (length $odr->{svnbranch}->{value} > 0) {
+                $svncmd .= "branches/$odr->{svnbranch}->{value}";
+                }
+            else {
+                $svncmd .= "trunk";
+                }
+
+            $svncmd .= " krb5";
+
+            }
+        if ($verbose) {print "Info -- svn command: $svncmd\n";}
+        !system($svncmd)            or die "Fatal -- command \"$svncmd\" failed; return code $?\n";
+        if ($verbose) {print "Info -- ***   End fetching sources.\n";}
+        }
+##-- End  repository action.
+        
+    ##++ Read in the version information to be able to update the 
+    #  site-local files in the install build areas.
+    # ** Do this now (after repository update and before first zip) 
+    #    because making zip files requires some configuration data be set up.
+    local $version_path = $config->{Stages}->{Package}->{Config}->{Paths}->{Versions}->{path};
+    open(DAT, "$src/$version_path")     or die "Could not open $version_path.";
+    @raw = <DAT>;
+    close DAT;
+    foreach $line (@raw) {
+        chomp $line;
+        if ($line =~ /#define/) {                   # Process #define lines:
+            $line =~ s/#define//;                   # Remove #define token
+            $line =~ s/^\s+//;                      #  and leading & trailing whitespace
+            $line =~ s/\s+$//;
+            local @qr = split("\"", $line);         # Try splitting with quotes
+            if (exists $qr[1]) {
+                $qr[0] =~ s/^\s+//;                 #  Clean up whitespace
+                $qr[0] =~ s/\s+$//;
+                $config->{Versions}->{$qr[0]} = $qr[1]; # Save string
+                }
+            else {                                  # No quotes, so
+                local @ar = split(" ", $line);      #  split with space
+                $ar[0] =~ s/^\s+//;                 #  Clean up whitespace
+                $ar[0] =~ s/\s+$//;
+                $config->{Versions}->{$ar[0]} = $ar[1]; # and  save numeric value
+                }
+            }
+        }
+    
+    # Check that the versions we will need for site-local have been defined:
+    my @required_versions = ('VER_PROD_MAJOR', 'VER_PROD_MINOR', 'VER_PROD_REV', 
+                             'VER_PROD_MAJOR_STR', 'VER_PROD_MINOR_STR', 'VER_PROD_REV_STR', 
+                             'VER_PRODUCTNAME_STR');
+    $requirements_met   = 1;
+    $first_missing      = 0;
+    $error_list         = "";
+    foreach my $required (@required_versions) {
+        if (! exists $config->{Versions}->{$required}) {
+            $requirements_met = 0;
+            if (!$first_missing) {
+                $first_missing = 1;
+                $error_list = "Fatal -- The following version(s) are not defined in $src/$version_path.\n";
+                }
+            $error_list .= "$required\n";
+            }
+        }
+    if (!$requirements_met) {
+        print $error_list;
+        exit(0);
+        }
+    
+    # Apply any of these tags to filestem:
+    my $filestem    = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};
+    $filestem       =~ s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/;
+    $filestem       =~ s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/;
+    $filestem       =~ s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/;
+    $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name}    = $filestem;
+    ##-- Read in the version information & set config info.
+
+##++ Repository action, part 2:
+    if (($rverb =~ /checkout/) || ($rverb =~ /export/)) {        
+       if (! $bOutputCleaned) {                    ## In case somebody cleaned $out before us.
+           if (-d $out)    {!system("rm -rf $out/*")   or die "Fatal -- Couldn't clean $out."}    ## Clean output directory.
+           else            {mkdir($out);}
+           $bOutputCleaned = 1;
+           }
+       zipXML($config->{Stages}->{FetchSources}, $config); ## Make zips.
+       }
+##-- End  repository action, part 2.
+
+##++ Make action:
+    if (    ($odr->{make}->{def}) ) {
+        if ($verbose) {print "Info -- *** Begin preparing for build.\n";}
+
+        chdir("$wd") or die "Fatal -- couldn't chdir to $wd\n";
+        print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+    
+        my ($path, $destpath);
+        
+        # Copy athena\scripts\site\graft\krb5\Makefile.src to athena\auth\krb5:
+        $path = "scripts\\site\\graft\\krb5\\Makefile.src";
+        if (!-e  $path) {die "Fatal -- Expected file $wd\\$path not found.";}
+        $destpath = "athena\\auth\\krb5\\Makefile.src";
+        !system("echo F | xcopy /D $wd\\$path $wd\\$destpath /Y > NUL") or die "Fatal -- Copy of $wd\\$path to $wd\\$destpath failed.";
+        print "Info -- copied $wd\\$path to $wd\\$destpath\n"   if ($verbose);;
+        
+        # Add DEBUG_SYMBOL to .../wshelper/Makefile.src:
+        $path = "athena\\wshelper\\wshelper\\Makefile.src";
+        if (!-e  $path) {die "Fatal -- Expected file $wd\\$path not found.";}
+        if (system("grep DEBUG_SYMBOL $path > NUL") != 0) {
+            !system ("echo DEBUG_SYMBOL=1 >> $wd\\$path") or die "Fatal -- Append line to file failed.\n";
+            print "Info -- Added DEBUG_SYMBOL to $wd\\$path\n"  if ($verbose);
+            }
+        
+        # Prune any unwanted directories before the build:
+        pruneFiles($config->{Stages}->{Make}, $config);
+
+        if ($verbose) {print "Info -- ***   End preparing for build.\n";}
+    
+        my ($buildtarget, $buildtext);
+        if ($clean) {
+            $buildtarget = "clean" ;
+            $buildtext   = " clean."
+            }
+        else {
+            $buildtarget = "" ;
+            $buildtext   = "."
+            }
+        
+        chdir("$wd\\athena") or die "Fatal -- couldn't chdir to source directory $wd\\athena\n";
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+        local $dbgswitch = ($odr->{debug}->{def}) ? " " : "NODEBUG=1";
+        !system("perl ../scripts/build.pl --softdirs --nolog $buildtarget $dbgswitch BUILD_KFW=1 BUILD_OFFICIAL=1 DEBUG_SYMBOL=1")
+            or die "Fatal -- build $buildtarget failed.";
+            
+        chdir("$wd")                        or die "Fatal -- couldn't chdir to $wd.";
+        print "Info -- chdir to ".`cd`."\n" if ($verbose);
+        if ($clean) {
+            if (-d "staging") {
+                !system("rm -rf staging")   or die "Fatal -- Couldn't remove $wd\\staging.";
+                }
+            }
+    
+        if ($verbose) {print "Info -- ***   End build".$buildtext."\n";}
+        }                                           ## End make conditional.
+    else {print "Info -- *** Skipping build.\n"    if ($verbose);}
+##-- Make action.
+        
+##++ Package action:
+    if (! $odr->{package}->{def}) {      ## If /clean, nopackage will be set.
+        print "Info -- *** Skipping packaging.\n";
+        if ((-d $out) && ! $bOutputCleaned) {
+            print "Warning -- *** Output directory $out will not be cleaned.\n";
+            }
+        }
+    else {
+        if ($verbose) {print "Info -- *** Begin prepackage.\n";}
+
+        if (! $bOutputCleaned) {                        ## In case somebody cleaned $out before us.
+            if (-d $out)    {!system("rm -rf $out/*")   or die "Fatal -- Couldn't clean $out."}    ## Clean output directory.
+            else            {mkdir($out);}
+            $bOutputCleaned = 1;
+            }
+
+        # The build results are copied to a staging area, where the packager expects to find them.
+        #  We put the staging area in the fixed area .../pismere/staging.
+        my $prepackage  = $config->{Stages}->{PrePackage};
+        my $staging     = "$wd\\staging";
+        chdir($wd)                          or die "Fatal -- couldn't chdir to $wd\n";
+        print "Info -- chdir to ".`cd`."\n" if ($verbose);
+        if (-d "staging") {
+            !system("rm -rf $staging/*")        or die "Fatal -- Couldn't clean $staging.";
+            }
+        else {
+            mkdir($staging)                     or die "Fatal -- Couldn't create $staging.";
+            }
+        
+        # Force Where From and To are relative to:
+        $prepackage->{CopyList}->{Config}->{From}->{root}   = "$wd\\athena";
+        $prepackage->{CopyList}->{Config}->{To}->{root}     = "$wd\\staging";
+        copyFiles($prepackage->{CopyList}, $config);        ## Copy any files [this step takes a while]
+
+        # Sign files:
+        chdir($staging) or die "Fatal -- couldn't chdir to $staging\n";
+        print "Info -- chdir to ".`cd`."\n"     if ($verbose);
+        if ($odr->{sign}->{def}) {
+            signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config);
+            }
+            
+        # Create working directories for building the installers:
+        if (-d "$wd\\buildwix")    {!system("rm -rf $wd\\buildwix/*")               or die "Fatal -- Couldn't clean $wd\\buildwix."}    
+        !system("echo D | xcopy /s $wd\\staging\\install\\wix\\*.* $wd\\buildwix")  or die "Fatal -- Couldn't create $wd\\buildwix.";
+        if (-d "$wd\\buildnsi")    {!system("rm -rf $wd\\buildnsi/*")               or die "Fatal -- Couldn't clean $wd\\buildnsi."}    
+        !system("echo D | xcopy /s $wd\\staging\\install\\nsis\\*.* $wd\\buildnsi") or die "Fatal -- Couldn't create $wd\\buildnsi.";
+
+        chdir("$staging\\install\\wix") or die "Fatal -- Couldn't cd to $staging\\install\\wix";
+        print "Info -- chdir to ".`cd`."\n"     if ($verbose);
+        # Correct errors in files.wxi:
+        !system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi.";
+        !system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi.";
+            
+        # Make sed script to run on the site-local configuration files:
+        local $tmpfile      = "site-local.sed" ;
+        if (-e $tmpfile) {system("del $tmpfile");}
+        # Basic substitutions:
+        local $dblback_wd   = $wd;
+        $dblback_wd         =~ s/\\/\\\\/g;
+        !system("echo s/%BUILDDIR%/$dblback_wd/ >> $tmpfile")               or die "Fatal -- Couldn't modify $tmpfile.";    
+        local $dblback_staging  = "$wd\\staging";
+        $dblback_staging        =~ s/\\/\\\\/g;
+        !system("echo s/%TARGETDIR%/$dblback_staging/ >> $tmpfile")         or die "Fatal -- Couldn't modify $tmpfile.";    
+        local $dblback_sample   = "$wd\\staging\\sample";
+        $dblback_sample         =~ s/\\/\\\\/g;
+        !system("echo s/%CONFIGDIR-WIX%/$dblback_sample/ >> $tmpfile")      or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo s/%CONFIGDIR-NSI%/$dblback_staging/ >> $tmpfile")     or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/ >> $tmpfile")  or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/ >> $tmpfile")  or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/ >> $tmpfile")    or die "Fatal -- Couldn't modify $tmpfile.";    
+        # Strip out some defines so they can be replaced:  [used for site-local.nsi]
+        !system("echo /\^!define\.\*RELEASE\.\*\$/d >> $tmpfile")           or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo /\^!define\.\*DEBUG\.\*\$/d >> $tmpfile")             or die "Fatal -- Couldn't modify $tmpfile.";    
+        !system("echo /\^!define\.\*BETA\.\*\$/d >> $tmpfile")              or die "Fatal -- Couldn't modify $tmpfile.";    
+
+        # Run the script on site-local.wxi:
+        !system("sed -f $tmpfile site-local-tagged.wxi > $wd\\buildwix\\site-local.wxi")   or die "Fatal -- Couldn't modify site-local.wxi.";
+
+        # Now update site-local.nsi:
+        chdir "..\\nsis";
+        print "Info -- chdir to ".`cd`."\n"                                 if ($verbose);
+        !system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp")   or die "Fatal -- Couldn't modify site-local.wxi.";
+        # Add DEBUG or RELEASE:
+        if ($odr->{debug}->{def}) {                    ## debug build
+            !system("echo !define DEBUG >> b.tmp")     or die "Fatal -- Couldn't modify b.tmp.";    
+            }
+        else {                                         ## release build
+            !system("echo !define RELEASE >> b.tmp")   or die "Fatal -- Couldn't modify b.tmp.";
+            }
+        # Add BETA if present:
+        if (exists $config->{Versions}->{'BETA_STR'}) {
+            !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp.";    
+            }
+        !system("mv -f b.tmp $wd\\buildnsi\\site-local.nsi")                        or die "Fatal -- Couldn't replace site-local.nsi.";
+
+        # Run the script on nsi-includes-tagged.nsi:
+        !system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > $wd\\buildnsi\\nsi-includes.nsi")  or die "Fatal -- Couldn't modify nsi-includes.nsi.";
+        !system("rm ..\\wix\\$tmpfile")                                     or die "Fatal -- Couldn't remove $tmpfile.";
+
+        if ($verbose) {print "Info -- ***   End prepackage.\n";}
+        
+        if ($verbose) {print "Info -- *** Begin package.\n";}
+        # Make the msi:
+        chdir("$wd\\buildwix")                      or die "Fatal -- Couldn't cd to $wd\\buildwix";
+        print "Info -- *** Make .msi:\n"            if ($verbose);
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+        !system("$MAKE")                            or die "Error -- msi installer build failed.";
+                
+        chdir("$wd\\buildnsi")                      or die "Fatal -- Couldn't cd to $wd\\buildnsi";
+        print "Info -- *** Make NSIS:\n"            if ($verbose);
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+        !system("cl.exe killer.cpp advapi32.lib")   or die "Error -- nsis killer.exe not built.";
+        !system("rename killer.exe Killer.exe")     or die "Error -- Couldn't rename killer.exe";
+        !system("makensis kfw.nsi")                 or die "Error -- executable installer build failed.";
+
+# Begin packaging extra items:
+        chdir($wd)                                  or die "Fatal -- Couldn't cd to $wd";
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+
+        zipXML($config->{Stages}->{PostPackage}, $config);                      ## Make zips.
+
+        $config->{Stages}->{PostPackage}->{CopyList}->{Config} = $config->{Stages}->{PostPackage}->{Config};    ## Use the post package config.
+        $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{From}->{root}  = "$src\\pismere";
+        $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{To}->{root}    = $out;
+        copyFiles($config->{Stages}->{PostPackage}->{CopyList}, $config);       ## Copy any files
+
+        !system("rm -rf $wd\\buildwix")             or die "Fatal -- Couldn't remove $wd\\buildwix.";
+        !system("rm -rf $wd\\buildnsi")             or die "Fatal -- Couldn't remove $wd\\buildnsi.";
+
+        chdir($out)                                 or die "Fatal -- Couldn't cd to $out";
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+        if ($odr->{sign}->{def}) {
+            signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config);
+            }
+
+        if ($verbose) {print "Info -- ***   End package.\n";}
+        }
+##-- Package action.
+
+    system("rm -rf $src/a.tmp");                ## Clean up junk.
+    system("rm -rf $out/a.tmp");                ## Clean up junk.
+    system("rm -rf $out/ziptemp");              ## Clean up junk.
+
+# End logging:
+    if ($odr->{logfile}->{def})   {$l->stop;}
+
+    return 0;
+    }                                           ## End subroutine main.
+
+$SIG{'INT'} = \&handler;
+$SIG{'QUIT'} = \&handler;
+
 exit(main());
\ No newline at end of file
index d0767b071dbdfa406e01a1a510d4ae767d713677..7cff6f53f3597a897281f2fd62a39227e809680a 100644 (file)
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8" ?>\r
-<!-- BKW: Build Kerberos for Windows -->\r
-<BKW_Config>\r
-    <Config>\r
-        <!-- Options: -->\r
-        <repository def="1" value="skip" options="skip checkout|co update|up" />\r
-        <src        def="A" value="C:\KfW" />        <!-- Must be absolute path. -->\r
-\r
-        <!-- Repository settings: -->\r
-        <cvstag     def="0" value="" />\r
-        <svntag     def="0" value="" />\r
-        <svnbranch  def="0" value="" />\r
-        <CVSROOT    def="A" value=":kserver:cvs.mit.edu:/cvs/pismere" />\r
-        <SVNURL     def="A" value="svn.mit.edu" />   <!-- NB:  No protocol or slashes!! -->\r
-        <username   def="0" value="" />  <!-- Needed for svn/plink.  Override from command line -->\r
-\r
-        </Config>\r
-\r
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- BKW: Build Kerberos for Windows -->
+<BKW_Config>
+    <Config>
+        <!-- Options: -->
+        <repository def="1" value="skip" options="skip checkout|co update|up" />
+        <src        def="A" value="C:\KfW" />        <!-- Must be absolute path. -->
+
+        <!-- Repository settings: -->
+        <cvstag     def="0" value="" />
+        <svntag     def="0" value="" />
+        <svnbranch  def="0" value="" />
+        <CVSROOT    def="A" value=":kserver:cvs.mit.edu:/cvs/pismere" />
+        <SVNURL     def="A" value="svn.mit.edu" />   <!-- NB:  No protocol or slashes!! -->
+        <username   def="0" value="" />  <!-- Needed for svn/plink.  Override from command line -->
+
+        </Config>
+
 </BKW_Config>
\ No newline at end of file
index 53f84072cb937f5a3a9ca55653f30b1fbb957aec..305b9660305f255db3836db25916fd7360c70aae 100644 (file)
-#!perl -w\r
-\r
-#use strict;\r
-\r
-sub commandandcontrol {\r
-    local ($configdefault, $bIgnoreCmdlineConfig)   = @_;\r
-    local $OPT = {foo => 'bar'};\r
-\r
-    Getopt::Long::Configure('no_bundling', 'no_auto_abbrev',\r
-           'no_getopt_compat', 'require_order',\r
-           'ignore_case', 'pass_through',\r
-           'prefix_pattern=(--|-|\+|\/)'\r
-           );\r
-    GetOptions($OPT,\r
-           'help|h|?',\r
-           'cvstag|c:s',\r
-           'svntag|s:s',\r
-           'svnbranch|b:s',\r
-           'src|r:s',\r
-           'out|o:s',\r
-           'debug|d',\r
-           'nodebug',\r
-           'config|f=s',\r
-           'logfile|l:s',\r
-           'nolog',\r
-           'repository:s',\r
-           'username|u:s',\r
-           'verbose|v',\r
-           'vverbose',\r
-           'make!',\r
-           'clean',\r
-           'package!',\r
-           'sign!',\r
-           );\r
-\r
-    if ( $OPT->{help} ) {\r
-        usage();\r
-        exit(0);\r
-        }\r
-        \r
-    delete $OPT->{foo};\r
-\r
-    local $argvsize = @ARGV;\r
-    if ($argvsize > 0) {\r
-        print "Error -- invalid argument:  $ARGV[0]\n";\r
-        usage();\r
-        die;\r
-        }\r
-    # The first time C&C is called, it is OK to override the default (./bkwconfig.xml)\r
-    #   with a value from the command line.\r
-    # The second time C&C is called, the repository has been updated and C&C will be passed\r
-    #   <src>/pismere/athena/auth/krb5/windows/build/bkwconfig.xml.  That value MUST be used.\r
-    if ($bIgnoreCmdlineConfig)      {$OPT->{config} = $configdefault;}\r
-    elsif (! exists $OPT->{config}) {$OPT->{config} = $configdefault;}\r
-\r
-    my $configfile      = $OPT->{config};\r
-    my $bOutputCleaned  = 0;\r
-\r
-    print "Info -- Reading configuration from $configfile.\n";\r
-\r
-    # Get configuration file:\r
-    local $xml = new XML::Simple();\r
-    my $config = $xml->XMLin($configfile);\r
-    # Set up convenience variables:\r
-    local $odr  = $config->{Config};    ## Options, directories, repository, environment.\r
-\r
-#while ($v = each %$OPT) {print "$v: $OPT->{$v}\n";}\r
-\r
-    # Scan the configuration for switch definitions:\r
-    while (($sw, $val) = each %$odr) {\r
-        next if (! exists $val->{def}); ## ?? Should always exist.\r
-\r
-        # Set/clear environment variables:\r
-        if ($val->{env}) {\r
-            if ($val->{def})    {$ENV{$sw}   = (exists $val->{value}) ? $val->{value} : 1; }\r
-            else                {delete $ENV{$sw};  }\r
-            }\r
-\r
-        # If the switch is in the command line, override the stored value:\r
-        if (exists $OPT->{$sw}) {\r
-            if (exists $val->{value}) {\r
-                $val->{value}   = $OPT->{$sw};  \r
-                $val->{def}     = 1;\r
-                }\r
-            else {\r
-                $val->{def}   = $OPT->{$sw};    ## If no<switch>, value will be zero.\r
-                }\r
-            }\r
-        # If the switch can be negated, test that, too:\r
-        if ( ! ($val->{def} =~ /A/)) {\r
-            local $nosw = "no".$sw;\r
-            if (exists $OPT->{$nosw}) {\r
-                $val->{def} = 0;\r
-                }\r
-            }\r
-    \r
-        # For any switch definition with fixed values ("options"), validate:\r
-        if (exists $val->{options}) {\r
-            local $bValid   = 0;\r
-            # options can be like value1|syn1 value2|syn2|syn3\r
-            foreach $option (split(/ /, $val->{options})) {\r
-                local $bFirst   = 1;\r
-                local $sFirst;\r
-                foreach $opt (split(/\|/, $option)) {\r
-                    # opt will be like value2, syn2, syn3\r
-                    if ($bFirst) {\r
-                        $sFirst = $opt; ## Remember the full name of the option.\r
-                        $bFirst = 0;\r
-                        }\r
-                    if ($val->{value} =~ /$opt/i) {\r
-                        $val->{value} = $sFirst;    ## Save the full name.\r
-                        $bValid = 1;\r
-                        }\r
-                    }\r
-                }\r
-            if (! $bValid) {\r
-                print "Fatal -- invalid $sw value $val->{value}.  Possible values are $val->{options}.\n";\r
-                usage();\r
-                die;\r
-                }\r
-            }\r
-        }\r
-\r
-    # Don't allow /svntag and /svnbranch simultaneously:\r
-    if ( (length $odr->{svntag}->{value} > 0)   && \r
-         (length $odr->{svnbranch}->{value} > 0) ) {\r
-        die "Fatal -- Can't specify both /SVNTAG and /SVNBRANCH.";\r
-        }\r
-\r
-    return $config;\r
-    }\r
-    \r
-\r
-sub usage {\r
-    print <<USAGE;\r
-Usage: $0 [options] NMAKE-options\r
-\r
-  Options are case insensitive.\r
-\r
-  Options:\r
-    /help /?           usage information (what you now see).\r
-    /config /f path    Path to config file.  Default is bkwconfig.xml.\r
-    /srcdir /r dir     Source directory to use.  Should contain \r
-                       pismere/athena.  If cvstag or svntag is null, \r
-                       the directory should be prepopulated.\r
-    /outdir /o dir     Directory to be created where build results will go\r
-    /repository checkout | co \\  What repository action to take.\r
-                update   | up  ) Options are to checkout, update or \r
-                skip          /  take no action [skip].\r
-    /username /u name  username used to access svn if checking out.\r
-    /cvstag /c tag     use -r <tag> in cvs command\r
-    /svnbranch /b tag  use /branches/<tag> instead of /trunk.\r
-    /svntag /s tag     use /tags/<tag> instead of /trunk.\r
-    /debug /d          Do debug make instead of release make.\r
-    /[no]make          Control the make step.\r
-    /clean             Build clean target.\r
-    /[no]package       Control the packaging step.\r
-    /[no]sign          Control signing of executable files.\r
-    /verbose /v        Debug mode - verbose output.\r
-    /logfile /l path   Where to write output.  Default is bkw.pl.log.\r
-    /nolog             Don't save output.\r
-  Other:\r
-    NMAKE-options      any options you want to pass to NMAKE, which can be:\r
-                       (note: /nologo is always used)\r
-\r
-USAGE\r
-    system("$MAKE /?");\r
-    }\r
-\r
+#!perl -w
+
+#use strict;
+
+sub commandandcontrol {
+    local ($configdefault, $bIgnoreCmdlineConfig)   = @_;
+    local $OPT = {foo => 'bar'};
+
+    Getopt::Long::Configure('no_bundling', 'no_auto_abbrev',
+           'no_getopt_compat', 'require_order',
+           'ignore_case', 'pass_through',
+           'prefix_pattern=(--|-|\+|\/)'
+           );
+    GetOptions($OPT,
+           'help|h|?',
+           'cvstag|c:s',
+           'svntag|s:s',
+           'svnbranch|b:s',
+           'src|r:s',
+           'out|o:s',
+           'debug|d',
+           'nodebug',
+           'config|f=s',
+           'logfile|l:s',
+           'nolog',
+           'repository:s',
+           'username|u:s',
+           'verbose|v',
+           'vverbose',
+           'make!',
+           'clean',
+           'package!',
+           'sign!',
+           );
+
+    if ( $OPT->{help} ) {
+        usage();
+        exit(0);
+        }
+        
+    delete $OPT->{foo};
+
+    local $argvsize = @ARGV;
+    if ($argvsize > 0) {
+        print "Error -- invalid argument:  $ARGV[0]\n";
+        usage();
+        die;
+        }
+    # The first time C&C is called, it is OK to override the default (./bkwconfig.xml)
+    #   with a value from the command line.
+    # The second time C&C is called, the repository has been updated and C&C will be passed
+    #   <src>/pismere/athena/auth/krb5/windows/build/bkwconfig.xml.  That value MUST be used.
+    if ($bIgnoreCmdlineConfig)      {$OPT->{config} = $configdefault;}
+    elsif (! exists $OPT->{config}) {$OPT->{config} = $configdefault;}
+
+    my $configfile      = $OPT->{config};
+    my $bOutputCleaned  = 0;
+
+    print "Info -- Reading configuration from $configfile.\n";
+
+    # Get configuration file:
+    local $xml = new XML::Simple();
+    my $config = $xml->XMLin($configfile);
+    # Set up convenience variables:
+    local $odr  = $config->{Config};    ## Options, directories, repository, environment.
+
+#while ($v = each %$OPT) {print "$v: $OPT->{$v}\n";}
+
+    # Scan the configuration for switch definitions:
+    while (($sw, $val) = each %$odr) {
+        next if (! exists $val->{def}); ## ?? Should always exist.
+
+        # Set/clear environment variables:
+        if ($val->{env}) {
+            if ($val->{def})    {$ENV{$sw}   = (exists $val->{value}) ? $val->{value} : 1; }
+            else                {delete $ENV{$sw};  }
+            }
+
+        # If the switch is in the command line, override the stored value:
+        if (exists $OPT->{$sw}) {
+            if (exists $val->{value}) {
+                $val->{value}   = $OPT->{$sw};  
+                $val->{def}     = 1;
+                }
+            else {
+                $val->{def}   = $OPT->{$sw};    ## If no<switch>, value will be zero.
+                }
+            }
+        # If the switch can be negated, test that, too:
+        if ( ! ($val->{def} =~ /A/)) {
+            local $nosw = "no".$sw;
+            if (exists $OPT->{$nosw}) {
+                $val->{def} = 0;
+                }
+            }
+    
+        # For any switch definition with fixed values ("options"), validate:
+        if (exists $val->{options}) {
+            local $bValid   = 0;
+            # options can be like value1|syn1 value2|syn2|syn3
+            foreach $option (split(/ /, $val->{options})) {
+                local $bFirst   = 1;
+                local $sFirst;
+                foreach $opt (split(/\|/, $option)) {
+                    # opt will be like value2, syn2, syn3
+                    if ($bFirst) {
+                        $sFirst = $opt; ## Remember the full name of the option.
+                        $bFirst = 0;
+                        }
+                    if ($val->{value} =~ /$opt/i) {
+                        $val->{value} = $sFirst;    ## Save the full name.
+                        $bValid = 1;
+                        }
+                    }
+                }
+            if (! $bValid) {
+                print "Fatal -- invalid $sw value $val->{value}.  Possible values are $val->{options}.\n";
+                usage();
+                die;
+                }
+            }
+        }
+
+    # Don't allow /svntag and /svnbranch simultaneously:
+    if ( (length $odr->{svntag}->{value} > 0)   && 
+         (length $odr->{svnbranch}->{value} > 0) ) {
+        die "Fatal -- Can't specify both /SVNTAG and /SVNBRANCH.";
+        }
+
+    return $config;
+    }
+    
+
+sub usage {
+    print <<USAGE;
+Usage: $0 [options] NMAKE-options
+
+  Options are case insensitive.
+
+  Options:
+    /help /?           usage information (what you now see).
+    /config /f path    Path to config file.  Default is bkwconfig.xml.
+    /srcdir /r dir     Source directory to use.  Should contain 
+                       pismere/athena.  If cvstag or svntag is null, 
+                       the directory should be prepopulated.
+    /outdir /o dir     Directory to be created where build results will go
+    /repository checkout | co \\  What repository action to take.
+                update   | up  ) Options are to checkout, update or 
+                skip          /  take no action [skip].
+    /username /u name  username used to access svn if checking out.
+    /cvstag /c tag     use -r <tag> in cvs command
+    /svnbranch /b tag  use /branches/<tag> instead of /trunk.
+    /svntag /s tag     use /tags/<tag> instead of /trunk.
+    /debug /d          Do debug make instead of release make.
+    /[no]make          Control the make step.
+    /clean             Build clean target.
+    /[no]package       Control the packaging step.
+    /[no]sign          Control signing of executable files.
+    /verbose /v        Debug mode - verbose output.
+    /logfile /l path   Where to write output.  Default is bkw.pl.log.
+    /nolog             Don't save output.
+  Other:
+    NMAKE-options      any options you want to pass to NMAKE, which can be:
+                       (note: /nologo is always used)
+
+USAGE
+    system("$MAKE /?");
+    }
+
 return 1;
\ No newline at end of file
index 79b6e156baae1aab5730ee80fd4f6bd5f62fd825..9f9ccdde6809dafbe1105238704b085c3e1b5c07 100644 (file)
-#!perl -w\r
-\r
-#use strict;\r
-use XML::Simple;\r
-use Data::Dumper;\r
-\r
-sub copyFiles {\r
-    local ($xml, $config)   = @_;\r
-    local @odr              = $config->{Config};\r
-    local @files            = $xml->{Files};\r
-    # Check for includes:\r
-    if (exists $xml->{Files}->{Include}->{path}) {\r
-        my $includepath    = $xml->{Files}->{Include}->{path};\r
-        print "Info -- Including files from $includepath\n";\r
-        my $savedDir = `cd`;\r
-        $savedDir =~ s/\n//g;\r
-        chdir $originalDir;                         ## Includes are relative to where we were invoked.\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-        my $tmp    = new XML::Simple;\r
-        my $includeXML = $tmp->XMLin($includepath);\r
-        chdir $savedDir;\r
-        print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-\r
-        local $i = 0;\r
-        while ($includeXML->{File}[$i]) {           ## Copy File entries from includeXML.\r
-            $files[0]->{File}[++$#{$files[0]->{File}}] = $includeXML->{File}[$i];        \r
-            $i++;\r
-            }\r
-        delete $files->{Include};\r
-        }\r
-    ##++ Set up path substitution variables for use inside the copy loop:\r
-    # A path can contain a variable part, which will be handled here.  If the variable part is \r
-    # the Always or BuildDependent tag, then the variable will be changed to the \r
-    # build-type-dependent PathFragment.\r
-    # If the variable part is the IgnoreTag, then the file will not be copied.\r
-    # If the variable part is %filestem%, it will be replaced with Config->FileStem->name.\r
-    my ($PathFragment, $BuildDependentTag, $IgnoreTag, $FileStemFragment, $fromRoot, $toRoot); \r
-    my $bPathTags    = (exists $xml->{Config}->{DebugArea}) && (exists $xml->{Config}->{ReleaseArea});\r
-    my $bFileStem    = (exists $xml->{Config}->{FileStem});\r
-    \r
-    if ($odr->{debug}->{def}) {   ## Debug build tags:\r
-        $PathFragment       = $xml->{Config}->{DebugArea}->{value};\r
-        $BuildDependentTag  = $xml->{Config}->{DebugTag}->{value};\r
-        $IgnoreTag          = $xml->{Config}->{ReleaseTag}->{value};\r
-        }\r
-    else {                                  ## Release build tags:\r
-        $PathFragment       = $xml->{Config}->{ReleaseArea}->{value};\r
-        $BuildDependentTag  = $xml->{Config}->{ReleaseTag}->{value};\r
-        $IgnoreTag          = $xml->{Config}->{DebugTag}->{value};\r
-        }            \r
-    my $AlwaysTag           = $xml->{Config}->{AlwaysTag}->{value};\r
-    $FileStemFragment       = $xml->{Config}->{FileStem}->{name};    \r
-    $fromRoot               = $xml->{Config}->{From}->{root};    \r
-    $toRoot                 = $xml->{Config}->{To}->{root};    \r
-    ##-- Set up path substitution variables for use inside the copy loop.\r
-    # For each file in the file list:\r
-    #  Substitute any variable parts of the path name.\r
-    #  Handle wildcards\r
-    #  Copy\r
-\r
-    local $i    = 0;\r
-    my $bOldDot = 1;\r
-    my $bDot    = 0;\r
-    while ($files[0]->{File}[$i]) {\r
-\r
-        my ($name, $newname, $from, $to, $file);\r
-        $file   = $files[0]->{File}->[$i];\r
-        $name   = $file->{name};\r
-        if (exists $file->{newname})    {$newname = $file->{newname};}\r
-        else                            {$newname = $name;}\r
-        if ($name && (! exists $file->{ignore})) {      ## Ignore or process this entry?\r
-            $from   = "$fromRoot\\$file->{from}\\$name";\r
-            $to     = "$toRoot\\$file->{to}\\$newname";\r
-            # Copy this file?  Check for ignore tag [debug-only in release mode or vice versa].\r
-            if ( $bPathTags || $bFileStem || (index($from.$to, $IgnoreTag) <0) ) {  \r
-                if ($bPathTags) {                                   ## Apply PathTag substitutions:\r
-                    $from   =~ s/$AlwaysTag/$PathFragment/g;\r
-                    $to     =~ s/$AlwaysTag/$PathFragment/g;\r
-                    $from   =~ s/$BuildDependentTag/$PathFragment/g;\r
-                    $to     =~ s/$BuildDependentTag/$PathFragment/g;\r
-                    }\r
-                if ($bFileStem) {                                   ## FileStem substitution?\r
-                    $from   =~ s/%filestem%/$FileStemFragment/g;\r
-                    $to     =~ s/%filestem%/$FileStemFragment/g;\r
-                    }        \r
-                # %-DEBUG% substitution:\r
-                local $DebugFragment    = ($odr->{debug}->{def}) ? "-DEBUG" : "";\r
-                $from       =~ s/%\-DEBUG%/$DebugFragment/g;\r
-                $to         =~ s/%\-DEBUG%/$DebugFragment/g;\r
-                $to         =~ s/\*.*//;                ## Truncate to path before any wildcard\r
-\r
-                my $bCopyOK     = 1;\r
-                my $fromcheck   = $from;\r
-                my $bRequired   = ! (exists $file->{notrequired});\r
-                if ($name =~ /\*/) {                    ## Wildcard case\r
-                    $fromcheck =~ s/\*.*//;\r
-                    if ($bRequired && (! -d $fromcheck)) {\r
-                        if ($bDot) {print "\n";}\r
-                        die "Fatal -- Can't find $fromcheck";\r
-                        }\r
-                    $bCopyOK = !system("echo D | xcopy /D /F /Y /S  $from $to > a.tmp 2>NUL");\r
-                    }\r
-                else {                                  ## Specific file case\r
-                    if ($bRequired && (! -e $fromcheck)) {\r
-                        if ($bDot) {print "\n";}\r
-                        die "Fatal -- Can't find $fromcheck";\r
-                        }\r
-                    $bCopyOK    = !system("echo F | xcopy /D /F /Y $from $to > a.tmp 2>NUL");\r
-                    }\r
-\r
-                if ($bCopyOK) {                         ## xcopy OK - show progress\r
-                    # To show progress when files aren't copied, print a string of dots.\r
-                    open(MYINPUTFILE, "<a.tmp");\r
-                    my(@lines) = <MYINPUTFILE>;\r
-                    foreach $line (@lines) { \r
-                        $bDot = ($line =~ /^0/);\r
-                        }\r
-                    close(MYINPUTFILE);\r
-                    if (!$bDot && $bOldDot) {print "\n";}\r
-                    if ($bDot) {print "."; STDOUT->flush;}\r
-                    else {print "$from copied to $to\n";}\r
-                    $bOldDot = $bDot;\r
-                    }\r
-                else {                                  ## xcopy failed\r
-                    if (!exists $file->{notrequired}) {\r
-                        if ($bDot) {print "\n";}\r
-                        die "Fatal -- Copy of $from to $to failed";\r
-                        }\r
-                    }                                   ## End xcopy succeed or fail\r
-                }                                       ## End not dummy entry nor ignored\r
-            }\r
-        $i++;\r
-        }\r
-    if ($bDot) {print "\n";}\r
-    }\r
-\r
-return 1;\r
+#!perl -w
+
+#use strict;
+use XML::Simple;
+use Data::Dumper;
+
+sub copyFiles {
+    local ($xml, $config)   = @_;
+    local @odr              = $config->{Config};
+    local @files            = $xml->{Files};
+    # Check for includes:
+    if (exists $xml->{Files}->{Include}->{path}) {
+        my $includepath    = $xml->{Files}->{Include}->{path};
+        print "Info -- Including files from $includepath\n";
+        my $savedDir = `cd`;
+        $savedDir =~ s/\n//g;
+        chdir $originalDir;                         ## Includes are relative to where we were invoked.
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+        my $tmp    = new XML::Simple;
+        my $includeXML = $tmp->XMLin($includepath);
+        chdir $savedDir;
+        print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+
+        local $i = 0;
+        while ($includeXML->{File}[$i]) {           ## Copy File entries from includeXML.
+            $files[0]->{File}[++$#{$files[0]->{File}}] = $includeXML->{File}[$i];        
+            $i++;
+            }
+        delete $files->{Include};
+        }
+    ##++ Set up path substitution variables for use inside the copy loop:
+    # A path can contain a variable part, which will be handled here.  If the variable part is 
+    # the Always or BuildDependent tag, then the variable will be changed to the 
+    # build-type-dependent PathFragment.
+    # If the variable part is the IgnoreTag, then the file will not be copied.
+    # If the variable part is %filestem%, it will be replaced with Config->FileStem->name.
+    my ($PathFragment, $BuildDependentTag, $IgnoreTag, $FileStemFragment, $fromRoot, $toRoot); 
+    my $bPathTags    = (exists $xml->{Config}->{DebugArea}) && (exists $xml->{Config}->{ReleaseArea});
+    my $bFileStem    = (exists $xml->{Config}->{FileStem});
+    
+    if ($odr->{debug}->{def}) {   ## Debug build tags:
+        $PathFragment       = $xml->{Config}->{DebugArea}->{value};
+        $BuildDependentTag  = $xml->{Config}->{DebugTag}->{value};
+        $IgnoreTag          = $xml->{Config}->{ReleaseTag}->{value};
+        }
+    else {                                  ## Release build tags:
+        $PathFragment       = $xml->{Config}->{ReleaseArea}->{value};
+        $BuildDependentTag  = $xml->{Config}->{ReleaseTag}->{value};
+        $IgnoreTag          = $xml->{Config}->{DebugTag}->{value};
+        }            
+    my $AlwaysTag           = $xml->{Config}->{AlwaysTag}->{value};
+    $FileStemFragment       = $xml->{Config}->{FileStem}->{name};    
+    $fromRoot               = $xml->{Config}->{From}->{root};    
+    $toRoot                 = $xml->{Config}->{To}->{root};    
+    ##-- Set up path substitution variables for use inside the copy loop.
+    # For each file in the file list:
+    #  Substitute any variable parts of the path name.
+    #  Handle wildcards
+    #  Copy
+
+    local $i    = 0;
+    my $bOldDot = 1;
+    my $bDot    = 0;
+    while ($files[0]->{File}[$i]) {
+
+        my ($name, $newname, $from, $to, $file);
+        $file   = $files[0]->{File}->[$i];
+        $name   = $file->{name};
+        if (exists $file->{newname})    {$newname = $file->{newname};}
+        else                            {$newname = $name;}
+        if ($name && (! exists $file->{ignore})) {      ## Ignore or process this entry?
+            $from   = "$fromRoot\\$file->{from}\\$name";
+            $to     = "$toRoot\\$file->{to}\\$newname";
+            # Copy this file?  Check for ignore tag [debug-only in release mode or vice versa].
+            if ( $bPathTags || $bFileStem || (index($from.$to, $IgnoreTag) <0) ) {  
+                if ($bPathTags) {                                   ## Apply PathTag substitutions:
+                    $from   =~ s/$AlwaysTag/$PathFragment/g;
+                    $to     =~ s/$AlwaysTag/$PathFragment/g;
+                    $from   =~ s/$BuildDependentTag/$PathFragment/g;
+                    $to     =~ s/$BuildDependentTag/$PathFragment/g;
+                    }
+                if ($bFileStem) {                                   ## FileStem substitution?
+                    $from   =~ s/%filestem%/$FileStemFragment/g;
+                    $to     =~ s/%filestem%/$FileStemFragment/g;
+                    }        
+                # %-DEBUG% substitution:
+                local $DebugFragment    = ($odr->{debug}->{def}) ? "-DEBUG" : "";
+                $from       =~ s/%\-DEBUG%/$DebugFragment/g;
+                $to         =~ s/%\-DEBUG%/$DebugFragment/g;
+                $to         =~ s/\*.*//;                ## Truncate to path before any wildcard
+
+                my $bCopyOK     = 1;
+                my $fromcheck   = $from;
+                my $bRequired   = ! (exists $file->{notrequired});
+                if ($name =~ /\*/) {                    ## Wildcard case
+                    $fromcheck =~ s/\*.*//;
+                    if ($bRequired && (! -d $fromcheck)) {
+                        if ($bDot) {print "\n";}
+                        die "Fatal -- Can't find $fromcheck";
+                        }
+                    $bCopyOK = !system("echo D | xcopy /D /F /Y /S  $from $to > a.tmp 2>NUL");
+                    }
+                else {                                  ## Specific file case
+                    if ($bRequired && (! -e $fromcheck)) {
+                        if ($bDot) {print "\n";}
+                        die "Fatal -- Can't find $fromcheck";
+                        }
+                    $bCopyOK    = !system("echo F | xcopy /D /F /Y $from $to > a.tmp 2>NUL");
+                    }
+
+                if ($bCopyOK) {                         ## xcopy OK - show progress
+                    # To show progress when files aren't copied, print a string of dots.
+                    open(MYINPUTFILE, "<a.tmp");
+                    my(@lines) = <MYINPUTFILE>;
+                    foreach $line (@lines) { 
+                        $bDot = ($line =~ /^0/);
+                        }
+                    close(MYINPUTFILE);
+                    if (!$bDot && $bOldDot) {print "\n";}
+                    if ($bDot) {print "."; STDOUT->flush;}
+                    else {print "$from copied to $to\n";}
+                    $bOldDot = $bDot;
+                    }
+                else {                                  ## xcopy failed
+                    if (!exists $file->{notrequired}) {
+                        if ($bDot) {print "\n";}
+                        die "Fatal -- Copy of $from to $to failed";
+                        }
+                    }                                   ## End xcopy succeed or fail
+                }                                       ## End not dummy entry nor ignored
+            }
+        $i++;
+        }
+    if ($bDot) {print "\n";}
+    }
+
+return 1;
index 2fb3747c8a2877b337d2c6968f0373631dfaf241..269b42ba95d90f1088d601dd499a69659128a03c 100644 (file)
-<?xml version="1.0" encoding="utf-8" ?>\r
-    <Files>\r
-        <!-- File from    paths are relative to <src>\pismere\athena  -->\r
-        <!-- File to            paths are relative to <src>\pismere\staging -->\r
-        <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
-            <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
-\r
-        <!-- Build-dependent files (from release or debug build): -->\r
-          <File name="netidmgr_version.h"   from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr"/>\r
-          <File name="netidmgr.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="perfstat.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr"/>\r
-          <File name="utils.h"              from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="sync.h"               from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="mstring.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kplugin.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kmq.h"                from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kmm.h"                from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khuidefs.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khtracker.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khrescache.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khremote.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khprops.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khnewcred.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khmsgtypes.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khlist.h"             from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khhtlink.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kherror.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kherr.h"              from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khdefs.h"             from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khconfigui.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khalerts.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khactiondef.h"        from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="khaction.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kcreddb.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="kconfig.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="hashtable.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />\r
-          <File name="nidmgr32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="xpprof32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="wshelp32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="loadfuncs.lib"        from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="leashw32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="krbv4w32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="krbcc32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="krb5_32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="krb524.lib"           from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="kclnt32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="gssapi32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="getopt.lib"           from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="delaydlls.lib"        from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="comerr32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />\r
-          <File name="netidmgr.exe"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />\r
-          <File name="nidmgr32.dll"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />\r
-          <File name="netidmgr.pdb"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />\r
-          <File name="nidmgr32.pdb"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />\r
-          <File name="kfwcpcc.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kfwlogon.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="netidmgr.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="nidmgr32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb4cred.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb5cred.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="mit2ms.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kdeltkt.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kcpytkt.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="xpprof32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="wshelp32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="ms2mit.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="leashw32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="leash32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="leash32.chm"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kpasswd.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kvno.pdb"             from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbv4w32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbcc32s.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbcc32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="k5sprt32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb5_32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb524.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="klist.pdb"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kinit.pdb"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kdestroy.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kclnt32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="k524init.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gssapi32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss-server.pdb"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss-client.pdb"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss.pdb"              from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="comerr32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kfwcpcc.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kfwlogon.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="netidmgr.chm"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="netidmgr.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="nidmgr32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb4cred_en_us.dll"   from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb4cred.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb5cred_en_us.dll"   from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb5cred.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="mit2ms.exe"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kdeltkt.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kcpytkt.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="xpprof32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="wshelp32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="ms2mit.exe"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="leashw32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="leash32.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kpasswd.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kvno.exe"             from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbv4w32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbcc32s.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krbcc32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="k5sprt32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb5_32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="krb524.dll"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="klist.exe"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kinit.exe"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kdestroy.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="kclnt32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="k524init.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gssapi32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss-server.exe"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss-client.exe"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="gss.exe"              from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="comerr32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />\r
-          <File name="netiddev.chm"         from="..\target\bin\i386\%bldtype%\"                            to="\doc" />\r
-<!-- why copy twice?          <File name="NetIddev.chm"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\doc\"   to="\doc" newname="netiddev.chm" /> -->\r
-\r
-        <!-- Build-INdependent files, always copied: -->\r
-        <File name="relnotes.html"          from="..\doc\kerberos\"                                         to="\doc" />\r
-        <File name="leash_userdoc.pdf"      from="auth\leash\help\"                                         to="\doc" />\r
-        <File name="NetIdMgr.pdf"           from="auth\krb5\src\windows\identity\doc\"                      to="\doc" newname="netidmgr_userdoc.pdf" />\r
-        <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\"   to="\doc" />\r
-        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\"            to="\sample\templates\credprov\" />\r
-        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\images\"     to="\sample\templates\credprov\images" />\r
-        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\"       to="\sample\templates\credprov\lang" />\r
-        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\en_us\" to="\sample\templates\credprov\lang\en_us" />\r
-        <File name="kclient.h"              from="auth\krb4\kclient\include\"    to="\inc\kclient" />\r
-        <File name="kcmacerr.h"             from="auth\krb4\kclient\include\"    to="\inc\kclient" />\r
-        <File name="com_err.h"              from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="conf-pc.h"              from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="conf.h"                 from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="des.h"                  from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="kadm_err.h"             from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="krb.h"                  from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="krberr.h"               from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="mit_copy.h"             from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="osconf.h"               from="auth\krb4\include\"    to="\inc\krb4" />\r
-        <File name="com_err.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />\r
-        <File name="krb5.h"                 from="auth\krb5\src\include\"       to="\inc\krb5" />\r
-        <File name="profile.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />\r
-        <File name="win-mac.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />\r
-        <File name="krb5.h"                 from="auth\krb5\src\include\krb5\"  to="\inc\krb5\krb5" notrequired="true" />\r
-        <File name="gssapi.h"               from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />\r
-        <File name="gssapi_generic.h"       from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />\r
-        <File name="gssapi_krb5.h"          from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />\r
-        <File name="des.h"                  from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />\r
-        <File name="kadm_err.h"             from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />\r
-        <File name="krb_err.h"              from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />\r
-        <File name="krb.h"                  from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />\r
-        <File name="mit-copyright.h"        from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />\r
-        <File name="cacheapi.h"             from="auth\krbcc\include\"    to="\inc\krbcc" />\r
-        <File name="leasherr.h"             from="auth\leash\include\"    to="\inc\leash" />\r
-        <File name="leashinfo.h"            from="auth\leash\include\"    to="\inc\leash" />\r
-        <File name="leashwin.h"             from="auth\leash\include\"    to="\inc\leash" />\r
-        <File name="loadfuncs-afs.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-afs36.h"      from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-com_err.h"    from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-krb.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-krb5.h"       from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-krb524.h"     from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-leash.h"      from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-lsa.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-profile.h"    from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs-wshelper.h"   from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs.c"            from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="loadfuncs.h"            from="util\loadfuncs\"    to="\inc\loadfuncs" />\r
-        <File name="nameser.h"              from="wshelper\include\arpa\"   to="\inc\wshelper\arpa" />\r
-        <File name="hesiod.h"               from="wshelper\include\"        to="\inc\wshelper" />\r
-        <File name="mitwhich.h"             from="wshelper\include\"        to="\inc\wshelper" />\r
-        <File name="resolv.h"               from="wshelper\include\"        to="\inc\wshelper" />\r
-        <File name="wshelper.h"             from="wshelper\include\"        to="\inc\wshelper" />\r
-        <File name="kfw-fixed.nsi"          from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="kfw.ico"                from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="kfw.nsi"                from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="KfWConfigPage.ini"      from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="KfWConfigPage2.ini"     from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="killer.cpp"             from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="licenses.rtf"           from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="site-local-tagged.nsi"  from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="nsi-includes-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\"   to="\install\nsis" />\r
-        <File name="utils.nsi"              from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />\r
-        <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\"   to="\install\wix" />\r
-        <File name="config.wxi"             from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="features.wxi"           from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="files.wxi"              from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="kfw.wxs"                from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="Makefile"               from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="property.wxi"           from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="site-local-tagged.wxi"  from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />\r
-        <File name="bannrbmp.bmp"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="completi.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="custicon.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="dlgbmp.bmp"             from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="exclamic.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="info.bmp"               from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="insticon.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="new.bmp"                from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="removico.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="repairic.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="up.bmp"                 from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />\r
-        <File name="custom.cpp"             from="auth\krb5\src\windows\installer\wix\custom\"  to="\install\wix\custom" />\r
-        <File name="custom.h"               from="auth\krb5\src\windows\installer\wix\custom\"  to="\install\wix\custom" />\r
-        <File name="config_1033.wxi"        from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />\r
-        <File name="strings_1033.wxl"       from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />\r
-        <File name="ui_1033.wxi"            from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />\r
-        <File name="license.rtf"            from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />\r
-        <File name="krb5.conf"              from="auth\krb5\src\config-files\"  to="\sample" newname="krb5.ini" />\r
-        <File name="krb.con"                from="auth\krb4\sample-config\"     to="\sample" />\r
-        <File name="krbrealm.con"           from="auth\krb4\sample-config\"     to="\sample" />\r
+<?xml version="1.0" encoding="utf-8" ?>
+    <Files>
+        <!-- File from    paths are relative to <src>\pismere\athena  -->
+        <!-- File to            paths are relative to <src>\pismere\staging -->
+        <File dummy="foo" /> <!-- Forces XML::Simple behavior -->
+            <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->
+
+        <!-- Build-dependent files (from release or debug build): -->
+          <File name="netidmgr_version.h"   from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr"/>
+          <File name="netidmgr.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="perfstat.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr"/>
+          <File name="utils.h"              from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="sync.h"               from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="mstring.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kplugin.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kmq.h"                from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kmm.h"                from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khuidefs.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khtracker.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khrescache.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khremote.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khprops.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khnewcred.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khmsgtypes.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khlist.h"             from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khhtlink.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kherror.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kherr.h"              from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khdefs.h"             from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khconfigui.h"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khalerts.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khactiondef.h"        from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="khaction.h"           from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kcreddb.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="kconfig.h"            from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="hashtable.h"          from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\"    to="\inc\netidmgr" />
+          <File name="nidmgr32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="xpprof32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="wshelp32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="loadfuncs.lib"        from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="leashw32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="krbv4w32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="krbcc32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="krb5_32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="krb524.lib"           from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="kclnt32.lib"          from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="gssapi32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="getopt.lib"           from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="delaydlls.lib"        from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="comerr32.lib"         from="..\target\lib\i386\%bldtype%\"    to="\lib\i386" />
+          <File name="netidmgr.exe"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />
+          <File name="nidmgr32.dll"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />
+          <File name="netidmgr.pdb"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />
+          <File name="nidmgr32.pdb"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\"    to="\bin\i386\w2k" />
+          <File name="kfwcpcc.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kfwlogon.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="netidmgr.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="nidmgr32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb4cred.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb5cred.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="mit2ms.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kdeltkt.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kcpytkt.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="xpprof32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="wshelp32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="ms2mit.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="leashw32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="leash32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="leash32.chm"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kpasswd.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kvno.pdb"             from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbv4w32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbcc32s.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbcc32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="k5sprt32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb5_32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb524.pdb"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="klist.pdb"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kinit.pdb"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kdestroy.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kclnt32.pdb"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="k524init.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gssapi32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss-server.pdb"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss-client.pdb"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss.pdb"              from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="comerr32.pdb"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kfwcpcc.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kfwlogon.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="netidmgr.chm"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="netidmgr.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="nidmgr32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb4cred_en_us.dll"   from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb4cred.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb5cred_en_us.dll"   from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb5cred.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="mit2ms.exe"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kdeltkt.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kcpytkt.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="xpprof32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="wshelp32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="ms2mit.exe"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="leashw32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="leash32.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kpasswd.exe"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kvno.exe"             from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbv4w32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbcc32s.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krbcc32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="k5sprt32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb5_32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="krb524.dll"           from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="klist.exe"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kinit.exe"            from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kdestroy.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="kclnt32.dll"          from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="k524init.exe"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gssapi32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss-server.exe"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss-client.exe"       from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="gss.exe"              from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="comerr32.dll"         from="..\target\bin\i386\%bldtype%\"    to="\bin\i386" />
+          <File name="netiddev.chm"         from="..\target\bin\i386\%bldtype%\"                            to="\doc" />
+<!-- why copy twice?          <File name="NetIddev.chm"         from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\doc\"   to="\doc" newname="netiddev.chm" /> -->
+
+        <!-- Build-INdependent files, always copied: -->
+        <File name="relnotes.html"          from="..\doc\kerberos\"                                         to="\doc" />
+        <File name="leash_userdoc.pdf"      from="auth\leash\help\"                                         to="\doc" />
+        <File name="NetIdMgr.pdf"           from="auth\krb5\src\windows\identity\doc\"                      to="\doc" newname="netidmgr_userdoc.pdf" />
+        <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\"   to="\doc" />
+        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\"            to="\sample\templates\credprov\" />
+        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\images\"     to="\sample\templates\credprov\images" />
+        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\"       to="\sample\templates\credprov\lang" />
+        <File name="*"                      from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\en_us\" to="\sample\templates\credprov\lang\en_us" />
+        <File name="kclient.h"              from="auth\krb4\kclient\include\"    to="\inc\kclient" />
+        <File name="kcmacerr.h"             from="auth\krb4\kclient\include\"    to="\inc\kclient" />
+        <File name="com_err.h"              from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="conf-pc.h"              from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="conf.h"                 from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="des.h"                  from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="kadm_err.h"             from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="krb.h"                  from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="krberr.h"               from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="mit_copy.h"             from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="osconf.h"               from="auth\krb4\include\"    to="\inc\krb4" />
+        <File name="com_err.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />
+        <File name="krb5.h"                 from="auth\krb5\src\include\"       to="\inc\krb5" />
+        <File name="profile.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />
+        <File name="win-mac.h"              from="auth\krb5\src\include\"       to="\inc\krb5" />
+        <File name="krb5.h"                 from="auth\krb5\src\include\krb5\"  to="\inc\krb5\krb5" notrequired="true" />
+        <File name="gssapi.h"               from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />
+        <File name="gssapi_generic.h"       from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />
+        <File name="gssapi_krb5.h"          from="auth\krb5\src\include\gssapi\"    to="\inc\krb5\gssapi" />
+        <File name="des.h"                  from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />
+        <File name="kadm_err.h"             from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />
+        <File name="krb_err.h"              from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />
+        <File name="krb.h"                  from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />
+        <File name="mit-copyright.h"        from="auth\krb5\src\include\KerberosIV\"    to="\inc\krb5\KerberosIV" />
+        <File name="cacheapi.h"             from="auth\krbcc\include\"    to="\inc\krbcc" />
+        <File name="leasherr.h"             from="auth\leash\include\"    to="\inc\leash" />
+        <File name="leashinfo.h"            from="auth\leash\include\"    to="\inc\leash" />
+        <File name="leashwin.h"             from="auth\leash\include\"    to="\inc\leash" />
+        <File name="loadfuncs-afs.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-afs36.h"      from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-com_err.h"    from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-krb.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-krb5.h"       from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-krb524.h"     from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-leash.h"      from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-lsa.h"        from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-profile.h"    from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs-wshelper.h"   from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs.c"            from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="loadfuncs.h"            from="util\loadfuncs\"    to="\inc\loadfuncs" />
+        <File name="nameser.h"              from="wshelper\include\arpa\"   to="\inc\wshelper\arpa" />
+        <File name="hesiod.h"               from="wshelper\include\"        to="\inc\wshelper" />
+        <File name="mitwhich.h"             from="wshelper\include\"        to="\inc\wshelper" />
+        <File name="resolv.h"               from="wshelper\include\"        to="\inc\wshelper" />
+        <File name="wshelper.h"             from="wshelper\include\"        to="\inc\wshelper" />
+        <File name="kfw-fixed.nsi"          from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="kfw.ico"                from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="kfw.nsi"                from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="KfWConfigPage.ini"      from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="KfWConfigPage2.ini"     from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="killer.cpp"             from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="licenses.rtf"           from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="site-local-tagged.nsi"  from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="nsi-includes-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\"   to="\install\nsis" />
+        <File name="utils.nsi"              from="auth\krb5\src\windows\installer\nsis\"    to="\install\nsis" />
+        <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\"   to="\install\wix" />
+        <File name="config.wxi"             from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="features.wxi"           from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="files.wxi"              from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="kfw.wxs"                from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="Makefile"               from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="property.wxi"           from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="site-local-tagged.wxi"  from="auth\krb5\src\windows\installer\wix\"     to="\install\wix" />
+        <File name="bannrbmp.bmp"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="completi.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="custicon.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="dlgbmp.bmp"             from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="exclamic.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="info.bmp"               from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="insticon.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="new.bmp"                from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="removico.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="repairic.ico"           from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="up.bmp"                 from="auth\krb5\src\windows\installer\wix\Binary\"  to="\install\wix\Binary" />
+        <File name="custom.cpp"             from="auth\krb5\src\windows\installer\wix\custom\"  to="\install\wix\custom" />
+        <File name="custom.h"               from="auth\krb5\src\windows\installer\wix\custom\"  to="\install\wix\custom" />
+        <File name="config_1033.wxi"        from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />
+        <File name="strings_1033.wxl"       from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />
+        <File name="ui_1033.wxi"            from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />
+        <File name="license.rtf"            from="auth\krb5\src\windows\installer\wix\lang\"    to="\install\wix\lang" />
+        <File name="krb5.conf"              from="auth\krb5\src\config-files\"  to="\sample" newname="krb5.ini" />
+        <File name="krb.con"                from="auth\krb4\sample-config\"     to="\sample" />
+        <File name="krbrealm.con"           from="auth\krb4\sample-config\"     to="\sample" />
     </Files>
\ No newline at end of file
index bf51b0e90aa8fa834db722a3a7b72fc2517ec8ff..9fcf8aa3a1e7eaaccf3081e947899ef41f58ff19 100644 (file)
@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="utf-8" ?>\r
-       <Files>\r
-               <!-- File from  paths are relative to <src>/pismere.    -->\r
-               <!-- File to                    paths are relative to <out>.                                    -->\r
-               <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
-                       <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
-\r
-               <File name="netidmgr_userdoc.pdf" from="staging\doc"    to="doc" />\r
-               <File name="leash_userdoc.pdf" from="staging\doc"       to="doc" />\r
-               <File name="relnotes.html"  from="doc\kerberos"         to="doc" />\r
-\r
-               <File name="comerr32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="comerr32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss-client.exe" from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss-client.pdb" from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss-server.exe" from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss-server.pdb" from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss.exe"        from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gss.pdb"        from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gssapi32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="gssapi32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="k524init.exe"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="k524init.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="k5sprt32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="k5sprt32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kclnt32.dll"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kclnt32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kcpytkt.exe"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kcpytkt.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kdeltkt.exe"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kdeltkt.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kdestroy.exe"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kdestroy.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kfwcpcc.exe"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kfwcpcc.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kfwlogon.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kfwlogon.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kinit.exe"      from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kinit.pdb"      from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="klist.exe"      from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="klist.pdb"      from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kpasswd.exe"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kpasswd.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb4cred.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb4cred.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb4cred_en_us.dll" from="staging\bin\i386" to="\bin\i386\" />\r
-               <File name="krb524.dll"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb524.pdb"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb5cred.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb5cred.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb5cred_en_us.dll" from="staging\bin\i386" to="\bin\i386\" />\r
-               <File name="krb5_32.dll"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krb5_32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbcc32.dll"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbcc32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbcc32s.exe"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbcc32s.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbv4w32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="krbv4w32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kvno.exe"       from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="kvno.pdb"       from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="leash32.chm"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="leash32.exe"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="leash32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="leashw32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="leashw32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="mit2ms.exe"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="mit2ms.pdb"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="ms2mit.exe"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="ms2mit.pdb"     from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="netidmgr.chm"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="netidmgr.exe"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="netidmgr.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="nidmgr32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="nidmgr32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="wshelp32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="wshelp32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="xpprof32.dll"   from="staging\bin\i386"     to="\bin\i386\" />\r
-               <File name="xpprof32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />\r
-\r
-               <File name="netidmgr.exe"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />\r
-               <File name="netidmgr.pdb"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />\r
-               <File name="nidmgr32.dll"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />\r
-               <File name="nidmgr32.pdb"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />\r
+<?xml version="1.0" encoding="utf-8" ?>
+       <Files>
+               <!-- File from  paths are relative to <src>/pismere.    -->
+               <!-- File to                    paths are relative to <out>.                                    -->
+               <File dummy="foo" /> <!-- Forces XML::Simple behavior -->
+                       <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->
+
+               <File name="netidmgr_userdoc.pdf" from="staging\doc"    to="doc" />
+               <File name="leash_userdoc.pdf" from="staging\doc"       to="doc" />
+               <File name="relnotes.html"  from="doc\kerberos"         to="doc" />
+
+               <File name="comerr32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="comerr32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss-client.exe" from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss-client.pdb" from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss-server.exe" from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss-server.pdb" from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss.exe"        from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gss.pdb"        from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gssapi32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="gssapi32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="k524init.exe"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="k524init.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="k5sprt32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="k5sprt32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kclnt32.dll"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kclnt32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kcpytkt.exe"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kcpytkt.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kdeltkt.exe"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kdeltkt.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kdestroy.exe"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kdestroy.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kfwcpcc.exe"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kfwcpcc.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kfwlogon.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kfwlogon.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kinit.exe"      from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kinit.pdb"      from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="klist.exe"      from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="klist.pdb"      from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kpasswd.exe"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kpasswd.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb4cred.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb4cred.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb4cred_en_us.dll" from="staging\bin\i386" to="\bin\i386\" />
+               <File name="krb524.dll"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb524.pdb"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb5cred.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb5cred.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb5cred_en_us.dll" from="staging\bin\i386" to="\bin\i386\" />
+               <File name="krb5_32.dll"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krb5_32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbcc32.dll"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbcc32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbcc32s.exe"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbcc32s.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbv4w32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="krbv4w32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kvno.exe"       from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="kvno.pdb"       from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="leash32.chm"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="leash32.exe"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="leash32.pdb"    from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="leashw32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="leashw32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="mit2ms.exe"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="mit2ms.pdb"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="ms2mit.exe"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="ms2mit.pdb"     from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="netidmgr.chm"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="netidmgr.exe"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="netidmgr.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="nidmgr32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="nidmgr32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="wshelp32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="wshelp32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="xpprof32.dll"   from="staging\bin\i386"     to="\bin\i386\" />
+               <File name="xpprof32.pdb"   from="staging\bin\i386"     to="\bin\i386\" />
+
+               <File name="netidmgr.exe"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />
+               <File name="netidmgr.pdb"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />
+               <File name="nidmgr32.dll"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />
+               <File name="nidmgr32.pdb"   from="staging\bin\i386\w2k"     to="\bin\i386\w2k" />
        </Files>
\ No newline at end of file
index a2302bc3229aeac5e52f829f951af6ac01040207..2a1cfc0d9e03a82ba186aea1b289faf4a3fa9ce0 100644 (file)
@@ -1,54 +1,54 @@
-.sidebar {\r
-       BACKGROUND-COLOR: #f0f0f0\r
-}\r
-#logodiv {\r
-       PADDING-RIGHT: 15px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; TEXT-ALIGN: center\r
-}\r
-#menu {\r
-       WIDTH: 150px\r
-}\r
-.leftnav H1 {\r
-       PADDING-RIGHT: 4px; BORDER-TOP: white 1px solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 11px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.leftnav H5 {\r
-       PADDING-RIGHT: 0px; BORDER-TOP: white 1px solid; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 11px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.leftnav H5 A {\r
-       BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 5px; DISPLAY: block; PADDING-LEFT: 5px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none\r
-}\r
-.leftnav H5 A:hover {\r
-       BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BACKGROUND-COLOR: white; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none\r
-}\r
-.leftnav UL {\r
-       PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none\r
-}\r
-.leftnav LI {\r
-       PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px\r
-}\r
-.leftnav LI A {\r
-       PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 0px; COLOR: white; PADDING-TOP: 2px; TEXT-DECORATION: none\r
-}\r
-.leftnav LI A.current {\r
-       COLOR: white; BACKGROUND-COLOR: #003366\r
-}\r
-.leftnav LI A:active {\r
-       COLOR: white\r
-}\r
-.leftnav LI A:visited {\r
-       COLOR: white\r
-}\r
-.leftnav LI A:hover {\r
-       COLOR: white; BACKGROUND-COLOR: #003366\r
-}\r
-.leftnav LI.current {\r
-       BACKGROUND-COLOR: #487bb7\r
-}\r
-.leftnav LI.current A {\r
-       COLOR: #3c78b5\r
-}\r
-#PageContent {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: left\r
-}\r
-H1 {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 22px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 27px 0px 4px; COLOR: #660000; PADDING-TOP: 0px; FONT-FAMILY: Arial, sans-serif; BACKGROUND-COLOR: #fff\r
-}\r
+.sidebar {
+       BACKGROUND-COLOR: #f0f0f0
+}
+#logodiv {
+       PADDING-RIGHT: 15px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; TEXT-ALIGN: center
+}
+#menu {
+       WIDTH: 150px
+}
+.leftnav H1 {
+       PADDING-RIGHT: 4px; BORDER-TOP: white 1px solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 11px; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px solid
+}
+.leftnav H5 {
+       PADDING-RIGHT: 0px; BORDER-TOP: white 1px solid; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 11px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid
+}
+.leftnav H5 A {
+       BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 5px; DISPLAY: block; PADDING-LEFT: 5px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none
+}
+.leftnav H5 A:hover {
+       BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BACKGROUND-COLOR: white; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none
+}
+.leftnav UL {
+       PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
+}
+.leftnav LI {
+       PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
+}
+.leftnav LI A {
+       PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 0px; COLOR: white; PADDING-TOP: 2px; TEXT-DECORATION: none
+}
+.leftnav LI A.current {
+       COLOR: white; BACKGROUND-COLOR: #003366
+}
+.leftnav LI A:active {
+       COLOR: white
+}
+.leftnav LI A:visited {
+       COLOR: white
+}
+.leftnav LI A:hover {
+       COLOR: white; BACKGROUND-COLOR: #003366
+}
+.leftnav LI.current {
+       BACKGROUND-COLOR: #487bb7
+}
+.leftnav LI.current A {
+       COLOR: #3c78b5
+}
+#PageContent {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: left
+}
+H1 {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 22px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 27px 0px 4px; COLOR: #660000; PADDING-TOP: 0px; FONT-FAMILY: Arial, sans-serif; BACKGROUND-COLOR: #fff
+}
index e34af6a260f0f766bc311f51ade9424ce18f3e79..e08c50ecd18fde9a56621e7ab16e6fddb5626b2f 100644 (file)
-BODY {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-P {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-TD {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-TABLE {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-TR {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-.bodytext {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-.stepfield {\r
-       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-#PageContent {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: left\r
-}\r
-BODY {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: center\r
-}\r
-.monospaceInput {\r
-       FONT: 12px monospace\r
-}\r
-.wiki-content P {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 16px 0px; PADDING-TOP: 0px\r
-}\r
-.commentblock P {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 16px 0px; PADDING-TOP: 0px\r
-}\r
-.wiki-content-preview {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px\r
-}\r
-UL {\r
-       MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px\r
-}\r
-OL {\r
-       MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px\r
-}\r
-PRE {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; PADDING-TOP: 0px; TEXT-ALIGN: left\r
-}\r
-.helpheading {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 4px; MARGIN: 10px 0px 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d0d9bd\r
-}\r
-.helpcontent {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 20px; PADDING-TOP: 4px; BACKGROUND-COLOR: #f5f7f1\r
-}\r
-.code {\r
-       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; FONT-SIZE: 11px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px dashed; LINE-HEIGHT: 13px; BORDER-BOTTOM: #3c78b5 1px dashed; FONT-FAMILY: Courier\r
-}\r
-.focusedComment {\r
-       BACKGROUND: #ffffce\r
-}\r
-.commentBox {\r
-       BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #bbb 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 5px 0px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #bbb 1px solid\r
-}\r
-.focusedComment {\r
-       BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #bbb 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 5px 0px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #bbb 1px solid\r
-}\r
-.codeHeader {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-.codeContent {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: left\r
-}\r
-.preformatted {\r
-       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; FONT-SIZE: 11px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px dashed; LINE-HEIGHT: 13px; BORDER-BOTTOM: #3c78b5 1px dashed; FONT-FAMILY: Courier\r
-}\r
-.preformattedHeader {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-.preformattedContent {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.panel {\r
-       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; MARGIN: 0px 10px 10px; BORDER-LEFT: #3c78b5 1px dashed; BORDER-BOTTOM: #3c78b5 1px dashed\r
-}\r
-.panelHeader {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-.panelContent {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.anonymousAlert {\r
-       BORDER-RIGHT: red 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: red 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 11px; PADDING-BOTTOM: 10px; MARGIN: 4px; BORDER-LEFT: red 1px dashed; LINE-HEIGHT: 13px; PADDING-TOP: 10px; BORDER-BOTTOM: red 1px dashed; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.lockAlert {\r
-       BORDER-RIGHT: red 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: red 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 11px; PADDING-BOTTOM: 10px; MARGIN: 4px; BORDER-LEFT: red 1px dashed; WIDTH: 50%; LINE-HEIGHT: 13px; PADDING-TOP: 10px; BORDER-BOTTOM: red 1px dashed; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.code-keyword {\r
-       COLOR: #000091\r
-}\r
-.code-object {\r
-       COLOR: #910091\r
-}\r
-.code-quote {\r
-       COLOR: #009100\r
-}\r
-.code-comment {\r
-       COLOR: #808080\r
-}\r
-.code-xml .code-keyword {\r
-       FONT-WEIGHT: bold\r
-}\r
-.code-tag {\r
-       COLOR: #000091\r
-}\r
-.breadcrumbs {\r
-       BORDER-RIGHT: #3c78b5 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 11px; PADDING-BOTTOM: 3px; BORDER-LEFT: #3c78b5 0px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.navmenu {\r
-       BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.menuheading {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.menuitems {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 20px; PADDING-TOP: 4px\r
-}\r
-.rightpanel {\r
-       BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-#helpheading {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d0d9bd; TEXT-ALIGN: left\r
-}\r
-#helpcontent {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BACKGROUND-COLOR: #f5f7f1\r
-}\r
-.helptab-unselected {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #f5f7f1\r
-}\r
-.helptab-selected {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #d0d9bd\r
-}\r
-.helptabs {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 5px; BACKGROUND-COLOR: #f5f7f1\r
-}\r
-.infopanel-heading {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; PADDING-TOP: 4px\r
-}\r
-.pagebody {\r
-       \r
-}\r
-.pageheader {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-.pagetitle {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 22px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.newpagetitle {\r
-       COLOR: #ccc! important\r
-}\r
-.steptitle {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 18px; MARGIN-BOTTOM: 7px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.substeptitle {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 1px; MARGIN: 2px 4px 4px; COLOR: #003366; PADDING-TOP: 2px; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.stepdesc {\r
-       MARGIN-TOP: 7px; FONT-WEIGHT: normal; FONT-SIZE: 11px; MARGIN-BOTTOM: 7px; COLOR: #666666; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif\r
-}\r
-.steplabel {\r
-       FONT-WEIGHT: bold; FLOAT: left; WIDTH: 15%; COLOR: black; MARGIN-RIGHT: 4px; TEXT-ALIGN: right\r
-}\r
-.stepfield {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 5px; PADDING-TOP: 5px\r
-}\r
-.submitButtons {\r
-       MARGIN-TOP: 5px; TEXT-ALIGN: right\r
-}\r
-.formtitle {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.sectionbottom {\r
-       BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-.topRow {\r
-       BORDER-TOP: #3c78b5 2px solid\r
-}\r
-.tabletitle {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 14px; PADDING-BOTTOM: 2px; MARGIN: 8px 4px 2px 0px; COLOR: #003366; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 2px solid; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.pagesubheading {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10px; PADDING-BOTTOM: 5px; COLOR: #666666; PADDING-TOP: 0px\r
-}\r
-HR {\r
-       \r
-}\r
-A:link {\r
-       COLOR: #003366\r
-}\r
-A:visited {\r
-       COLOR: #003366\r
-}\r
-A:active {\r
-       COLOR: #003366\r
-}\r
-A:hover {\r
-       COLOR: #003366\r
-}\r
-H1 A:link {\r
-       TEXT-DECORATION: none\r
-}\r
-H1 A:visited {\r
-       TEXT-DECORATION: none\r
-}\r
-H1 A:active {\r
-       TEXT-DECORATION: none\r
-}\r
-H1 A:hover {\r
-       BORDER-BOTTOM: #003366 1px dotted\r
-}\r
-UNKNOWN {\r
-       MARGIN-TOP: 3px\r
-}\r
-.logocell {\r
-       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px\r
-}\r
-INPUT {\r
-       FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: verdana, geneva, arial, sans-serif\r
-}\r
-TEXTAREA {\r
-       FONT-SIZE: 11px; COLOR: #333333; FONT-FAMILY: verdana, geneva, arial, sans-serif\r
-}\r
-TEXTAREA.editor {\r
-       FONT-SIZE: 11px; COLOR: #333333; FONT-FAMILY: verdana, geneva, arial, sans-serif\r
-}\r
-.spacenametitle-printable {\r
-       MARGIN: 0px; FONT: 100 20px/25px Impact, Arial, Helvetica; COLOR: #999999\r
-}\r
-.spacenametitle-printable A {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.spacenametitle-printable A:visited {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.blogDate {\r
-       FONT-WEIGHT: bold; COLOR: black; TEXT-DECORATION: none\r
-}\r
-.blogSurtitle {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid\r
-}\r
-.blogHeading {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 20px; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px\r
-}\r
-.blogHeading A {\r
-       COLOR: black; TEXT-DECORATION: none\r
-}\r
-.endsection {\r
-       MARGIN-TOP: 10px; COLOR: #666666; align: right\r
-}\r
-.endsectionleftnav {\r
-       MARGIN-TOP: 10px; COLOR: #666666; align: right\r
-}\r
-H1 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 24px; PADDING-BOTTOM: 2px; MARGIN: 36px 0px 4px; COLOR: #003366; LINE-HEIGHT: normal; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H2 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 18px; PADDING-BOTTOM: 2px; MARGIN: 27px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H3 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 14px; PADDING-BOTTOM: 2px; MARGIN: 21px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H4 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; MARGIN: 18px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H4.search {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; MARGIN: 18px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 4px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H5 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 2px; MARGIN: 14px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-H6 {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 8px; PADDING-BOTTOM: 2px; MARGIN: 14px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.smallfont {\r
-       FONT-SIZE: 10px\r
-}\r
-.descfont {\r
-       FONT-SIZE: 10px; COLOR: #666666\r
-}\r
-.smallerfont {\r
-       FONT-SIZE: 9px\r
-}\r
-.smalltext {\r
-       FONT-SIZE: 10px; COLOR: #666666\r
-}\r
-.smalltext A {\r
-       COLOR: #666666\r
-}\r
-.smalltext-blue {\r
-       FONT-SIZE: 10px; COLOR: #3c78b5\r
-}\r
-.surtitle {\r
-       FONT-SIZE: 14px; MARGIN-BOTTOM: 5px; MARGIN-LEFT: 1px; COLOR: #666666\r
-}\r
-.navItemOver {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 10px; CURSOR: pointer; COLOR: #ffffff; BACKGROUND-COLOR: #003366; voice-family: inherit\r
-}\r
-.navItemOver A {\r
-       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none\r
-}\r
-.navItemOver A:visited {\r
-       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none\r
-}\r
-.navItemOver A:hover {\r
-       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none\r
-}\r
-.navItem {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; BACKGROUND-COLOR: #3c78b5\r
-}\r
-.navItem A {\r
-       COLOR: #ffffff; TEXT-DECORATION: none\r
-}\r
-.navItem A:hover {\r
-       COLOR: #ffffff; TEXT-DECORATION: none\r
-}\r
-.navItem A:visited {\r
-       COLOR: #ffffff; TEXT-DECORATION: none\r
-}\r
-DIV.padded {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px\r
-}\r
-DIV.thickPadded {\r
-       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px\r
-}\r
-H3.macrolibrariestitle {\r
-       MARGIN: 0px\r
-}\r
-DIV.centered {\r
-       MARGIN: 10px; TEXT-ALIGN: center\r
-}\r
-DIV.centered TABLE {\r
-       MARGIN: 0px auto; TEXT-ALIGN: left\r
-}\r
-.tableview TABLE {\r
-       MARGIN: 0px\r
-}\r
-.tableview TH {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; COLOR: #003366; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 2px solid; TEXT-ALIGN: left\r
-}\r
-.tableview TD {\r
-       BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 10px; BORDER-TOP: #ccc 0px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left\r
-}\r
-.grid {\r
-       MARGIN: 2px 0px 5px; BORDER-COLLAPSE: collapse\r
-}\r
-.grid TH {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center\r
-}\r
-.grid TD {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.gridHover {\r
-       BACKGROUND-COLOR: #f9f9f9\r
-}\r
-TD.infocell {\r
-       BACKGROUND-COLOR: #eeefcc\r
-}\r
-.label {\r
-       FONT-WEIGHT: bold; COLOR: #003366\r
-}\r
-LABEL {\r
-       FONT-WEIGHT: bold; COLOR: #003366\r
-}\r
-.error {\r
-       BACKGROUND-COLOR: #fcc\r
-}\r
-.errorBox {\r
-       BORDER-RIGHT: #c00 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #c00 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 5px; BORDER-LEFT: #c00 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #c00 1px solid; BACKGROUND-COLOR: #fcc\r
-}\r
-.errorMessage {\r
-       COLOR: #c00\r
-}\r
-.success {\r
-       BACKGROUND-COLOR: #dfd\r
-}\r
-.successBox {\r
-       BORDER-RIGHT: #090 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #090 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; MARGIN-BOTTOM: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #090 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #090 1px solid; BACKGROUND-COLOR: #dfd\r
-}\r
-BLOCKQUOTE {\r
-       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; MARGIN-LEFT: 5px; BORDER-LEFT: #3c78b5 1px solid; MARGIN-RIGHT: 0px\r
-}\r
-TABLE.confluenceTable {\r
-       MARGIN: 5px; BORDER-COLLAPSE: collapse\r
-}\r
-TABLE.confluenceTable TD.confluenceTd {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-TABLE.confluenceTable TH.confluenceTh {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-TD.confluenceTd {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-TH.confluenceTh {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-DIV.small {\r
-       FONT-SIZE: 9px\r
-}\r
-H1.pagename {\r
-       MARGIN-TOP: 0px\r
-}\r
-IMG.inline {\r
-       \r
-}\r
-.loginform {\r
-       BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 5px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.previewnote {\r
-       FONT-SIZE: 11px; COLOR: red; TEXT-ALIGN: center\r
-}\r
-.previewcontent {\r
-       BACKGROUND: #e0e0e0\r
-}\r
-.messagecontent {\r
-       BACKGROUND: #e0e0e0\r
-}\r
-.conflictnote {\r
-       \r
-}\r
-.createlink {\r
-       COLOR: maroon\r
-}\r
-A.createlink {\r
-       COLOR: maroon\r
-}\r
-.templateparameter {\r
-       FONT-SIZE: 9px; COLOR: darkblue\r
-}\r
-.diffadded {\r
-       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; BACKGROUND: #ddffdd; PADDING-BOTTOM: 1px; BORDER-LEFT: darkgreen 4px solid; PADDING-TOP: 1px\r
-}\r
-.diffdeleted {\r
-       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; BACKGROUND: #ffdddd; PADDING-BOTTOM: 1px; BORDER-LEFT: darkred 4px solid; COLOR: #999; PADDING-TOP: 1px\r
-}\r
-.diffnochange {\r
-       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; BORDER-LEFT: lightgrey 4px solid; PADDING-TOP: 1px\r
-}\r
-.differror {\r
-       BACKGROUND: brown\r
-}\r
-.diff {\r
-       FONT-SIZE: 12px; LINE-HEIGHT: 14px; FONT-FAMILY: lucida console, courier new, fixed-width\r
-}\r
-.diffaddedchars {\r
-       FONT-WEIGHT: bolder; BACKGROUND-COLOR: #99ff99\r
-}\r
-.diffremovedchars {\r
-       FONT-WEIGHT: bolder; BACKGROUND-COLOR: #ff9999; TEXT-DECORATION: line-through\r
-}\r
-.greybackground {\r
-       BACKGROUND: #eeefcc\r
-}\r
-.greybox {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid\r
-}\r
-.borderedGreyBox {\r
-       BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.greyboxfilled {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid\r
-}\r
-.navBackgroundBox {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 22px; BACKGROUND: #3c78b5; PADDING-BOTTOM: 5px; COLOR: white; PADDING-TOP: 5px; FONT-FAMILY: Arial, sans-serif; TEXT-DECORATION: none\r
-}\r
-.previewBoxTop {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 5px 0px 0px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 0px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-.previewContent {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #3c78b5 0px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #3c78b5 0px solid; BACKGROUND-COLOR: #fff\r
-}\r
-.previewBoxBottom {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #3c78b5 0px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px 0px 5px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center\r
-}\r
-.functionbox {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.functionbox-greyborder {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.search-highlight {\r
-       BACKGROUND-COLOR: #ffffcc\r
-}\r
-.rowNormal {\r
-       BACKGROUND-COLOR: #ffffff\r
-}\r
-.rowAlternate {\r
-       BACKGROUND-COLOR: #f7f7f7\r
-}\r
-.rowAlternateNoBottomColor {\r
-       BACKGROUND-COLOR: #f7f7f7\r
-}\r
-.rowAlternateNoBottomNoColor {\r
-       \r
-}\r
-.rowAlternateNoBottomColor TD {\r
-       BORDER-BOTTOM-WIDTH: 0px\r
-}\r
-.rowAlternateNoBottomNoColor TD {\r
-       BORDER-BOTTOM-WIDTH: 0px\r
-}\r
-.rowHighlight {\r
-       BACKGROUND-COLOR: #eeefcc\r
-}\r
-TD.greenbar {\r
-       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #00df00; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid\r
-}\r
-TD.redbar {\r
-       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #df0000; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid\r
-}\r
-TD.darkredbar {\r
-       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #af0000; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid\r
-}\r
-TR.testpassed {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0px; PADDING-TOP: 0px\r
-}\r
-TR.testfailed {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING-BOTTOM: 0px; PADDING-TOP: 0px\r
-}\r
-.toolbar {\r
-       MARGIN: 0px; BORDER-COLLAPSE: collapse\r
-}\r
-.toolbar TD {\r
-       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; COLOR: #ccc; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-TD.noformatting {\r
-       BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-ALIGN: center\r
-}\r
-.commentblock {\r
-       MARGIN: 12px 0px\r
-}\r
-.license-eval {\r
-       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center\r
-}\r
-.license-none {\r
-       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center\r
-}\r
-.license-nonprofit {\r
-       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center\r
-}\r
-.license-eval {\r
-       BACKGROUND-COLOR: #ffcccc\r
-}\r
-.license-none {\r
-       BACKGROUND-COLOR: #ffcccc\r
-}\r
-.license-eval B {\r
-       COLOR: #990000\r
-}\r
-.license-none B {\r
-       COLOR: #990000\r
-}\r
-.license-nonprofit {\r
-       BACKGROUND-COLOR: #ffffff\r
-}\r
-.bottomshadow {\r
-       BACKGROUND-IMAGE: url(/confluence/images/border/border_bottom.gif); BACKGROUND-REPEAT: repeat-x; HEIGHT: 12px\r
-}\r
-.navmenu .operations LI {\r
-       PADDING-LEFT: 0px; MARGIN-LEFT: 0px; LIST-STYLE-TYPE: none\r
-}\r
-.navmenu .operations UL {\r
-       PADDING-LEFT: 0px; MARGIN-LEFT: 0px; LIST-STYLE-TYPE: none\r
-}\r
-.navmenu .operations UL {\r
-       MARGIN-BOTTOM: 9px\r
-}\r
-.navmenu .label {\r
-       \r
-}\r
-.toolbar DIV {\r
-       DISPLAY: none\r
-}\r
-.toolbar .label {\r
-       DISPLAY: none\r
-}\r
-.toolbar .operations {\r
-       DISPLAY: block\r
-}\r
-.toolbar .operations UL {\r
-       DISPLAY: inline; PADDING-LEFT: 0px; MARGIN-LEFT: 10px; LIST-STYLE-TYPE: none\r
-}\r
-.toolbar .operations LI {\r
-       DISPLAY: inline; LIST-STYLE-TYPE: none\r
-}\r
-#foldertab {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 3px; FONT: bold 11px Verdana, sans-serif; MARGIN-LEFT: 0px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-#foldertab LI {\r
-       DISPLAY: inline; MARGIN: 0px; LIST-STYLE-TYPE: none\r
-}\r
-#foldertab LI A {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 0.5em; BACKGROUND: #3c78b5; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px; TEXT-DECORATION: none\r
-}\r
-#foldertab LI A:link {\r
-       COLOR: #ffffff\r
-}\r
-#foldertab LI A:visited {\r
-       COLOR: #ffffff\r
-}\r
-#foldertab LI A:hover {\r
-       BORDER-LEFT-COLOR: #003366; BACKGROUND: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BORDER-RIGHT-COLOR: #003366\r
-}\r
-#foldertab LI A.current {\r
-       BACKGROUND: white; COLOR: black; BORDER-BOTTOM: white 1px solid\r
-}\r
-#foldertab LI A.current:link {\r
-       COLOR: black\r
-}\r
-#foldertab LI A.current:visited {\r
-       COLOR: black\r
-}\r
-#foldertab LI A.current:hover {\r
-       BACKGROUND: white; COLOR: black; BORDER-BOTTOM: white 1px solid\r
-}\r
-UL#squaretab {\r
-       PADDING-LEFT: 0px; FONT: bold 8px Verdana, sans-serif; MARGIN-LEFT: 0px; WHITE-SPACE: nowrap\r
-}\r
-#squaretab LI {\r
-       DISPLAY: inline; LIST-STYLE-TYPE: none\r
-}\r
-#squaretab A {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-#squaretab A:link {\r
-       COLOR: #fff; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none\r
-}\r
-#squaretab A:visited {\r
-       COLOR: #fff; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none\r
-}\r
-#squaretab A:hover {\r
-       BORDER-LEFT-COLOR: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none; BORDER-RIGHT-COLOR: #003366\r
-}\r
-#squaretab LI A#current {\r
-       BACKGROUND: white; COLOR: black\r
-}\r
-.blogcalendar  {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; LINE-HEIGHT: 140%; PADDING-TOP: 2px; FONT-FAMILY: verdana, arial, sans-serif\r
-}\r
-TABLE.blogcalendar {\r
-       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; BORDER-LEFT: #3c78b5 1px solid; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-.blogcalendar TH.calendarhead {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #ffffff; PADDING-TOP: 2px; LETTER-SPACING: 0.3em; BACKGROUND-COLOR: #3c78b5\r
-}\r
-A.calendarhead {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #ffffff; PADDING-TOP: 2px; LETTER-SPACING: 0.3em; BACKGROUND-COLOR: #3c78b5\r
-}\r
-.calendarhead:visited {\r
-       COLOR: white\r
-}\r
-.calendarhead:active {\r
-       COLOR: white\r
-}\r
-.calendarhead:hover {\r
-       COLOR: white\r
-}\r
-.blogcalendar TH {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.blogcalendar TD {\r
-       FONT-WEIGHT: normal; FONT-SIZE: x-small\r
-}\r
-.searchGroup {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 10px; PADDING-TOP: 0px\r
-}\r
-.searchGroupHeading {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 1px; COLOR: #ffffff; PADDING-TOP: 2px; BACKGROUND-COLOR: #3c78b5\r
-}\r
-.searchItem {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; PADDING-TOP: 1px\r
-}\r
-.searchItemSelected {\r
-       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; BACKGROUND: #ddd; PADDING-BOTTOM: 1px; PADDING-TOP: 1px\r
-}\r
-.permissionHeading {\r
-       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 16px; BORDER-LEFT: 0px solid; BORDER-BOTTOM: #bbb 1px solid; TEXT-ALIGN: left\r
-}\r
-.permissionTab {\r
-       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 10px; BACKGROUND: #3c78b5; BORDER-LEFT: 1px solid; COLOR: #ffffff; BORDER-BOTTOM: 0px solid\r
-}\r
-.permissionSuperTab {\r
-       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; BACKGROUND: #003366; BORDER-LEFT: 1px solid; COLOR: #ffffff; BORDER-BOTTOM: 0px solid\r
-}\r
-.permissionCell {\r
-       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; BORDER-LEFT: #bbb 1px solid; BORDER-BOTTOM: 0px solid\r
-}\r
-.warningPanel {\r
-       BORDER-RIGHT: #f0c000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #f0c000 1px solid; PADDING-LEFT: 8px; BACKGROUND: #ffffce; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #f0c000 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #f0c000 1px solid\r
-}\r
-.alertPanel {\r
-       BORDER-RIGHT: #c00 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #c00 1px solid; PADDING-LEFT: 8px; BACKGROUND: #ffcccc; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #c00 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #c00 1px solid\r
-}\r
-.infoPanel {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 8px; BACKGROUND: #d8e4f1; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-.optionPadded {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px\r
-}\r
-.optionSelected {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: -1px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #ffffcc\r
-}\r
-.optionSelected A {\r
-       FONT-WEIGHT: bold; COLOR: black; TEXT-DECORATION: none\r
-}\r
-.noteMacro {\r
-       BORDER-RIGHT: #f0c000 1px solid; BORDER-TOP: #f0c000 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #f0c000 1px solid; BORDER-BOTTOM: #f0c000 1px solid; BACKGROUND-COLOR: #ffffce; TEXT-ALIGN: left\r
-}\r
-.warningMacro {\r
-       BORDER-RIGHT: #c00 1px solid; BORDER-TOP: #c00 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #c00 1px solid; BORDER-BOTTOM: #c00 1px solid; BACKGROUND-COLOR: #fcc; TEXT-ALIGN: left\r
-}\r
-.infoMacro {\r
-       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #3c78b5 1px solid; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d8e4f1; TEXT-ALIGN: left\r
-}\r
-.tipMacro {\r
-       BORDER-RIGHT: #090 1px solid; BORDER-TOP: #090 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #090 1px solid; BORDER-BOTTOM: #090 1px solid; BACKGROUND-COLOR: #dfd; TEXT-ALIGN: left\r
-}\r
-.informationMacroPadding {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; PADDING-TOP: 5px\r
-}\r
-TABLE.infoMacro TD {\r
-       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none\r
-}\r
-TABLE.warningMacro TD {\r
-       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none\r
-}\r
-TABLE.tipMacro TD {\r
-       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none\r
-}\r
-TABLE.noteMacro TD {\r
-       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none\r
-}\r
-TABLE.sectionMacro TD {\r
-       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none\r
-}\r
-TABLE.sectionMacroWithBorder TD.columnMacro {\r
-       BORDER-RIGHT: #cccccc 1px dashed; BORDER-TOP: #cccccc 1px dashed; BORDER-LEFT: #cccccc 1px dashed; BORDER-BOTTOM: #cccccc 1px dashed\r
-}\r
-.pagecontent {\r
-       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; TEXT-ALIGN: left\r
-}\r
-.topBarDiv A:link {\r
-       COLOR: #ffffff\r
-}\r
-.topBarDiv A:visited {\r
-       COLOR: #ffffff\r
-}\r
-.topBarDiv A:active {\r
-       COLOR: #ffffff\r
-}\r
-.topBarDiv A:hover {\r
-       COLOR: #ffffff\r
-}\r
-.topBarDiv {\r
-       COLOR: #ffffff\r
-}\r
-.topBar {\r
-       BACKGROUND-COLOR: #003366\r
-}\r
-.greyLinks A:link {\r
-       COLOR: #666666; TEXT-DECORATION: underline\r
-}\r
-.greyLinks A:visited {\r
-       COLOR: #666666; TEXT-DECORATION: underline\r
-}\r
-.greyLinks A:active {\r
-       COLOR: #666666; TEXT-DECORATION: underline\r
-}\r
-.greyLinks A:hover {\r
-       COLOR: #666666; TEXT-DECORATION: underline\r
-}\r
-.greyLinks {\r
-       PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; COLOR: #666666; PADDING-TOP: 10px\r
-}\r
-.logoSpaceLink {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.logoSpaceLink A:link {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.logoSpaceLink A:visited {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.logoSpaceLink A:active {\r
-       COLOR: #999999; TEXT-DECORATION: none\r
-}\r
-.logoSpaceLink A:hover {\r
-       COLOR: #003366; TEXT-DECORATION: none\r
-}\r
-.basicPanelContainer {\r
-       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 2px; MARGIN-BOTTOM: 8px; BORDER-LEFT: #3c78b5 1px solid; WIDTH: 100%; BORDER-BOTTOM: #3c78b5 1px solid\r
-}\r
-.basicPanelTitle {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: black; PADDING-TOP: 5px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-.basicPanelBody {\r
-       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 5px\r
-}\r
-.separatorLinks A:link {\r
-       COLOR: white\r
-}\r
-.separatorLinks A:visited {\r
-       COLOR: white\r
-}\r
-.separatorLinks A:active {\r
-       COLOR: white\r
-}\r
-.greynavbar {\r
-       BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 2px; BACKGROUND-COLOR: #eeefcc\r
-}\r
-DIV.headerField {\r
-       FLOAT: left; WIDTH: auto; HEIGHT: 100%\r
-}\r
-.headerFloat {\r
-       MARGIN-LEFT: auto; WIDTH: 50%\r
-}\r
-.headerFloatLeft {\r
-       FLOAT: left; MARGIN-BOTTOM: 10px; MARGIN-RIGHT: 20px\r
-}\r
-#headerRow {\r
-       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px\r
-}\r
-DIV.license-personal {\r
-       COLOR: #ffffff; BACKGROUND-COLOR: #003366\r
-}\r
-DIV.license-personal A {\r
-       COLOR: #ffffff\r
-}\r
-.greyFormBox {\r
-       BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #cccccc 1px solid\r
-}\r
-.marginlessForm {\r
-       MARGIN: 0px\r
-}\r
-.openPageHighlight {\r
-       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #ffffcc\r
-}\r
-.editPageInsertLinks {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #666666\r
-}\r
-.editPageInsertLinks A {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #666666\r
-}\r
-.top10 A {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 2em; COLOR: #003366\r
-}\r
-.top25 A {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 1.6em; COLOR: #003366\r
-}\r
-.top50 A {\r
-       FONT-SIZE: 1.4em; COLOR: #003366\r
-}\r
-.top100 A {\r
-       FONT-SIZE: 1.2em; COLOR: #003366\r
-}\r
-.heatmap {\r
-       MARGIN: 0px auto; WIDTH: 95%; LIST-STYLE-TYPE: none\r
-}\r
-.heatmap A {\r
-       TEXT-DECORATION: none\r
-}\r
-.heatmap A:hover {\r
-       TEXT-DECORATION: underline\r
-}\r
-.heatmap LI {\r
-       DISPLAY: inline\r
-}\r
-.minitab {\r
-       PADDING-RIGHT: 0px; MARGIN-TOP: 1px; PADDING-LEFT: 8px; FLOAT: none; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 3px; FONT: bold 9px Verdana, sans-serif; MARGIN-LEFT: 0px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; TEXT-DECORATION: none\r
-}\r
-.selectedminitab {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 1px; PADDING-LEFT: 0.5em; BACKGROUND: white; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; COLOR: #000000; PADDING-TOP: 3px; BORDER-BOTTOM: white 1px solid; TEXT-DECORATION: none\r
-}\r
-.unselectedminitab {\r
-       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 1px; PADDING-LEFT: 0.5em; BACKGROUND: #3c78b5; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; COLOR: #ffffff; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px; TEXT-DECORATION: none\r
-}\r
-A.unselectedminitab:hover {\r
-       BORDER-LEFT-COLOR: #003366; BACKGROUND: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BORDER-RIGHT-COLOR: #003366\r
-}\r
-A.unselectedminitab:link {\r
-       COLOR: white\r
-}\r
-A.unselectedminitab:visited {\r
-       COLOR: white\r
-}\r
-A.selectedminitab:link {\r
-       COLOR: black\r
-}\r
-A.selectedminitab:visited {\r
-       COLOR: black\r
-}\r
-.linkerror {\r
-       BACKGROUND-COLOR: #fcc\r
-}\r
-A.labelOperationLink:link {\r
-       TEXT-DECORATION: underline\r
-}\r
-A.labelOperationLink:active {\r
-       TEXT-DECORATION: underline\r
-}\r
-A.labelOperationLink:visited {\r
-       TEXT-DECORATION: underline\r
-}\r
-A.labelOperationLink:hover {\r
-       TEXT-DECORATION: underline\r
-}\r
-A.newLabel:link {\r
-       BACKGROUND-COLOR: #ddffdd\r
-}\r
-A.newLabel:active {\r
-       BACKGROUND-COLOR: #ddffdd\r
-}\r
-A.newLabel:visited {\r
-       BACKGROUND-COLOR: #ddffdd\r
-}\r
-A.newLabel:hover {\r
-       BACKGROUND-COLOR: #ddffdd\r
-}\r
-UL.square {\r
-       LIST-STYLE-TYPE: square\r
-}\r
-.inline-control-link {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 9px; BACKGROUND: #ffc; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #666; PADDING-TOP: 2px; TEXT-DECORATION: none\r
-}\r
-.inline-control-link A:link {\r
-       TEXT-DECORATION: none\r
-}\r
-.inline-control-link A:active {\r
-       TEXT-DECORATION: none\r
-}\r
-.inline-control-link A:visited {\r
-       TEXT-DECORATION: none\r
-}\r
-.inline-control-link A:hover {\r
-       TEXT-DECORATION: none\r
-}\r
-.inline-control-link {\r
-       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 9px; BACKGROUND: #ffc; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; CURSOR: pointer; COLOR: #666; PADDING-TOP: 2px; TEXT-DECORATION: none\r
-}\r
-DIV.auto_complete {\r
-       BACKGROUND: #fff; WIDTH: 350px\r
-}\r
-DIV.auto_complete UL {\r
-       BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #888 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #888 1px solid; WIDTH: 100%; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; LIST-STYLE-TYPE: none\r
-}\r
-DIV.auto_complete UL LI {\r
-       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px\r
-}\r
-DIV.auto_complete UL LI.selected {\r
-       BACKGROUND-COLOR: #ffb\r
-}\r
-DIV.auto_complete UL STRONG.highlight {\r
-       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #800; PADDING-TOP: 0px\r
-}\r
-.toogleFormDiv {\r
-       BORDER-RIGHT: #a7a6aa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #a7a6aa 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #a7a6aa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #a7a6aa 1px solid; BACKGROUND-COLOR: white\r
-}\r
-.toogleInfoDiv {\r
-       BORDER-RIGHT: #a7a6aa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #a7a6aa 1px solid; MARGIN-TOP: 10px; DISPLAY: none; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #a7a6aa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #a7a6aa 1px solid; BACKGROUND-COLOR: white\r
-}\r
-.inputSection {\r
-       MARGIN-BOTTOM: 20px\r
-}\r
-#editBox {\r
-       BACKGROUND-COLOR: #eeefcc\r
-}\r
-.leftnav LI A {\r
-       PADDING-RIGHT: 2px; BORDER-TOP: #3c78b5 1px solid; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 0px; COLOR: white; PADDING-TOP: 2px; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none\r
-}\r
-.leftnav LI A:active {\r
-       COLOR: white\r
-}\r
-.leftnav LI A:visited {\r
-       COLOR: white\r
-}\r
-.leftnav LI A:hover {\r
-       COLOR: white; BACKGROUND-COLOR: #003366\r
-}\r
-.replaced {\r
-       BACKGROUND-COLOR: #33cc66\r
-}\r
-.topPadding {\r
-       MARGIN-TOP: 20px\r
-}\r
-.form-block {\r
-       PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px\r
-}\r
-.form-error-block {\r
-       PADDING-RIGHT: 12px; BORDER-TOP: #eeefcc 1px solid; PADDING-LEFT: 12px; BACKGROUND: #fcc; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #eeefcc 1px solid\r
-}\r
-.form-element-large {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.form-element-small {\r
-       FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif\r
-}\r
-.form-header {\r
-       PADDING-RIGHT: 12px; BORDER-TOP: #eeefcc 1px solid; PADDING-LEFT: 12px; BACKGROUND: lightyellow; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #eeefcc 1px solid\r
-}\r
-.form-header P {\r
-       MARGIN: 12px 0px; LINE-HEIGHT: normal\r
-}\r
-.form-block P {\r
-       MARGIN: 12px 0px; LINE-HEIGHT: normal\r
-}\r
-.form-error-block P {\r
-       MARGIN: 12px 0px; LINE-HEIGHT: normal\r
-}\r
-.form-example {\r
-       FONT-SIZE: 11px; COLOR: #888\r
-}\r
-.form-divider {\r
-       MARGIN-BOTTOM: 6px; BORDER-BOTTOM: #ccc 1px solid\r
-}\r
-.form-buttons {\r
-       PADDING-RIGHT: 10px; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: 6px; PADDING-LEFT: 10px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center\r
-}\r
-.form-buttons INPUT {\r
-       WIDTH: 100px\r
-}\r
-.form-block .error {\r
-       PADDING-RIGHT: 6px; PADDING-LEFT: 6px; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px\r
-}\r
+BODY {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+P {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+TD {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+TABLE {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+TR {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+.bodytext {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+.stepfield {
+       FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+#PageContent {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff; TEXT-ALIGN: left
+}
+BODY {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: center
+}
+.monospaceInput {
+       FONT: 12px monospace
+}
+.wiki-content P {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 16px 0px; PADDING-TOP: 0px
+}
+.commentblock P {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 16px 0px; PADDING-TOP: 0px
+}
+.wiki-content-preview {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px
+}
+UL {
+       MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+OL {
+       MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+PRE {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px 5px 5px 15px; PADDING-TOP: 0px; TEXT-ALIGN: left
+}
+.helpheading {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 4px; MARGIN: 10px 0px 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d0d9bd
+}
+.helpcontent {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 20px; PADDING-TOP: 4px; BACKGROUND-COLOR: #f5f7f1
+}
+.code {
+       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; FONT-SIZE: 11px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px dashed; LINE-HEIGHT: 13px; BORDER-BOTTOM: #3c78b5 1px dashed; FONT-FAMILY: Courier
+}
+.focusedComment {
+       BACKGROUND: #ffffce
+}
+.commentBox {
+       BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #bbb 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 5px 0px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #bbb 1px solid
+}
+.focusedComment {
+       BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #bbb 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 5px 0px; BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #bbb 1px solid
+}
+.codeHeader {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+.codeContent {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: left
+}
+.preformatted {
+       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; FONT-SIZE: 11px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px dashed; LINE-HEIGHT: 13px; BORDER-BOTTOM: #3c78b5 1px dashed; FONT-FAMILY: Courier
+}
+.preformattedHeader {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+.preformattedContent {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BACKGROUND-COLOR: #eeefcc
+}
+.panel {
+       BORDER-RIGHT: #3c78b5 1px dashed; BORDER-TOP: #3c78b5 1px dashed; MARGIN: 0px 10px 10px; BORDER-LEFT: #3c78b5 1px dashed; BORDER-BOTTOM: #3c78b5 1px dashed
+}
+.panelHeader {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px dashed; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+.panelContent {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #eeefcc
+}
+.anonymousAlert {
+       BORDER-RIGHT: red 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: red 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 11px; PADDING-BOTTOM: 10px; MARGIN: 4px; BORDER-LEFT: red 1px dashed; LINE-HEIGHT: 13px; PADDING-TOP: 10px; BORDER-BOTTOM: red 1px dashed; BACKGROUND-COLOR: #eeefcc
+}
+.lockAlert {
+       BORDER-RIGHT: red 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: red 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 11px; PADDING-BOTTOM: 10px; MARGIN: 4px; BORDER-LEFT: red 1px dashed; WIDTH: 50%; LINE-HEIGHT: 13px; PADDING-TOP: 10px; BORDER-BOTTOM: red 1px dashed; BACKGROUND-COLOR: #eeefcc
+}
+.code-keyword {
+       COLOR: #000091
+}
+.code-object {
+       COLOR: #910091
+}
+.code-quote {
+       COLOR: #009100
+}
+.code-comment {
+       COLOR: #808080
+}
+.code-xml .code-keyword {
+       FONT-WEIGHT: bold
+}
+.code-tag {
+       COLOR: #000091
+}
+.breadcrumbs {
+       BORDER-RIGHT: #3c78b5 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 11px; PADDING-BOTTOM: 3px; BORDER-LEFT: #3c78b5 0px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+.navmenu {
+       BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid
+}
+.menuheading {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+.menuitems {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 20px; PADDING-TOP: 4px
+}
+.rightpanel {
+       BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid
+}
+#helpheading {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d0d9bd; TEXT-ALIGN: left
+}
+#helpcontent {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px; BACKGROUND-COLOR: #f5f7f1
+}
+.helptab-unselected {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #f5f7f1
+}
+.helptab-selected {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #d0d9bd
+}
+.helptabs {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 5px; BACKGROUND-COLOR: #f5f7f1
+}
+.infopanel-heading {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; PADDING-TOP: 4px
+}
+.pagebody {
+       
+}
+.pageheader {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 1px solid
+}
+.pagetitle {
+       FONT-WEIGHT: bold; FONT-SIZE: 22px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif
+}
+.newpagetitle {
+       COLOR: #ccc! important
+}
+.steptitle {
+       FONT-WEIGHT: bold; FONT-SIZE: 18px; MARGIN-BOTTOM: 7px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif
+}
+.substeptitle {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 1px; MARGIN: 2px 4px 4px; COLOR: #003366; PADDING-TOP: 2px; FONT-FAMILY: Arial, sans-serif
+}
+.stepdesc {
+       MARGIN-TOP: 7px; FONT-WEIGHT: normal; FONT-SIZE: 11px; MARGIN-BOTTOM: 7px; COLOR: #666666; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, arial, sans-serif
+}
+.steplabel {
+       FONT-WEIGHT: bold; FLOAT: left; WIDTH: 15%; COLOR: black; MARGIN-RIGHT: 4px; TEXT-ALIGN: right
+}
+.stepfield {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 5px; PADDING-TOP: 5px
+}
+.submitButtons {
+       MARGIN-TOP: 5px; TEXT-ALIGN: right
+}
+.formtitle {
+       FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif
+}
+.sectionbottom {
+       BORDER-BOTTOM: #3c78b5 1px solid
+}
+.topRow {
+       BORDER-TOP: #3c78b5 2px solid
+}
+.tabletitle {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 14px; PADDING-BOTTOM: 2px; MARGIN: 8px 4px 2px 0px; COLOR: #003366; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 2px solid; FONT-FAMILY: Arial, sans-serif
+}
+.pagesubheading {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10px; PADDING-BOTTOM: 5px; COLOR: #666666; PADDING-TOP: 0px
+}
+HR {
+       
+}
+A:link {
+       COLOR: #003366
+}
+A:visited {
+       COLOR: #003366
+}
+A:active {
+       COLOR: #003366
+}
+A:hover {
+       COLOR: #003366
+}
+H1 A:link {
+       TEXT-DECORATION: none
+}
+H1 A:visited {
+       TEXT-DECORATION: none
+}
+H1 A:active {
+       TEXT-DECORATION: none
+}
+H1 A:hover {
+       BORDER-BOTTOM: #003366 1px dotted
+}
+UNKNOWN {
+       MARGIN-TOP: 3px
+}
+.logocell {
+       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px
+}
+INPUT {
+       FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: verdana, geneva, arial, sans-serif
+}
+TEXTAREA {
+       FONT-SIZE: 11px; COLOR: #333333; FONT-FAMILY: verdana, geneva, arial, sans-serif
+}
+TEXTAREA.editor {
+       FONT-SIZE: 11px; COLOR: #333333; FONT-FAMILY: verdana, geneva, arial, sans-serif
+}
+.spacenametitle-printable {
+       MARGIN: 0px; FONT: 100 20px/25px Impact, Arial, Helvetica; COLOR: #999999
+}
+.spacenametitle-printable A {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.spacenametitle-printable A:visited {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.blogDate {
+       FONT-WEIGHT: bold; COLOR: black; TEXT-DECORATION: none
+}
+.blogSurtitle {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid
+}
+.blogHeading {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 20px; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px
+}
+.blogHeading A {
+       COLOR: black; TEXT-DECORATION: none
+}
+.endsection {
+       MARGIN-TOP: 10px; COLOR: #666666; align: right
+}
+.endsectionleftnav {
+       MARGIN-TOP: 10px; COLOR: #666666; align: right
+}
+H1 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 24px; PADDING-BOTTOM: 2px; MARGIN: 36px 0px 4px; COLOR: #003366; LINE-HEIGHT: normal; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+H2 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 18px; PADDING-BOTTOM: 2px; MARGIN: 27px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+H3 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 14px; PADDING-BOTTOM: 2px; MARGIN: 21px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+H4 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; MARGIN: 18px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+H4.search {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; MARGIN: 18px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 4px; BACKGROUND-COLOR: #eeefcc
+}
+H5 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 2px; MARGIN: 14px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+H6 {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 8px; PADDING-BOTTOM: 2px; MARGIN: 14px 0px 4px; LINE-HEIGHT: normal; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+.smallfont {
+       FONT-SIZE: 10px
+}
+.descfont {
+       FONT-SIZE: 10px; COLOR: #666666
+}
+.smallerfont {
+       FONT-SIZE: 9px
+}
+.smalltext {
+       FONT-SIZE: 10px; COLOR: #666666
+}
+.smalltext A {
+       COLOR: #666666
+}
+.smalltext-blue {
+       FONT-SIZE: 10px; COLOR: #3c78b5
+}
+.surtitle {
+       FONT-SIZE: 14px; MARGIN-BOTTOM: 5px; MARGIN-LEFT: 1px; COLOR: #666666
+}
+.navItemOver {
+       FONT-WEIGHT: bold; FONT-SIZE: 10px; CURSOR: pointer; COLOR: #ffffff; BACKGROUND-COLOR: #003366; voice-family: inherit
+}
+.navItemOver A {
+       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none
+}
+.navItemOver A:visited {
+       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none
+}
+.navItemOver A:hover {
+       COLOR: #ffffff; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none
+}
+.navItem {
+       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; BACKGROUND-COLOR: #3c78b5
+}
+.navItem A {
+       COLOR: #ffffff; TEXT-DECORATION: none
+}
+.navItem A:hover {
+       COLOR: #ffffff; TEXT-DECORATION: none
+}
+.navItem A:visited {
+       COLOR: #ffffff; TEXT-DECORATION: none
+}
+DIV.padded {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px
+}
+DIV.thickPadded {
+       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px
+}
+H3.macrolibrariestitle {
+       MARGIN: 0px
+}
+DIV.centered {
+       MARGIN: 10px; TEXT-ALIGN: center
+}
+DIV.centered TABLE {
+       MARGIN: 0px auto; TEXT-ALIGN: left
+}
+.tableview TABLE {
+       MARGIN: 0px
+}
+.tableview TH {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; COLOR: #003366; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 2px solid; TEXT-ALIGN: left
+}
+.tableview TD {
+       BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 10px; BORDER-TOP: #ccc 0px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; MARGIN: 0px; BORDER-LEFT: #ccc 0px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left
+}
+.grid {
+       MARGIN: 2px 0px 5px; BORDER-COLLAPSE: collapse
+}
+.grid TH {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center
+}
+.grid TD {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid
+}
+.gridHover {
+       BACKGROUND-COLOR: #f9f9f9
+}
+TD.infocell {
+       BACKGROUND-COLOR: #eeefcc
+}
+.label {
+       FONT-WEIGHT: bold; COLOR: #003366
+}
+LABEL {
+       FONT-WEIGHT: bold; COLOR: #003366
+}
+.error {
+       BACKGROUND-COLOR: #fcc
+}
+.errorBox {
+       BORDER-RIGHT: #c00 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #c00 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 5px; BORDER-LEFT: #c00 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #c00 1px solid; BACKGROUND-COLOR: #fcc
+}
+.errorMessage {
+       COLOR: #c00
+}
+.success {
+       BACKGROUND-COLOR: #dfd
+}
+.successBox {
+       BORDER-RIGHT: #090 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #090 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; MARGIN-BOTTOM: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #090 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #090 1px solid; BACKGROUND-COLOR: #dfd
+}
+BLOCKQUOTE {
+       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; MARGIN-LEFT: 5px; BORDER-LEFT: #3c78b5 1px solid; MARGIN-RIGHT: 0px
+}
+TABLE.confluenceTable {
+       MARGIN: 5px; BORDER-COLLAPSE: collapse
+}
+TABLE.confluenceTable TD.confluenceTd {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid
+}
+TABLE.confluenceTable TH.confluenceTh {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+TD.confluenceTd {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid
+}
+TH.confluenceTh {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+DIV.small {
+       FONT-SIZE: 9px
+}
+H1.pagename {
+       MARGIN-TOP: 0px
+}
+IMG.inline {
+       
+}
+.loginform {
+       BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 5px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid
+}
+.previewnote {
+       FONT-SIZE: 11px; COLOR: red; TEXT-ALIGN: center
+}
+.previewcontent {
+       BACKGROUND: #e0e0e0
+}
+.messagecontent {
+       BACKGROUND: #e0e0e0
+}
+.conflictnote {
+       
+}
+.createlink {
+       COLOR: maroon
+}
+A.createlink {
+       COLOR: maroon
+}
+.templateparameter {
+       FONT-SIZE: 9px; COLOR: darkblue
+}
+.diffadded {
+       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; BACKGROUND: #ddffdd; PADDING-BOTTOM: 1px; BORDER-LEFT: darkgreen 4px solid; PADDING-TOP: 1px
+}
+.diffdeleted {
+       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; BACKGROUND: #ffdddd; PADDING-BOTTOM: 1px; BORDER-LEFT: darkred 4px solid; COLOR: #999; PADDING-TOP: 1px
+}
+.diffnochange {
+       PADDING-RIGHT: 1px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; BORDER-LEFT: lightgrey 4px solid; PADDING-TOP: 1px
+}
+.differror {
+       BACKGROUND: brown
+}
+.diff {
+       FONT-SIZE: 12px; LINE-HEIGHT: 14px; FONT-FAMILY: lucida console, courier new, fixed-width
+}
+.diffaddedchars {
+       FONT-WEIGHT: bolder; BACKGROUND-COLOR: #99ff99
+}
+.diffremovedchars {
+       FONT-WEIGHT: bolder; BACKGROUND-COLOR: #ff9999; TEXT-DECORATION: line-through
+}
+.greybackground {
+       BACKGROUND: #eeefcc
+}
+.greybox {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid
+}
+.borderedGreyBox {
+       BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+.greyboxfilled {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid
+}
+.navBackgroundBox {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 22px; BACKGROUND: #3c78b5; PADDING-BOTTOM: 5px; COLOR: white; PADDING-TOP: 5px; FONT-FAMILY: Arial, sans-serif; TEXT-DECORATION: none
+}
+.previewBoxTop {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 5px 0px 0px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 0px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+.previewContent {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #3c78b5 0px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #3c78b5 0px solid; BACKGROUND-COLOR: #fff
+}
+.previewBoxBottom {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #3c78b5 0px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px 0px 5px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc; TEXT-ALIGN: center
+}
+.functionbox {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+.functionbox-greyborder {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 1px 1px 10px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #eeefcc
+}
+.search-highlight {
+       BACKGROUND-COLOR: #ffffcc
+}
+.rowNormal {
+       BACKGROUND-COLOR: #ffffff
+}
+.rowAlternate {
+       BACKGROUND-COLOR: #f7f7f7
+}
+.rowAlternateNoBottomColor {
+       BACKGROUND-COLOR: #f7f7f7
+}
+.rowAlternateNoBottomNoColor {
+       
+}
+.rowAlternateNoBottomColor TD {
+       BORDER-BOTTOM-WIDTH: 0px
+}
+.rowAlternateNoBottomNoColor TD {
+       BORDER-BOTTOM-WIDTH: 0px
+}
+.rowHighlight {
+       BACKGROUND-COLOR: #eeefcc
+}
+TD.greenbar {
+       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #00df00; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid
+}
+TD.redbar {
+       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #df0000; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid
+}
+TD.darkredbar {
+       BORDER-RIGHT: #9c9c9c 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #9c9c9c 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #af0000; PADDING-BOTTOM: 0px; BORDER-LEFT: #9c9c9c 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #9c9c9c 1px solid
+}
+TR.testpassed {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+TR.testfailed {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+.toolbar {
+       MARGIN: 0px; BORDER-COLLAPSE: collapse
+}
+.toolbar TD {
+       BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; COLOR: #ccc; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid
+}
+TD.noformatting {
+       BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; TEXT-ALIGN: center
+}
+.commentblock {
+       MARGIN: 12px 0px
+}
+.license-eval {
+       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center
+}
+.license-none {
+       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center
+}
+.license-nonprofit {
+       BORDER-TOP: #bbbbbb 1px solid; FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center
+}
+.license-eval {
+       BACKGROUND-COLOR: #ffcccc
+}
+.license-none {
+       BACKGROUND-COLOR: #ffcccc
+}
+.license-eval B {
+       COLOR: #990000
+}
+.license-none B {
+       COLOR: #990000
+}
+.license-nonprofit {
+       BACKGROUND-COLOR: #ffffff
+}
+.bottomshadow {
+       BACKGROUND-IMAGE: url(/confluence/images/border/border_bottom.gif); BACKGROUND-REPEAT: repeat-x; HEIGHT: 12px
+}
+.navmenu .operations LI {
+       PADDING-LEFT: 0px; MARGIN-LEFT: 0px; LIST-STYLE-TYPE: none
+}
+.navmenu .operations UL {
+       PADDING-LEFT: 0px; MARGIN-LEFT: 0px; LIST-STYLE-TYPE: none
+}
+.navmenu .operations UL {
+       MARGIN-BOTTOM: 9px
+}
+.navmenu .label {
+       
+}
+.toolbar DIV {
+       DISPLAY: none
+}
+.toolbar .label {
+       DISPLAY: none
+}
+.toolbar .operations {
+       DISPLAY: block
+}
+.toolbar .operations UL {
+       DISPLAY: inline; PADDING-LEFT: 0px; MARGIN-LEFT: 10px; LIST-STYLE-TYPE: none
+}
+.toolbar .operations LI {
+       DISPLAY: inline; LIST-STYLE-TYPE: none
+}
+#foldertab {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 3px; FONT: bold 11px Verdana, sans-serif; MARGIN-LEFT: 0px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid
+}
+#foldertab LI {
+       DISPLAY: inline; MARGIN: 0px; LIST-STYLE-TYPE: none
+}
+#foldertab LI A {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 0.5em; BACKGROUND: #3c78b5; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px; TEXT-DECORATION: none
+}
+#foldertab LI A:link {
+       COLOR: #ffffff
+}
+#foldertab LI A:visited {
+       COLOR: #ffffff
+}
+#foldertab LI A:hover {
+       BORDER-LEFT-COLOR: #003366; BACKGROUND: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BORDER-RIGHT-COLOR: #003366
+}
+#foldertab LI A.current {
+       BACKGROUND: white; COLOR: black; BORDER-BOTTOM: white 1px solid
+}
+#foldertab LI A.current:link {
+       COLOR: black
+}
+#foldertab LI A.current:visited {
+       COLOR: black
+}
+#foldertab LI A.current:hover {
+       BACKGROUND: white; COLOR: black; BORDER-BOTTOM: white 1px solid
+}
+UL#squaretab {
+       PADDING-LEFT: 0px; FONT: bold 8px Verdana, sans-serif; MARGIN-LEFT: 0px; WHITE-SPACE: nowrap
+}
+#squaretab LI {
+       DISPLAY: inline; LIST-STYLE-TYPE: none
+}
+#squaretab A {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #3c78b5 1px solid
+}
+#squaretab A:link {
+       COLOR: #fff; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none
+}
+#squaretab A:visited {
+       COLOR: #fff; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none
+}
+#squaretab A:hover {
+       BORDER-LEFT-COLOR: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BACKGROUND-COLOR: #003366; TEXT-DECORATION: none; BORDER-RIGHT-COLOR: #003366
+}
+#squaretab LI A#current {
+       BACKGROUND: white; COLOR: black
+}
+.blogcalendar  {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: normal; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; LINE-HEIGHT: 140%; PADDING-TOP: 2px; FONT-FAMILY: verdana, arial, sans-serif
+}
+TABLE.blogcalendar {
+       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; BORDER-LEFT: #3c78b5 1px solid; BORDER-BOTTOM: #3c78b5 1px solid
+}
+.blogcalendar TH.calendarhead {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #ffffff; PADDING-TOP: 2px; LETTER-SPACING: 0.3em; BACKGROUND-COLOR: #3c78b5
+}
+A.calendarhead {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #ffffff; PADDING-TOP: 2px; LETTER-SPACING: 0.3em; BACKGROUND-COLOR: #3c78b5
+}
+.calendarhead:visited {
+       COLOR: white
+}
+.calendarhead:active {
+       COLOR: white
+}
+.calendarhead:hover {
+       COLOR: white
+}
+.blogcalendar TH {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: x-small; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+.blogcalendar TD {
+       FONT-WEIGHT: normal; FONT-SIZE: x-small
+}
+.searchGroup {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 10px; PADDING-TOP: 0px
+}
+.searchGroupHeading {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 1px; COLOR: #ffffff; PADDING-TOP: 2px; BACKGROUND-COLOR: #3c78b5
+}
+.searchItem {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 1px; PADDING-TOP: 1px
+}
+.searchItemSelected {
+       PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; BACKGROUND: #ddd; PADDING-BOTTOM: 1px; PADDING-TOP: 1px
+}
+.permissionHeading {
+       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 16px; BORDER-LEFT: 0px solid; BORDER-BOTTOM: #bbb 1px solid; TEXT-ALIGN: left
+}
+.permissionTab {
+       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 10px; BACKGROUND: #3c78b5; BORDER-LEFT: 1px solid; COLOR: #ffffff; BORDER-BOTTOM: 0px solid
+}
+.permissionSuperTab {
+       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; BACKGROUND: #003366; BORDER-LEFT: 1px solid; COLOR: #ffffff; BORDER-BOTTOM: 0px solid
+}
+.permissionCell {
+       BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; BORDER-LEFT: #bbb 1px solid; BORDER-BOTTOM: 0px solid
+}
+.warningPanel {
+       BORDER-RIGHT: #f0c000 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #f0c000 1px solid; PADDING-LEFT: 8px; BACKGROUND: #ffffce; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #f0c000 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #f0c000 1px solid
+}
+.alertPanel {
+       BORDER-RIGHT: #c00 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #c00 1px solid; PADDING-LEFT: 8px; BACKGROUND: #ffcccc; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #c00 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #c00 1px solid
+}
+.infoPanel {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #3c78b5 1px solid; PADDING-LEFT: 8px; BACKGROUND: #d8e4f1; PADDING-BOTTOM: 8px; MARGIN: 10px; BORDER-LEFT: #3c78b5 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #3c78b5 1px solid
+}
+.optionPadded {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px
+}
+.optionSelected {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: -1px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #ffffcc
+}
+.optionSelected A {
+       FONT-WEIGHT: bold; COLOR: black; TEXT-DECORATION: none
+}
+.noteMacro {
+       BORDER-RIGHT: #f0c000 1px solid; BORDER-TOP: #f0c000 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #f0c000 1px solid; BORDER-BOTTOM: #f0c000 1px solid; BACKGROUND-COLOR: #ffffce; TEXT-ALIGN: left
+}
+.warningMacro {
+       BORDER-RIGHT: #c00 1px solid; BORDER-TOP: #c00 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #c00 1px solid; BORDER-BOTTOM: #c00 1px solid; BACKGROUND-COLOR: #fcc; TEXT-ALIGN: left
+}
+.infoMacro {
+       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #3c78b5 1px solid; BORDER-BOTTOM: #3c78b5 1px solid; BACKGROUND-COLOR: #d8e4f1; TEXT-ALIGN: left
+}
+.tipMacro {
+       BORDER-RIGHT: #090 1px solid; BORDER-TOP: #090 1px solid; MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #090 1px solid; BORDER-BOTTOM: #090 1px solid; BACKGROUND-COLOR: #dfd; TEXT-ALIGN: left
+}
+.informationMacroPadding {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; PADDING-TOP: 5px
+}
+TABLE.infoMacro TD {
+       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
+}
+TABLE.warningMacro TD {
+       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
+}
+TABLE.tipMacro TD {
+       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
+}
+TABLE.noteMacro TD {
+       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
+}
+TABLE.sectionMacro TD {
+       BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
+}
+TABLE.sectionMacroWithBorder TD.columnMacro {
+       BORDER-RIGHT: #cccccc 1px dashed; BORDER-TOP: #cccccc 1px dashed; BORDER-LEFT: #cccccc 1px dashed; BORDER-BOTTOM: #cccccc 1px dashed
+}
+.pagecontent {
+       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; TEXT-ALIGN: left
+}
+.topBarDiv A:link {
+       COLOR: #ffffff
+}
+.topBarDiv A:visited {
+       COLOR: #ffffff
+}
+.topBarDiv A:active {
+       COLOR: #ffffff
+}
+.topBarDiv A:hover {
+       COLOR: #ffffff
+}
+.topBarDiv {
+       COLOR: #ffffff
+}
+.topBar {
+       BACKGROUND-COLOR: #003366
+}
+.greyLinks A:link {
+       COLOR: #666666; TEXT-DECORATION: underline
+}
+.greyLinks A:visited {
+       COLOR: #666666; TEXT-DECORATION: underline
+}
+.greyLinks A:active {
+       COLOR: #666666; TEXT-DECORATION: underline
+}
+.greyLinks A:hover {
+       COLOR: #666666; TEXT-DECORATION: underline
+}
+.greyLinks {
+       PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; COLOR: #666666; PADDING-TOP: 10px
+}
+.logoSpaceLink {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.logoSpaceLink A:link {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.logoSpaceLink A:visited {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.logoSpaceLink A:active {
+       COLOR: #999999; TEXT-DECORATION: none
+}
+.logoSpaceLink A:hover {
+       COLOR: #003366; TEXT-DECORATION: none
+}
+.basicPanelContainer {
+       BORDER-RIGHT: #3c78b5 1px solid; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 2px; MARGIN-BOTTOM: 8px; BORDER-LEFT: #3c78b5 1px solid; WIDTH: 100%; BORDER-BOTTOM: #3c78b5 1px solid
+}
+.basicPanelTitle {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: black; PADDING-TOP: 5px; BACKGROUND-COLOR: #eeefcc
+}
+.basicPanelBody {
+       PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 5px
+}
+.separatorLinks A:link {
+       COLOR: white
+}
+.separatorLinks A:visited {
+       COLOR: white
+}
+.separatorLinks A:active {
+       COLOR: white
+}
+.greynavbar {
+       BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 2px; BACKGROUND-COLOR: #eeefcc
+}
+DIV.headerField {
+       FLOAT: left; WIDTH: auto; HEIGHT: 100%
+}
+.headerFloat {
+       MARGIN-LEFT: auto; WIDTH: 50%
+}
+.headerFloatLeft {
+       FLOAT: left; MARGIN-BOTTOM: 10px; MARGIN-RIGHT: 20px
+}
+#headerRow {
+       PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px
+}
+DIV.license-personal {
+       COLOR: #ffffff; BACKGROUND-COLOR: #003366
+}
+DIV.license-personal A {
+       COLOR: #ffffff
+}
+.greyFormBox {
+       BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #cccccc 1px solid
+}
+.marginlessForm {
+       MARGIN: 0px
+}
+.openPageHighlight {
+       BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #ffffcc
+}
+.editPageInsertLinks {
+       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #666666
+}
+.editPageInsertLinks A {
+       FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #666666
+}
+.top10 A {
+       FONT-WEIGHT: bold; FONT-SIZE: 2em; COLOR: #003366
+}
+.top25 A {
+       FONT-WEIGHT: bold; FONT-SIZE: 1.6em; COLOR: #003366
+}
+.top50 A {
+       FONT-SIZE: 1.4em; COLOR: #003366
+}
+.top100 A {
+       FONT-SIZE: 1.2em; COLOR: #003366
+}
+.heatmap {
+       MARGIN: 0px auto; WIDTH: 95%; LIST-STYLE-TYPE: none
+}
+.heatmap A {
+       TEXT-DECORATION: none
+}
+.heatmap A:hover {
+       TEXT-DECORATION: underline
+}
+.heatmap LI {
+       DISPLAY: inline
+}
+.minitab {
+       PADDING-RIGHT: 0px; MARGIN-TOP: 1px; PADDING-LEFT: 8px; FLOAT: none; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 3px; FONT: bold 9px Verdana, sans-serif; MARGIN-LEFT: 0px; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px solid; TEXT-DECORATION: none
+}
+.selectedminitab {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 1px; PADDING-LEFT: 0.5em; BACKGROUND: white; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; COLOR: #000000; PADDING-TOP: 3px; BORDER-BOTTOM: white 1px solid; TEXT-DECORATION: none
+}
+.unselectedminitab {
+       BORDER-RIGHT: #3c78b5 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #3c78b5 1px solid; MARGIN-TOP: 1px; PADDING-LEFT: 0.5em; BACKGROUND: #3c78b5; PADDING-BOTTOM: 3px; MARGIN-LEFT: 3px; BORDER-LEFT: #3c78b5 1px solid; COLOR: #ffffff; PADDING-TOP: 3px; BORDER-BOTTOM: #3c78b5 1px; TEXT-DECORATION: none
+}
+A.unselectedminitab:hover {
+       BORDER-LEFT-COLOR: #003366; BACKGROUND: #003366; BORDER-BOTTOM-COLOR: #003366; COLOR: #ffffff; BORDER-TOP-COLOR: #003366; BORDER-RIGHT-COLOR: #003366
+}
+A.unselectedminitab:link {
+       COLOR: white
+}
+A.unselectedminitab:visited {
+       COLOR: white
+}
+A.selectedminitab:link {
+       COLOR: black
+}
+A.selectedminitab:visited {
+       COLOR: black
+}
+.linkerror {
+       BACKGROUND-COLOR: #fcc
+}
+A.labelOperationLink:link {
+       TEXT-DECORATION: underline
+}
+A.labelOperationLink:active {
+       TEXT-DECORATION: underline
+}
+A.labelOperationLink:visited {
+       TEXT-DECORATION: underline
+}
+A.labelOperationLink:hover {
+       TEXT-DECORATION: underline
+}
+A.newLabel:link {
+       BACKGROUND-COLOR: #ddffdd
+}
+A.newLabel:active {
+       BACKGROUND-COLOR: #ddffdd
+}
+A.newLabel:visited {
+       BACKGROUND-COLOR: #ddffdd
+}
+A.newLabel:hover {
+       BACKGROUND-COLOR: #ddffdd
+}
+UL.square {
+       LIST-STYLE-TYPE: square
+}
+.inline-control-link {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 9px; BACKGROUND: #ffc; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; COLOR: #666; PADDING-TOP: 2px; TEXT-DECORATION: none
+}
+.inline-control-link A:link {
+       TEXT-DECORATION: none
+}
+.inline-control-link A:active {
+       TEXT-DECORATION: none
+}
+.inline-control-link A:visited {
+       TEXT-DECORATION: none
+}
+.inline-control-link A:hover {
+       TEXT-DECORATION: none
+}
+.inline-control-link {
+       PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 9px; BACKGROUND: #ffc; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; CURSOR: pointer; COLOR: #666; PADDING-TOP: 2px; TEXT-DECORATION: none
+}
+DIV.auto_complete {
+       BACKGROUND: #fff; WIDTH: 350px
+}
+DIV.auto_complete UL {
+       BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #888 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #888 1px solid; WIDTH: 100%; PADDING-TOP: 0px; BORDER-BOTTOM: #888 1px solid; LIST-STYLE-TYPE: none
+}
+DIV.auto_complete UL LI {
+       PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 3px
+}
+DIV.auto_complete UL LI.selected {
+       BACKGROUND-COLOR: #ffb
+}
+DIV.auto_complete UL STRONG.highlight {
+       PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #800; PADDING-TOP: 0px
+}
+.toogleFormDiv {
+       BORDER-RIGHT: #a7a6aa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #a7a6aa 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #a7a6aa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #a7a6aa 1px solid; BACKGROUND-COLOR: white
+}
+.toogleInfoDiv {
+       BORDER-RIGHT: #a7a6aa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #a7a6aa 1px solid; MARGIN-TOP: 10px; DISPLAY: none; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #a7a6aa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #a7a6aa 1px solid; BACKGROUND-COLOR: white
+}
+.inputSection {
+       MARGIN-BOTTOM: 20px
+}
+#editBox {
+       BACKGROUND-COLOR: #eeefcc
+}
+.leftnav LI A {
+       PADDING-RIGHT: 2px; BORDER-TOP: #3c78b5 1px solid; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 0px; COLOR: white; PADDING-TOP: 2px; BACKGROUND-COLOR: #3c78b5; TEXT-DECORATION: none
+}
+.leftnav LI A:active {
+       COLOR: white
+}
+.leftnav LI A:visited {
+       COLOR: white
+}
+.leftnav LI A:hover {
+       COLOR: white; BACKGROUND-COLOR: #003366
+}
+.replaced {
+       BACKGROUND-COLOR: #33cc66
+}
+.topPadding {
+       MARGIN-TOP: 20px
+}
+.form-block {
+       PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px
+}
+.form-error-block {
+       PADDING-RIGHT: 12px; BORDER-TOP: #eeefcc 1px solid; PADDING-LEFT: 12px; BACKGROUND: #fcc; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #eeefcc 1px solid
+}
+.form-element-large {
+       FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif
+}
+.form-element-small {
+       FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #003366; FONT-FAMILY: Arial, sans-serif
+}
+.form-header {
+       PADDING-RIGHT: 12px; BORDER-TOP: #eeefcc 1px solid; PADDING-LEFT: 12px; BACKGROUND: lightyellow; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #eeefcc 1px solid
+}
+.form-header P {
+       MARGIN: 12px 0px; LINE-HEIGHT: normal
+}
+.form-block P {
+       MARGIN: 12px 0px; LINE-HEIGHT: normal
+}
+.form-error-block P {
+       MARGIN: 12px 0px; LINE-HEIGHT: normal
+}
+.form-example {
+       FONT-SIZE: 11px; COLOR: #888
+}
+.form-divider {
+       MARGIN-BOTTOM: 6px; BORDER-BOTTOM: #ccc 1px solid
+}
+.form-buttons {
+       PADDING-RIGHT: 10px; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: 6px; PADDING-LEFT: 10px; BACKGROUND: #eeefcc; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center
+}
+.form-buttons INPUT {
+       WIDTH: 100px
+}
+.form-block .error {
+       PADDING-RIGHT: 6px; PADDING-LEFT: 6px; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px
+}
index 1a1b533c33feb80a7ebfe5da3cb6e4797ab21577..30f0cf14b32d6b5d0a628f17311aaf011588449b 100644 (file)
@@ -1,84 +1,84 @@
-#!perl -w\r
-\r
-#use strict;\r
-\r
-require "prunefiles.pl";\r
-\r
-use Data::Dumper;\r
-\r
-sub makeZip {\r
-    local ($zip, $config)   = @_;\r
-\r
-    local $odr      = $config->{Config};    ## Options, directories, repository, environment.\r
-    local $src      = $odr->{src}->{value};\r
-    local $out      = $odr->{out}->{value};\r
-    local $zipname  = $zip->{filename};\r
-    local $filestem = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
-    $zipname        =~ s/%filestem%/$filestem/g;\r
-    if (exists $zip->{Requires}) {\r
-        local $bMakeIt  = 1;\r
-        local $rverb    = $odr->{repository}->{value};\r
-        local $j        = 0;\r
-        while ($zip->{Requires}->{Switch}[$j]) {                    ## Check Require switches\r
-            local $switch    = $zip->{Requires}->{Switch}[$j];\r
-            if (exists $switch->{name}) {                           ## Ignore dummy entry\r
-                # We handle REPOSITORY and CLEAN switches:\r
-                if ($switch->{name} =~ /REPOSITORY/i) {\r
-                    $bMakeIt &&= ($switch->{value} =~ /$rverb/i);   ## Repository verb must match requirement\r
-                    }\r
-                 elsif ($switch->{name} =~ /CLEAN/i) {               ## Clean must be specified\r
-                    $bMakeIt &&= $clean;\r
-                    }\r
-                 else {print "Error -- Unsupported switch $switch->{name} in Requires in ".Dumper($zip);\r
-                    $bMakeIt    = 0;\r
-                    }\r
-                 }\r
-             $j++;\r
-             }   \r
-        if ( !$bMakeIt ) {\r
-            if (exists $zip->{Requires}->{ErrorMsg}) {\r
-                print "Error -- $zip->{Requires}->{ErrorMsg}->{text}\n";\r
-                }\r
-            else {\r
-                print "Error -- requirements not met for building $zipname.\n";\r
-                }\r
-            return 0;\r
-            }\r
-        }\r
-        \r
-    local $ziptemp    = "$out\\ziptemp";\r
-    chdir "$out";\r
-    print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-    system("rm -rf $ziptemp")                 if (-d $ziptemp);\r
-    die "Fatal -- Couldn't remove $ziptemp"   if (-d $ziptemp);\r
-    mkdir($ziptemp);\r
-    # Set up the zip's config section:\r
-    $zip->{Config}                                  = $config->{Stages}->{PostPackage}->{Config};\r
-    # Add to the copylist's config section.  Don't copy Postpackage->Config, \r
-    #  because the CopyList's Config might contain substitution tags.\r
-    $zip->{CopyList}->{Config}->{FileStem}->{name}  = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
-    $zip->{CopyList}->{Config}->{From}->{root}      = "$src\\pismere";  ## Add zip-specific config settings.\r
-    $zip->{CopyList}->{Config}->{To}->{root}        = $ziptemp;\r
-    copyFiles($zip->{CopyList}, $config);\r
-    # Drop down into <out>/ziptemp so the path to the added file won't include <out>:\r
-    chdir $ziptemp;\r
-    print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-\r
-    # Prune any unwanted files or directories from the directory we're about to zip:\r
-    pruneFiles($zip, $config);\r
-                    \r
-    local $zipfile  = Archive::Zip->new();\r
-    local $topdir   = $zip->{topdir};\r
-    $topdir         =~ s/%filestem%/$filestem/g;\r
-    $zipfile->addTree('.', $topdir);\r
-    if (-e $zipname)    {!system("rm -f $zipname") or die "Error -- Couldn't remove $zipname.";}\r
-    $zipfile->writeToFileNamed($zipname);\r
-    chdir("$out");\r
-    print "Info -- chdir to ".`cd`."\n"         if ($verbose);\r
-    # move .zip from <out>/ziptemp to <out>.\r
-    !system("mv -f ziptemp/$zipname .")         or die "Error -- Couldn't move $zipname to ..";\r
-    system("rm -rf ziptemp")                    if (-d "ziptemp");  ## Clean up any temp directory.\r
-    print "Info -- created $out\\$zipname.\n"   if ($verbose);\r
-    }\r
-    \r
+#!perl -w
+
+#use strict;
+
+require "prunefiles.pl";
+
+use Data::Dumper;
+
+sub makeZip {
+    local ($zip, $config)   = @_;
+
+    local $odr      = $config->{Config};    ## Options, directories, repository, environment.
+    local $src      = $odr->{src}->{value};
+    local $out      = $odr->{out}->{value};
+    local $zipname  = $zip->{filename};
+    local $filestem = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};
+    $zipname        =~ s/%filestem%/$filestem/g;
+    if (exists $zip->{Requires}) {
+        local $bMakeIt  = 1;
+        local $rverb    = $odr->{repository}->{value};
+        local $j        = 0;
+        while ($zip->{Requires}->{Switch}[$j]) {                    ## Check Require switches
+            local $switch    = $zip->{Requires}->{Switch}[$j];
+            if (exists $switch->{name}) {                           ## Ignore dummy entry
+                # We handle REPOSITORY and CLEAN switches:
+                if ($switch->{name} =~ /REPOSITORY/i) {
+                    $bMakeIt &&= ($switch->{value} =~ /$rverb/i);   ## Repository verb must match requirement
+                    }
+                 elsif ($switch->{name} =~ /CLEAN/i) {               ## Clean must be specified
+                    $bMakeIt &&= $clean;
+                    }
+                 else {print "Error -- Unsupported switch $switch->{name} in Requires in ".Dumper($zip);
+                    $bMakeIt    = 0;
+                    }
+                 }
+             $j++;
+             }   
+        if ( !$bMakeIt ) {
+            if (exists $zip->{Requires}->{ErrorMsg}) {
+                print "Error -- $zip->{Requires}->{ErrorMsg}->{text}\n";
+                }
+            else {
+                print "Error -- requirements not met for building $zipname.\n";
+                }
+            return 0;
+            }
+        }
+        
+    local $ziptemp    = "$out\\ziptemp";
+    chdir "$out";
+    print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+    system("rm -rf $ziptemp")                 if (-d $ziptemp);
+    die "Fatal -- Couldn't remove $ziptemp"   if (-d $ziptemp);
+    mkdir($ziptemp);
+    # Set up the zip's config section:
+    $zip->{Config}                                  = $config->{Stages}->{PostPackage}->{Config};
+    # Add to the copylist's config section.  Don't copy Postpackage->Config, 
+    #  because the CopyList's Config might contain substitution tags.
+    $zip->{CopyList}->{Config}->{FileStem}->{name}  = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};
+    $zip->{CopyList}->{Config}->{From}->{root}      = "$src\\pismere";  ## Add zip-specific config settings.
+    $zip->{CopyList}->{Config}->{To}->{root}        = $ziptemp;
+    copyFiles($zip->{CopyList}, $config);
+    # Drop down into <out>/ziptemp so the path to the added file won't include <out>:
+    chdir $ziptemp;
+    print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+
+    # Prune any unwanted files or directories from the directory we're about to zip:
+    pruneFiles($zip, $config);
+                    
+    local $zipfile  = Archive::Zip->new();
+    local $topdir   = $zip->{topdir};
+    $topdir         =~ s/%filestem%/$filestem/g;
+    $zipfile->addTree('.', $topdir);
+    if (-e $zipname)    {!system("rm -f $zipname") or die "Error -- Couldn't remove $zipname.";}
+    $zipfile->writeToFileNamed($zipname);
+    chdir("$out");
+    print "Info -- chdir to ".`cd`."\n"         if ($verbose);
+    # move .zip from <out>/ziptemp to <out>.
+    !system("mv -f ziptemp/$zipname .")         or die "Error -- Couldn't move $zipname to ..";
+    system("rm -rf ziptemp")                    if (-d "ziptemp");  ## Clean up any temp directory.
+    print "Info -- created $out\\$zipname.\n"   if ($verbose);
+    }
+    
 return 1;
\ No newline at end of file
index 9e47b1777e117ccae7fd19cb2044087163860408..0bb517624e4b2f7447c98e36830bd6e4e3c9e639 100644 (file)
@@ -1,36 +1,36 @@
-#!perl -w\r
-\r
-#use strict;\r
-use Data::Dumper;\r
-\r
-sub pruneFiles {\r
-    local ($xml, $config)   = @_;\r
-    local $prunes       = $xml->{Prunes};\r
-    if (! $prunes) {return 0;}\r
-\r
-    # Use Unix find instead of Windows find.  Save PATH so we can restore it when we're done:\r
-    local $savedPATH    = $ENV{PATH};\r
-    $ENV{PATH}          = $config->{Config}->{unixfind}->{value}.";".$savedPATH;\r
-    print "Info -- Processing prunes in ".`cd`."\n"     if ($verbose);\r
-    local $pru          = $prunes->{Prune};\r
-    local $files        = "( ";\r
-    local $bFirst       = 1;\r
-    while (($key, $val) = each %$pru) {\r
-        local $flags    = $val->{flags};\r
-        $flags          = "" if (!$flags);\r
-        if (!$bFirst)   {$files .= " -or ";}\r
-        $bFirst         = 0;\r
-        $files          .= "-".$flags."name $key";\r
-        print "Info -- Looking for filenames matching $key\n"   if ($verbose);\r
-        }\r
-    $files              .= " )";\r
-    local $list = `find . $files`;\r
-    if (length($list) >   1) {\r
-        print "Info -- Pruning $list\n" if ($verbose);\r
-        ! system("rm -rf $list")              or die "Unable to prune $list";\r
-        }\r
-\r
-    $ENV{PATH} = $savedPATH;\r
-    }\r
-\r
-return 1;\r
+#!perl -w
+
+#use strict;
+use Data::Dumper;
+
+sub pruneFiles {
+    local ($xml, $config)   = @_;
+    local $prunes       = $xml->{Prunes};
+    if (! $prunes) {return 0;}
+
+    # Use Unix find instead of Windows find.  Save PATH so we can restore it when we're done:
+    local $savedPATH    = $ENV{PATH};
+    $ENV{PATH}          = $config->{Config}->{unixfind}->{value}.";".$savedPATH;
+    print "Info -- Processing prunes in ".`cd`."\n"     if ($verbose);
+    local $pru          = $prunes->{Prune};
+    local $files        = "( ";
+    local $bFirst       = 1;
+    while (($key, $val) = each %$pru) {
+        local $flags    = $val->{flags};
+        $flags          = "" if (!$flags);
+        if (!$bFirst)   {$files .= " -or ";}
+        $bFirst         = 0;
+        $files          .= "-".$flags."name $key";
+        print "Info -- Looking for filenames matching $key\n"   if ($verbose);
+        }
+    $files              .= " )";
+    local $list = `find . $files`;
+    if (length($list) >   1) {
+        print "Info -- Pruning $list\n" if ($verbose);
+        ! system("rm -rf $list")              or die "Unable to prune $list";
+        }
+
+    $ENV{PATH} = $savedPATH;
+    }
+
+return 1;
index 03ee51952074ff5e6e24669666aed61dcb06166a..2f4ee21ae95fa762048bb6002ce6d1119d84d358 100644 (file)
@@ -1,90 +1,90 @@
-#!perl -w\r
-\r
-#use strict;\r
-\r
-sub repository1 {\r
-    local ($config) = @_;\r
-    local $odr      = $config->{Config};    ## Options, directories, repository, environment.\r
-    local $src      = $odr->{src}->{value};\r
-    local $rverb    = $odr->{repository}->{value};\r
-    local $wd       = $src."\\pismere";\r
-\r
-    if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n"    if ($verbose);}\r
-    else {\r
-        if ($verbose) {print "Info -- *** Begin fetching sources.\n";}\r
-        local $cvspath = "$src";\r
-        if (! -d $cvspath) {                        ## xcopy will create the entire path for us.\r
-            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
-            !system("echo F | xcopy a.tmp $cvspath\\a.tmp") or die "Fatal -- Couldn't xcopy to $cvspath.";\r
-            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";\r
-            !system("rm $cvspath\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";\r
-            }\r
-        \r
-        # Set up cvs environment variables:\r
-        $ENV{CVSROOT}       = $odr->{CVSROOT}->{value};\r
-        local $krb5dir      = "$wd\\athena\\auth\\krb5";\r
-\r
-        local $cvscmdroot   = "cvs $rverb";\r
-        if (length $odr->{cvstag}->{value} > 0) {\r
-            $cvscmdroot .= " -r $odr->{cvstag}->{value}";\r
-            }\r
-\r
-        if ($rverb =~ /checkout/) {        \r
-            chdir($src)                                     or die "Fatal -- couldn't chdir to $src\n";\r
-            print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-            my @cvsmodules    = (    \r
-                'krb',  \r
-                'pismere/athena/util/lib/delaydlls', \r
-                'pismere/athena/util/lib/getopt', \r
-                'pismere/athena/util/guiwrap'\r
-                );\r
-\r
-            foreach my $module (@cvsmodules) {\r
-                local $cvscmd = $cvscmdroot." ".$module;\r
-                if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
-                !system($cvscmd)    or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
-                }\r
-            }\r
-        else {                ## Update.\r
-            chdir($wd)                                      or die "Fatal -- couldn't chdir to $wd\n";\r
-            print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-            if ($verbose) {print "Info -- cvs command: $cvscmdroot\n";}\r
-            !system($cvscmdroot)    or die "Fatal -- command \"$cvscmdroot\" failed; return code $?\n";\r
-            }\r
-\r
-        # Set up svn environment variable:\r
-        $ENV{SVN_SSH} = "plink.exe";\r
-        # If  the directory structure doesn't exist, many cd commands will fail.\r
-        if (! -d $krb5dir) {                                ## xcopy will create the entire path for us.\r
-            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
-            !system("echo F | xcopy a.tmp $krb5dir\\a.tmp") or die "Fatal -- Couldn't xcopy to $krb5dir.";\r
-            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";\r
-            !system("rm $krb5dir\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";\r
-            }\r
-\r
-        chdir($krb5dir)                                 or die "Fatal -- Couldn't chdir to $krb5dir";\r
-        print "Info -- chdir to ".`cd`."\n"             if ($verbose);\r
-        my $svncmd = "svn $rverb ";\r
-        if ($rverb =~ /checkout/) {        # Append the rest of the checkout command:\r
-            chdir("..");\r
-            $svncmd .= "svn+ssh://".$odr->{username}->{value}."@".$odr->{SVNURL}->{value}."/krb5/";\r
-            if (length $odr->{svntag}->{value} > 0) {\r
-                $svncmd .= "tags/$odr->{svntag}->{value}";\r
-                }\r
-            elsif (length $odr->{svnbranch}->{value} > 0) {\r
-                $svncmd .= "branches/$odr->{svnbranch}->{value}";\r
-                }\r
-            else {\r
-                $svncmd .= "trunk";\r
-                }\r
-\r
-            $svncmd .= " krb5";\r
-\r
-            }\r
-        if ($verbose) {print "Info -- svn command: $svncmd\n";}\r
-        !system($svncmd)            or die "Fatal -- command \"$svncmd\" failed; return code $?\n";\r
-        if ($verbose) {print "Info -- ***   End fetching sources.\n";}\r
-        }\r
-    }\r
-\r
+#!perl -w
+
+#use strict;
+
+sub repository1 {
+    local ($config) = @_;
+    local $odr      = $config->{Config};    ## Options, directories, repository, environment.
+    local $src      = $odr->{src}->{value};
+    local $rverb    = $odr->{repository}->{value};
+    local $wd       = $src."\\pismere";
+
+    if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n"    if ($verbose);}
+    else {
+        if ($verbose) {print "Info -- *** Begin fetching sources.\n";}
+        local $cvspath = "$src";
+        if (! -d $cvspath) {                        ## xcopy will create the entire path for us.
+            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;
+            !system("echo F | xcopy a.tmp $cvspath\\a.tmp") or die "Fatal -- Couldn't xcopy to $cvspath.";
+            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";
+            !system("rm $cvspath\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";
+            }
+        
+        # Set up cvs environment variables:
+        $ENV{CVSROOT}       = $odr->{CVSROOT}->{value};
+        local $krb5dir      = "$wd\\athena\\auth\\krb5";
+
+        local $cvscmdroot   = "cvs $rverb";
+        if (length $odr->{cvstag}->{value} > 0) {
+            $cvscmdroot .= " -r $odr->{cvstag}->{value}";
+            }
+
+        if ($rverb =~ /checkout/) {        
+            chdir($src)                                     or die "Fatal -- couldn't chdir to $src\n";
+            print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+            my @cvsmodules    = (    
+                'krb',  
+                'pismere/athena/util/lib/delaydlls', 
+                'pismere/athena/util/lib/getopt', 
+                'pismere/athena/util/guiwrap'
+                );
+
+            foreach my $module (@cvsmodules) {
+                local $cvscmd = $cvscmdroot." ".$module;
+                if ($verbose) {print "Info -- cvs command: $cvscmd\n";}
+                !system($cvscmd)    or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";
+                }
+            }
+        else {                ## Update.
+            chdir($wd)                                      or die "Fatal -- couldn't chdir to $wd\n";
+            print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+            if ($verbose) {print "Info -- cvs command: $cvscmdroot\n";}
+            !system($cvscmdroot)    or die "Fatal -- command \"$cvscmdroot\" failed; return code $?\n";
+            }
+
+        # Set up svn environment variable:
+        $ENV{SVN_SSH} = "plink.exe";
+        # If  the directory structure doesn't exist, many cd commands will fail.
+        if (! -d $krb5dir) {                                ## xcopy will create the entire path for us.
+            !system("echo foo > a.tmp")                     or die "Fatal -- Couldn't create temporary file in ".`cd`;
+            !system("echo F | xcopy a.tmp $krb5dir\\a.tmp") or die "Fatal -- Couldn't xcopy to $krb5dir.";
+            !system("rm a.tmp")                             or die "Fatal -- Couldn't remove temporary file.";
+            !system("rm $krb5dir\\a.tmp")                   or die "Fatal -- Couldn't remove temporary file.";
+            }
+
+        chdir($krb5dir)                                 or die "Fatal -- Couldn't chdir to $krb5dir";
+        print "Info -- chdir to ".`cd`."\n"             if ($verbose);
+        my $svncmd = "svn $rverb ";
+        if ($rverb =~ /checkout/) {        # Append the rest of the checkout command:
+            chdir("..");
+            $svncmd .= "svn+ssh://".$odr->{username}->{value}."@".$odr->{SVNURL}->{value}."/krb5/";
+            if (length $odr->{svntag}->{value} > 0) {
+                $svncmd .= "tags/$odr->{svntag}->{value}";
+                }
+            elsif (length $odr->{svnbranch}->{value} > 0) {
+                $svncmd .= "branches/$odr->{svnbranch}->{value}";
+                }
+            else {
+                $svncmd .= "trunk";
+                }
+
+            $svncmd .= " krb5";
+
+            }
+        if ($verbose) {print "Info -- svn command: $svncmd\n";}
+        !system($svncmd)            or die "Fatal -- command \"$svncmd\" failed; return code $?\n";
+        if ($verbose) {print "Info -- ***   End fetching sources.\n";}
+        }
+    }
+
 return 1;
\ No newline at end of file
index 37a5f422c7230bcb932113bca3d74132b6ba54af..c938107ca584770e35ce74a01fd8c53cf2d5f8ba 100644 (file)
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" ?>\r
-       <Files>\r
-               <!-- File from  paths are relative to <src>/pismere.    -->\r
-               <!-- File to    paths are relative to <out>.                    -->\r
-               <File dummy="foo" /> <!-- Forces XML::Simple behavior   -->\r
-                       <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
-\r
-               <File name="relnotes.html"  from="doc\kerberos"                 to="doc" />\r
-               <File name="kclient.rtf"    from="athena\auth\krb4\kclient\doc" to="doc" />\r
-        <File name="msi-deployment-guide.txt" from="athena\auth\krb5\src\windows\installer\wix\"   to="\doc" />\r
-\r
-               <File  name="*.*"           from="staging\inc"                  to="inc" />\r
-               <!-- loadfuncs.c is deliberately here.  Otherwise, *.h would work. -->\r
-\r
-               <File  name="*.*"           from="staging\install\nsis"         to="install\nsis\" />\r
-        <!-- We'll clean up the exes in the target directory in a later step.  -->\r
-\r
-               <File  name="*.*"           from="staging\install\wix"          to="install\wix\" />\r
-        <!-- We'll clean up the msi in the target directory in a later step.  -->\r
-\r
-               <File  name="*.lib"         from="staging\lib\i386"             to="lib\i386\" />\r
-       \r
+<?xml version="1.0" encoding="utf-8" ?>
+       <Files>
+               <!-- File from  paths are relative to <src>/pismere.    -->
+               <!-- File to    paths are relative to <out>.                    -->
+               <File dummy="foo" /> <!-- Forces XML::Simple behavior   -->
+                       <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->
+
+               <File name="relnotes.html"  from="doc\kerberos"                 to="doc" />
+               <File name="kclient.rtf"    from="athena\auth\krb4\kclient\doc" to="doc" />
+        <File name="msi-deployment-guide.txt" from="athena\auth\krb5\src\windows\installer\wix\"   to="\doc" />
+
+               <File  name="*.*"           from="staging\inc"                  to="inc" />
+               <!-- loadfuncs.c is deliberately here.  Otherwise, *.h would work. -->
+
+               <File  name="*.*"           from="staging\install\nsis"         to="install\nsis\" />
+        <!-- We'll clean up the exes in the target directory in a later step.  -->
+
+               <File  name="*.*"           from="staging\install\wix"          to="install\wix\" />
+        <!-- We'll clean up the msi in the target directory in a later step.  -->
+
+               <File  name="*.lib"         from="staging\lib\i386"             to="lib\i386\" />
+       
        </Files>
\ No newline at end of file
index 65ccb0a11cd1efe9d0aa39f13c208255acb5dcc4..ea093b1d7e587301d5a5b41f10a07c96c9cec49a 100644 (file)
@@ -1,27 +1,27 @@
-#!perl -w\r
-\r
-#use strict;\r
-use Data::Dumper;\r
-\r
-sub signFiles {\r
-    local ($signing, $config)   = @_;\r
-    local $exprs    = $signing->{FilePatterns}->{value};\r
-    local $template = $signing->{CommandTemplate}->{value};\r
-    # Use Unix find instead of Windows find.  Save PATH so we can restore it when we're done:\r
-    local $savedPATH= $ENV{PATH};\r
-    $ENV{PATH}      = $config->{Config}->{unixfind}->{value}.";".$savedPATH;\r
-    foreach $expr (split(" ", $exprs)) {            ## exprs is something like "*.exe *.dll"\r
-        local $cmd  = "find . -iname \"$expr\"";\r
-        local $list = `$cmd`;                       ## $list is files matching *.exe, for example.\r
-        foreach $target (split("\n", $list)) {\r
-            $target =~ s|/|\\|g;                    ## Flip path separators from unix-style to windows-style.\r
-            local $template2    = $template;\r
-            $template2          =~ s/%filename%/$target/;\r
-            print "Info -- Signing $target\n" if ($verbose);\r
-            !system("$template2") or die "Fatal -- Error signing $target.";\r
-            }\r
-        }\r
-        $ENV{PATH} = $savedPATH;\r
-    }\r
-\r
+#!perl -w
+
+#use strict;
+use Data::Dumper;
+
+sub signFiles {
+    local ($signing, $config)   = @_;
+    local $exprs    = $signing->{FilePatterns}->{value};
+    local $template = $signing->{CommandTemplate}->{value};
+    # Use Unix find instead of Windows find.  Save PATH so we can restore it when we're done:
+    local $savedPATH= $ENV{PATH};
+    $ENV{PATH}      = $config->{Config}->{unixfind}->{value}.";".$savedPATH;
+    foreach $expr (split(" ", $exprs)) {            ## exprs is something like "*.exe *.dll"
+        local $cmd  = "find . -iname \"$expr\"";
+        local $list = `$cmd`;                       ## $list is files matching *.exe, for example.
+        foreach $target (split("\n", $list)) {
+            $target =~ s|/|\\|g;                    ## Flip path separators from unix-style to windows-style.
+            local $template2    = $template;
+            $template2          =~ s/%filename%/$target/;
+            print "Info -- Signing $target\n" if ($verbose);
+            !system("$template2") or die "Fatal -- Error signing $target.";
+            }
+        }
+        $ENV{PATH} = $savedPATH;
+    }
+
 return 1;
\ No newline at end of file
index 34d68ff66c3d7612451aa6fb93a267cb3ce0ae76..191d2008978c8e636fc1b4f4cdab4e1aa587e56f 100644 (file)
@@ -1,2 +1,2 @@
-s/<?define TargetDir="c:.temp.*"?>/<?define TargetDir="%%TARGETDIR%%"?>/\r
+s/<?define TargetDir="c:.temp.*"?>/<?define TargetDir="%%TARGETDIR%%"?>/
 s/<?define ConfigDir="c:.temp.*"?>/<?define ConfigDir="%%CONFIGDIR%%"?>/
\ No newline at end of file
index a9c30fb459430dfcf622c0f6fb51dac4d5c0eb20..2c33370af0aa39120ca7871e7197331f536e8b4c 100644 (file)
@@ -1,79 +1,79 @@
-# Usage 'tee filename'\r
-# Make sure that when using this as a perl pipe you\r
-# print a EOF char!\r
-#  (This may be a bug in perl 4 for NT)\r
-#\r
-# Use it like:\r
-#      open(PIPE, "|$^X tee.pl foo.log") || die "Can't pipe";\r
-#      open(STDOUT, ">&PIPE") || die "Can't dup pipe to stdout";\r
-#      open(STDERR, ">&PIPE") || die "Can't dup pipe to stderr";\r
-\r
-use IO::File;\r
-\r
-#$SIG{'INT'} = \&handler;\r
-#$SIG{'QUIT'} = \&handler;\r
-\r
-$SIG{'INT'} = 'IGNORE';\r
-$SIG{'QUIT'} = \&handler;\r
-\r
-my $fh = new IO::File;\r
-\r
-my $arg = shift;\r
-my $file;\r
-my $access = ">";\r
-\r
-while ($arg) {\r
-    if ($arg =~ /-a/) {\r
-       $access = ">>";\r
-    } elsif ($arg =~ /-i/) {\r
-       $SIG{'INT'} = 'IGNORE';\r
-       $SIG{'QUIT'} = 'IGNORE';\r
-    } else {\r
-       $file = $arg;\r
-       last;\r
-    }\r
-    $arg = shift;\r
-}\r
-\r
-STDOUT->autoflush(1);\r
-\r
-if ($file) {\r
-    $fh->open($access.$file) || die "Could not open $file\n";\r
-    $fh->autoflush(1);\r
-}\r
-\r
-while (<>) {\r
-    $_ = &logtime.$_;\r
-    print $_;\r
-    print $fh $_ if $file;\r
-}\r
-\r
-sub logtime {\r
-    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);\r
-    $mon = $mon + 1;\r
-    $year %= 100;\r
-    sprintf ("[%02d/%02d/%02d %02d:%02d:%02d] ",\r
-            $year, $mon, $mday,\r
-            $hour, $min, $sec);\r
-}\r
-\r
-sub handler {\r
-    my $sig = shift;\r
-    my $bailmsg = &logtime."Bailing out due to SIG$sig!\n";\r
-    my $warnmsg = <<EOH;\r
-*********************************\r
-* FUTURE BUILDS MAY FAIL UNLESS *\r
-* BUILD DIRECTORIES ARE CLEANED *\r
-*********************************\r
-EOH\r
-    print $bailmsg, $warnmsg;\r
-    print $fh $bailmsg, $warnmsg;\r
-    print "Closing log...";\r
-    undef $fh if $fh;\r
-    print "closed!\n";\r
-    exit(2);\r
-}\r
-\r
-END {\r
-    undef $fh if $fh;\r
-}\r
+# Usage 'tee filename'
+# Make sure that when using this as a perl pipe you
+# print a EOF char!
+#  (This may be a bug in perl 4 for NT)
+#
+# Use it like:
+#      open(PIPE, "|$^X tee.pl foo.log") || die "Can't pipe";
+#      open(STDOUT, ">&PIPE") || die "Can't dup pipe to stdout";
+#      open(STDERR, ">&PIPE") || die "Can't dup pipe to stderr";
+
+use IO::File;
+
+#$SIG{'INT'} = \&handler;
+#$SIG{'QUIT'} = \&handler;
+
+$SIG{'INT'} = 'IGNORE';
+$SIG{'QUIT'} = \&handler;
+
+my $fh = new IO::File;
+
+my $arg = shift;
+my $file;
+my $access = ">";
+
+while ($arg) {
+    if ($arg =~ /-a/) {
+       $access = ">>";
+    } elsif ($arg =~ /-i/) {
+       $SIG{'INT'} = 'IGNORE';
+       $SIG{'QUIT'} = 'IGNORE';
+    } else {
+       $file = $arg;
+       last;
+    }
+    $arg = shift;
+}
+
+STDOUT->autoflush(1);
+
+if ($file) {
+    $fh->open($access.$file) || die "Could not open $file\n";
+    $fh->autoflush(1);
+}
+
+while (<>) {
+    $_ = &logtime.$_;
+    print $_;
+    print $fh $_ if $file;
+}
+
+sub logtime {
+    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
+    $mon = $mon + 1;
+    $year %= 100;
+    sprintf ("[%02d/%02d/%02d %02d:%02d:%02d] ",
+            $year, $mon, $mday,
+            $hour, $min, $sec);
+}
+
+sub handler {
+    my $sig = shift;
+    my $bailmsg = &logtime."Bailing out due to SIG$sig!\n";
+    my $warnmsg = <<EOH;
+*********************************
+* FUTURE BUILDS MAY FAIL UNLESS *
+* BUILD DIRECTORIES ARE CLEANED *
+*********************************
+EOH
+    print $bailmsg, $warnmsg;
+    print $fh $bailmsg, $warnmsg;
+    print "Closing log...";
+    undef $fh if $fh;
+    print "closed!\n";
+    exit(2);
+}
+
+END {
+    undef $fh if $fh;
+}
index 1cf89ce571b88baa6f79db40eb4e4844fe0885d0..8f3527c146d774a3b6bcb5ae33f01bb34cda61a6 100644 (file)
@@ -1,69 +1,69 @@
-#!perl -w\r
-\r
-use strict;\r
-use Config;\r
-use File::Basename;\r
-use Getopt::Long;\r
-\r
-$0 = fileparse($0);\r
-\r
-sub main\r
-{\r
-    Getopt::Long::Configure('bundling', 'no_auto_abbrev',\r
-                           'no_getopt_compat', 'require_order',\r
-                           'ignore_case', 'pass_through',\r
-                           'prefix_pattern=(--|-|\+|\/)',\r
-                          );\r
-    my $OPT = {};\r
-    GetOptions($OPT,\r
-              'help|h|?',\r
-              'all|a',\r
-              'quiet|q',\r
-              'debug|d',\r
-              'path:s',\r
-              );\r
-\r
-    my $f = shift @ARGV;\r
-    if ($OPT->{help} || !$f) {\r
-       usage();\r
-       exit(0) if $OPT->{help};\r
-       exit(1);\r
-    }\r
-\r
-    my $p = $OPT->{path} || $ENV{PATH};\r
-    my $s = $Config{path_sep};\r
-    my @d = split(/$s/, $p);\r
-    my @e = split(/$s/, lc($ENV{PATHEXT} || '.bat;.exe;.com'));\r
-    my @f = ($f, map { $f.$_; } @e);\r
-    my $found = 0;\r
-    foreach my $d (@d) {\r
-       print "(Searching $d)\n" if $OPT->{debug};\r
-       foreach my $f (@f) {\r
-           my $df = $d.'\\'.$f; # cannot use $File::Spec->catfile due to UNC.\r
-           print "(Checking for $df)\n" if $OPT->{debug};\r
-           if (-f $df) {\r
-               exit(0) if $OPT->{quiet};\r
-               print "$df\n";\r
-               exit(0) if !$OPT->{all};\r
-               $found = 1;\r
-           }\r
-       }\r
-    }\r
-    print "Could not find $f\n" if !$found && !$OPT->{quiet};\r
-    exit($found?0:1);\r
-}\r
-\r
-sub usage\r
-{\r
-    print <<USAGE;\r
-Usage: $0 [options] command\r
-    command         find file executed by this command by looking at PATH\r
-    -d, --debug     debug output\r
-    -a, --all       find all such commands in PATH\r
-    -q, --quiet     no output, exit with non-zero errorcode if not found\r
-    --path PATHARG  search PATHARG instead of the PATH environment variable\r
-    -?, -H, --help  help\r
-USAGE\r
-}\r
-\r
-main();\r
+#!perl -w
+
+use strict;
+use Config;
+use File::Basename;
+use Getopt::Long;
+
+$0 = fileparse($0);
+
+sub main
+{
+    Getopt::Long::Configure('bundling', 'no_auto_abbrev',
+                           'no_getopt_compat', 'require_order',
+                           'ignore_case', 'pass_through',
+                           'prefix_pattern=(--|-|\+|\/)',
+                          );
+    my $OPT = {};
+    GetOptions($OPT,
+              'help|h|?',
+              'all|a',
+              'quiet|q',
+              'debug|d',
+              'path:s',
+              );
+
+    my $f = shift @ARGV;
+    if ($OPT->{help} || !$f) {
+       usage();
+       exit(0) if $OPT->{help};
+       exit(1);
+    }
+
+    my $p = $OPT->{path} || $ENV{PATH};
+    my $s = $Config{path_sep};
+    my @d = split(/$s/, $p);
+    my @e = split(/$s/, lc($ENV{PATHEXT} || '.bat;.exe;.com'));
+    my @f = ($f, map { $f.$_; } @e);
+    my $found = 0;
+    foreach my $d (@d) {
+       print "(Searching $d)\n" if $OPT->{debug};
+       foreach my $f (@f) {
+           my $df = $d.'\\'.$f; # cannot use $File::Spec->catfile due to UNC.
+           print "(Checking for $df)\n" if $OPT->{debug};
+           if (-f $df) {
+               exit(0) if $OPT->{quiet};
+               print "$df\n";
+               exit(0) if !$OPT->{all};
+               $found = 1;
+           }
+       }
+    }
+    print "Could not find $f\n" if !$found && !$OPT->{quiet};
+    exit($found?0:1);
+}
+
+sub usage
+{
+    print <<USAGE;
+Usage: $0 [options] command
+    command         find file executed by this command by looking at PATH
+    -d, --debug     debug output
+    -a, --all       find all such commands in PATH
+    -q, --quiet     no output, exit with non-zero errorcode if not found
+    --path PATHARG  search PATHARG instead of the PATH environment variable
+    -?, -H, --help  help
+USAGE
+}
+
+main();
index 0c50e96aed309b7a40f157715452ff05af0738bf..01e8fed419ae66a5d66a039ae24d36a6a8893a63 100644 (file)
@@ -1,21 +1,21 @@
-#!perl -w\r
-\r
-#use strict;\r
-require "makeZip.pl";\r
-\r
-use Data::Dumper;\r
-\r
-sub zipXML {\r
-    local ($xml, $config)   = @_;\r
-    my $zipsXML = $xml->{Zips};\r
-    if (! $zipsXML) {return 0;}\r
-\r
-    local $i    = 0;\r
-    while ($zipsXML->{Zip}[$i]) {\r
-        local $zip = $zipsXML->{Zip}[$i];\r
-        makeZip($zip, $config)  if (exists $zip->{name});       ## Ignore dummy entry.\r
-        $i++;                    \r
-        }                                       ## End zip in xml.\r
-    }\r
-    \r
-return 1;\r
+#!perl -w
+
+#use strict;
+require "makeZip.pl";
+
+use Data::Dumper;
+
+sub zipXML {
+    local ($xml, $config)   = @_;
+    my $zipsXML = $xml->{Zips};
+    if (! $zipsXML) {return 0;}
+
+    local $i    = 0;
+    while ($zipsXML->{Zip}[$i]) {
+        local $zip = $zipsXML->{Zip}[$i];
+        makeZip($zip, $config)  if (exists $zip->{name});       ## Ignore dummy entry.
+        $i++;                    
+        }                                       ## End zip in xml.
+    }
+    
+return 1;
index 41e29bf8203cdf50ccd36069bf3a446bcf7da9a8..e5bc7eea8c8917197aba6307d5644fb685b28306 100644 (file)
-#\r
-# Copyright (c) 2004,2005,2006 Massachusetts Institute of Technology\r
-# Copyright (c) 2006 Secure Endpoints Inc.\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=config\r
-!include <Makefile.w32>\r
-\r
-all: showvars showvers mkalldirs mkversion\r
-\r
-showvars:\r
-       $(ECHO) SRC= $(SRC)\r
-       $(ECHO) DESTDIR = $(DESTDIR)\r
-       $(ECHO) OBJDIR = $(OBJDIR)\r
-       $(ECHO).\r
-       $(ECHO) CC = $(CC)\r
-       $(ECHO) DOXYGEN = $(DOXYGEN)\r
-       $(ECHO) HHC = $(HHC)\r
-\r
-showvers:\r
-       $(ECHO) ---- Version Information ----\r
-       $(ECHO) NETIDMGR_VERSION=    $(NETIDMGR_VERSION)\r
-       $(ECHO) NETIDMGR_VERSION_API=$(NETIDMGR_VERSION_API)\r
-       $(ECHO) NETIDMGR_RELEASEDESC=$(NETIDMGR_RELEASEDESC)\r
-       $(ECHO) Build Type          :$(KH_BUILD), $(KH_RELEASE)\r
-       $(ECHO) Strings:\r
-       $(ECHO) Company    = $(NETIDMGR_SRC_COMPANY_1033)\r
-       $(ECHO) Copyright  = $(NETIDMGR_SRC_COPYRIGHT_1033)\r
-       $(ECHO) ---- End Version Information ---\r
-       $(ECHO).\r
-\r
-mkalldirs:\r
-!      if !exist($(DESTROOT))\r
-       -$(MKDIR) $(DESTROOT)\r
-!      endif\r
-!      if !exist($(OBJROOT))\r
-       -$(MKDIR) $(OBJROOT)\r
-!      endif\r
-!      if !exist($(DESTDIR))\r
-       -$(MKDIR) $(DESTDIR)\r
-!      endif\r
-!      if !exist($(OBJDIR))\r
-       -$(MKDIR) $(OBJDIR)\r
-!      endif\r
-!      if !exist($(INCDIR))\r
-       -$(MKDIR) $(INCDIR)\r
-!      endif\r
-!      if !exist($(BINDIR))\r
-       -$(MKDIR) $(BINDIR)\r
-!      endif\r
-!      if !exist($(LIBDIR))\r
-       -$(MKDIR) $(LIBDIR)\r
-!      endif\r
-!      if !exist($(DOCDIR))\r
-       -$(MKDIR) $(DOCDIR)\r
-!      endif\r
-!      if !exist($(OBJDIR)\W2K)\r
-       -$(MKDIR) $(OBJDIR)\W2K\r
-!      endif\r
-!      if !exist($(BINDIR)\W2K)\r
-       -$(MKDIR) $(BINDIR)\W2K\r
-!      endif\r
-!      if !exist($(LIBDIR)\W2K)\r
-       -$(MKDIR) $(LIBDIR)\W2K\r
-!      endif\r
-       $(ECHO) Done creating directories.\r
-\r
-VERSIONINT=$(INCDIR)\netidmgr_intver.h\r
-\r
-VERSIONEXT=$(INCDIR)\netidmgr_version.h\r
-\r
-# Version related defines\r
-\r
-! if "$(KH_BUILD)"=="RETAIL"\r
-kh_fileflags=0\r
-! else\r
-kh_fileflags=VS_FF_DEBUG\r
-! endif\r
-! if "$(KH_RELEASE)"=="PRERELEASE"\r
-kh_fileflags=$(kh_fileflags) | VS_FF_PRERELEASE\r
-! elseif "$(KH_RELEASE)"=="PRIVATE"\r
-kh_fileflags=$(kh_fileflags) | VS_FF_PRIVATEBUILD\r
-! elseif "$(KH_RELEASE)"=="SPECIAL"\r
-kh_fileflags=$(kh_fileflags) | VS_FF_SPECIALBUILD\r
-! endif\r
-\r
-kh_fileos=VOS_NT_WINDOWS32\r
-kh_filetype_app=VFT_APP\r
-kh_filetype_dll=VFT_DLL\r
-\r
-mkversion: $(VERSIONINT) $(VERSIONEXT)\r
-\r
-# Version and build strings\r
-\r
-!if "$(KH_RELEASE)" == "OFFICIAL"\r
-NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION)\r
-NETIDMGR_COMMENT_STR_1033=Official build.  Please send bug reports to kfw-bugs@MIT.EDU\r
-!elseif "$(KH_RELEASE)" == "PRERELEASE"\r
-NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION) Prelease $(NETIDMGR_RELEASEDESC)\r
-NETIDMGR_COMMENT_STR_1033=Prerelease build.  Please send bug reports to kfw-bugs@MIT.EDU\r
-!elseif "$(KH_RELEASE)" == "PRIVATE"\r
-NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION).PRIVATE\r
-NETIDMGR_PRIVATE_STR_1033=Private build.  Please send bug reports to kfw-bugs@MIT.EDU\r
-!elseif "$(KH_RELEASE)" == "SPECIAL"\r
-NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION).SPECIAL\r
-NETIDMGR_SPECIAL_STR_1033=Special build.  Please send bug reports to kfw-bugs@MIT.EDU\r
-!endif\r
-\r
-!if "$(KH_BUILD)" == "DEBUG"\r
-NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION_STR_1033).DEBUG\r
-!else\r
-!endif\r
-\r
-NETIDMGR_PRODUCT_1033=NetIDMgr $(NETIDMGR_VERSION_STR_1033)\r
-\r
-!include netidmgr_version.h.in\r
-\r
-!include netidmgr_intver.h.in\r
-\r
-clean::\r
-!      if exist($(VERSIONINT))\r
-       $(RM) $(VERSIONINT)\r
-!      endif\r
-!      if exist($(VERSIONEXT))\r
-       $(RM) $(VERSIONEXT)\r
-!      endif\r
-\r
+#
+# Copyright (c) 2004,2005,2006 Massachusetts Institute of Technology
+# Copyright (c) 2006 Secure Endpoints Inc.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=config
+!include <Makefile.w32>
+
+all: showvars showvers mkalldirs mkversion
+
+showvars:
+       $(ECHO) SRC= $(SRC)
+       $(ECHO) DESTDIR = $(DESTDIR)
+       $(ECHO) OBJDIR = $(OBJDIR)
+       $(ECHO).
+       $(ECHO) CC = $(CC)
+       $(ECHO) DOXYGEN = $(DOXYGEN)
+       $(ECHO) HHC = $(HHC)
+
+showvers:
+       $(ECHO) ---- Version Information ----
+       $(ECHO) NETIDMGR_VERSION=    $(NETIDMGR_VERSION)
+       $(ECHO) NETIDMGR_VERSION_API=$(NETIDMGR_VERSION_API)
+       $(ECHO) NETIDMGR_RELEASEDESC=$(NETIDMGR_RELEASEDESC)
+       $(ECHO) Build Type          :$(KH_BUILD), $(KH_RELEASE)
+       $(ECHO) Strings:
+       $(ECHO) Company    = $(NETIDMGR_SRC_COMPANY_1033)
+       $(ECHO) Copyright  = $(NETIDMGR_SRC_COPYRIGHT_1033)
+       $(ECHO) ---- End Version Information ---
+       $(ECHO).
+
+mkalldirs:
+!      if !exist($(DESTROOT))
+       -$(MKDIR) $(DESTROOT)
+!      endif
+!      if !exist($(OBJROOT))
+       -$(MKDIR) $(OBJROOT)
+!      endif
+!      if !exist($(DESTDIR))
+       -$(MKDIR) $(DESTDIR)
+!      endif
+!      if !exist($(OBJDIR))
+       -$(MKDIR) $(OBJDIR)
+!      endif
+!      if !exist($(INCDIR))
+       -$(MKDIR) $(INCDIR)
+!      endif
+!      if !exist($(BINDIR))
+       -$(MKDIR) $(BINDIR)
+!      endif
+!      if !exist($(LIBDIR))
+       -$(MKDIR) $(LIBDIR)
+!      endif
+!      if !exist($(DOCDIR))
+       -$(MKDIR) $(DOCDIR)
+!      endif
+!      if !exist($(OBJDIR)\W2K)
+       -$(MKDIR) $(OBJDIR)\W2K
+!      endif
+!      if !exist($(BINDIR)\W2K)
+       -$(MKDIR) $(BINDIR)\W2K
+!      endif
+!      if !exist($(LIBDIR)\W2K)
+       -$(MKDIR) $(LIBDIR)\W2K
+!      endif
+       $(ECHO) Done creating directories.
+
+VERSIONINT=$(INCDIR)\netidmgr_intver.h
+
+VERSIONEXT=$(INCDIR)\netidmgr_version.h
+
+# Version related defines
+
+! if "$(KH_BUILD)"=="RETAIL"
+kh_fileflags=0
+! else
+kh_fileflags=VS_FF_DEBUG
+! endif
+! if "$(KH_RELEASE)"=="PRERELEASE"
+kh_fileflags=$(kh_fileflags) | VS_FF_PRERELEASE
+! elseif "$(KH_RELEASE)"=="PRIVATE"
+kh_fileflags=$(kh_fileflags) | VS_FF_PRIVATEBUILD
+! elseif "$(KH_RELEASE)"=="SPECIAL"
+kh_fileflags=$(kh_fileflags) | VS_FF_SPECIALBUILD
+! endif
+
+kh_fileos=VOS_NT_WINDOWS32
+kh_filetype_app=VFT_APP
+kh_filetype_dll=VFT_DLL
+
+mkversion: $(VERSIONINT) $(VERSIONEXT)
+
+# Version and build strings
+
+!if "$(KH_RELEASE)" == "OFFICIAL"
+NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION)
+NETIDMGR_COMMENT_STR_1033=Official build.  Please send bug reports to kfw-bugs@MIT.EDU
+!elseif "$(KH_RELEASE)" == "PRERELEASE"
+NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION) Prelease $(NETIDMGR_RELEASEDESC)
+NETIDMGR_COMMENT_STR_1033=Prerelease build.  Please send bug reports to kfw-bugs@MIT.EDU
+!elseif "$(KH_RELEASE)" == "PRIVATE"
+NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION).PRIVATE
+NETIDMGR_PRIVATE_STR_1033=Private build.  Please send bug reports to kfw-bugs@MIT.EDU
+!elseif "$(KH_RELEASE)" == "SPECIAL"
+NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION).SPECIAL
+NETIDMGR_SPECIAL_STR_1033=Special build.  Please send bug reports to kfw-bugs@MIT.EDU
+!endif
+
+!if "$(KH_BUILD)" == "DEBUG"
+NETIDMGR_VERSION_STR_1033=$(NETIDMGR_VERSION_STR_1033).DEBUG
+!else
+!endif
+
+NETIDMGR_PRODUCT_1033=NetIDMgr $(NETIDMGR_VERSION_STR_1033)
+
+!include netidmgr_version.h.in
+
+!include netidmgr_intver.h.in
+
+clean::
+!      if exist($(VERSIONINT))
+       $(RM) $(VERSIONINT)
+!      endif
+!      if exist($(VERSIONEXT))
+       $(RM) $(VERSIONEXT)
+!      endif
+
index 15d47217f93e235942d17b8a89c478f6d2058ddc..e025fde202f024547617e768f60ebd4b98226028 100644 (file)
@@ -1,47 +1,47 @@
-$(VERSIONINT): Makefile Makefile.w32\r
-       $(CP) << $(VERSIONINT)\r
-/*\r
- * This is an autogenerated file.  Do not modify directly.\r
- * \r
- * File generated by running $(MAKE) in $(MAKEDIR)\r
- * To regenerate, run "$(MAKE) clean" and "$(MAKE) all" on $(MAKEDIR)\r
- */\r
-#ifndef __NETIDMGR_VERSION_INTERNAL_H\r
-#define __NETIDMGR_VERSION_INTERNAL_H\r
-\r
-#include<netidmgr_version.h>\r
-\r
-/* Language specific version strings */\r
-#define KH_VERSTR_COMPANY_1033 "$(NETIDMGR_SRC_COMPANY_1033)"\r
-#define KH_VERSTR_COPYRIGHT_1033 "$(NETIDMGR_SRC_COPYRIGHT_1033)"\r
-#define KH_VERSTR_PRODUCT_1033 "$(NETIDMGR_PRODUCT_1033)"\r
-#define KH_VERSTR_VERSION_1033 "$(NETIDMGR_VERSION_STR_1033)"\r
-\r
-!ifdef NETIDMGR_COMMENT_STR_1033\r
-#define KH_VERSTR_COMMENT_1033 "$(NETIDMGR_COMMENT_STR_1033)"\r
-#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_COMMENT_1033\r
-!endif\r
-!ifdef NETIDMGR_PRIVATE_STR_1033\r
-#define KH_VERSTR_PRIVATE_1033 "$(NETIDMGR_PRIVATE_STR_1033)"\r
-#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_PRIVATE_1033\r
-!endif\r
-!ifdef NETIDMGR_SPECIAL_STR_1033\r
-#define KH_VERSTR_SPECIAL_1033 "$(NETIDMGR_SPECIAL_STR_1033)"\r
-#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_SPECIAL_1033\r
-!endif\r
-#endif\r
-\r
-#define KH_BUILD "$(KH_BUILD)"\r
-\r
-! if "$(KH_BUILD)"=="RETAIL"\r
-#define KH_BUILD_RETAIL\r
-! elseif "$(KH_RELEASE)"=="PRERELEASE"\r
-#define KH_BUILD_PRERELEASE\r
-! elseif "$(KH_RELEASE)"=="PRIVATE"\r
-#define KH_BUILD_PRIVATE\r
-! elseif "$(KH_RELEASE)"=="SPECIAL"\r
-#define KH_BUILD_SPECIAL\r
-! endif\r
-\r
-<<\r
-\r
+$(VERSIONINT): Makefile Makefile.w32
+       $(CP) << $(VERSIONINT)
+/*
+ * This is an autogenerated file.  Do not modify directly.
+ * 
+ * File generated by running $(MAKE) in $(MAKEDIR)
+ * To regenerate, run "$(MAKE) clean" and "$(MAKE) all" on $(MAKEDIR)
+ */
+#ifndef __NETIDMGR_VERSION_INTERNAL_H
+#define __NETIDMGR_VERSION_INTERNAL_H
+
+#include<netidmgr_version.h>
+
+/* Language specific version strings */
+#define KH_VERSTR_COMPANY_1033 "$(NETIDMGR_SRC_COMPANY_1033)"
+#define KH_VERSTR_COPYRIGHT_1033 "$(NETIDMGR_SRC_COPYRIGHT_1033)"
+#define KH_VERSTR_PRODUCT_1033 "$(NETIDMGR_PRODUCT_1033)"
+#define KH_VERSTR_VERSION_1033 "$(NETIDMGR_VERSION_STR_1033)"
+
+!ifdef NETIDMGR_COMMENT_STR_1033
+#define KH_VERSTR_COMMENT_1033 "$(NETIDMGR_COMMENT_STR_1033)"
+#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_COMMENT_1033
+!endif
+!ifdef NETIDMGR_PRIVATE_STR_1033
+#define KH_VERSTR_PRIVATE_1033 "$(NETIDMGR_PRIVATE_STR_1033)"
+#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_PRIVATE_1033
+!endif
+!ifdef NETIDMGR_SPECIAL_STR_1033
+#define KH_VERSTR_SPECIAL_1033 "$(NETIDMGR_SPECIAL_STR_1033)"
+#define KH_VERSTR_BUILDINFO_1033 KH_VERSTR_SPECIAL_1033
+!endif
+#endif
+
+#define KH_BUILD "$(KH_BUILD)"
+
+! if "$(KH_BUILD)"=="RETAIL"
+#define KH_BUILD_RETAIL
+! elseif "$(KH_RELEASE)"=="PRERELEASE"
+#define KH_BUILD_PRERELEASE
+! elseif "$(KH_RELEASE)"=="PRIVATE"
+#define KH_BUILD_PRIVATE
+! elseif "$(KH_RELEASE)"=="SPECIAL"
+#define KH_BUILD_SPECIAL
+! endif
+
+<<
+
index be53060d00d0643c1a4ae67d939ad1a98b36ee33..febbeb3d75ae51f72f2978b79be5ed16b214a241 100644 (file)
@@ -1,63 +1,63 @@
-$(VERSIONEXT): Makefile Makefile.w32\r
-       $(CP) << $(VERSIONEXT)\r
-/* Copyright (c) 2004 Massachusetts Institute of Technology\r
- *\r
- * Permission is hereby granted, free of charge, to any person\r
- * obtaining a copy of this software and associated documentation\r
- * files (the "Software"), to deal in the Software without\r
- * restriction, including without limitation the rights to use, copy,\r
- * modify, merge, publish, distribute, sublicense, and/or sell copies\r
- * of the Software, and to permit persons to whom the Software is\r
- * furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- *\r
- */\r
-\r
-#ifndef __NETIDMGR_VERSION_H\r
-#define __NETIDMGR_VERSION_H\r
-\r
-#include<windows.h>\r
-\r
-/* Version number macros */\r
-#define KH_VERSION_MAJOR       $(NETIDMGR_VERSION_MAJOR)\r
-#define KH_VERSION_MINOR       $(NETIDMGR_VERSION_MINOR)\r
-#define KH_VERSION_PATCH       $(NETIDMGR_VERSION_PATCH)\r
-#define KH_VERSION_AUX                 $(NETIDMGR_VERSION_AUX)\r
-\r
-#define KH_VERSION_API          $(NETIDMGR_VERSION_API)\r
-#define KH_VERSION_API_MINCOMPAT $(NETIDMGR_VERSION_API_MINCOMPAT)\r
-\r
-#define KH_VERSION_LIST        $(NETIDMGR_VERSIONC)\r
-#define KH_VERSION_STRING      "$(NETIDMGR_VERSION)"\r
-#define KH_VERSION_STRINGW     L"$(NETIDMGR_VERSION)"\r
-#define KH_VERSION_STRINGC     "$(NETIDMGR_VERSIONC)"\r
-#define KH_VERSION_STRINGCW    L"$(NETIDMGR_VERSIONC)"\r
-#define KH_VERSION_STRINGAPI    "$(NETIDMGR_VERSION_API)"\r
-\r
-/* Version definition macros */\r
-#define KH_VER_FILEFLAGMASK     0x17L\r
-#define KH_VER_FILEFLAGS       $(kh_fileflags)\r
-#define KH_VER_FILEOS          $(kh_fileos)\r
-#define KH_VER_FILETYPEDLL     $(kh_filetype_dll)\r
-#define KH_VER_FILETYPEAPP     $(kh_filetype_app)\r
-\r
-/* Special macros for NetIDMgr special string resources */\r
-#define NIMV_MODULE             "NIDM_Module"\r
-#define NIMV_PLUGINS            "NIDM_Plugins"\r
-#define NIMV_APIVER             "NIDM_APIVers"\r
-#define NIMV_SUPPORT            "NIDM_Support"\r
-\r
-#endif\r
-<<\r
-\r
+$(VERSIONEXT): Makefile Makefile.w32
+       $(CP) << $(VERSIONEXT)
+/* Copyright (c) 2004 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+#ifndef __NETIDMGR_VERSION_H
+#define __NETIDMGR_VERSION_H
+
+#include<windows.h>
+
+/* Version number macros */
+#define KH_VERSION_MAJOR       $(NETIDMGR_VERSION_MAJOR)
+#define KH_VERSION_MINOR       $(NETIDMGR_VERSION_MINOR)
+#define KH_VERSION_PATCH       $(NETIDMGR_VERSION_PATCH)
+#define KH_VERSION_AUX                 $(NETIDMGR_VERSION_AUX)
+
+#define KH_VERSION_API          $(NETIDMGR_VERSION_API)
+#define KH_VERSION_API_MINCOMPAT $(NETIDMGR_VERSION_API_MINCOMPAT)
+
+#define KH_VERSION_LIST        $(NETIDMGR_VERSIONC)
+#define KH_VERSION_STRING      "$(NETIDMGR_VERSION)"
+#define KH_VERSION_STRINGW     L"$(NETIDMGR_VERSION)"
+#define KH_VERSION_STRINGC     "$(NETIDMGR_VERSIONC)"
+#define KH_VERSION_STRINGCW    L"$(NETIDMGR_VERSIONC)"
+#define KH_VERSION_STRINGAPI    "$(NETIDMGR_VERSION_API)"
+
+/* Version definition macros */
+#define KH_VER_FILEFLAGMASK     0x17L
+#define KH_VER_FILEFLAGS       $(kh_fileflags)
+#define KH_VER_FILEOS          $(kh_fileos)
+#define KH_VER_FILETYPEDLL     $(kh_filetype_dll)
+#define KH_VER_FILETYPEAPP     $(kh_filetype_app)
+
+/* Special macros for NetIDMgr special string resources */
+#define NIMV_MODULE             "NIDM_Module"
+#define NIMV_PLUGINS            "NIDM_Plugins"
+#define NIMV_APIVER             "NIDM_APIVers"
+#define NIMV_SUPPORT            "NIDM_Support"
+
+#endif
+<<
+
index 89380aff36b33e87d3eff8fde90363f92d4971db..db40d0f650536e7972701d279b727e4a9faa0a10 100644 (file)
@@ -1,71 +1,71 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-# Copyright (c) 2007 Secure Endpoints Inc.\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=doc\r
-!include <../config/Makefile.w32>\r
-\r
-all: mkdirs docs\r
-\r
-docs:\r
-       $(DOXYGEN) <<\r
-@INCLUDE = doxyfile.cfg\r
-\r
-PROJECT_NUMBER = "$(KHIMAIRA_VERSION)"\r
-\r
-OUTPUT_DIRECTORY = "$(DOCDIR)"\r
-\r
-STRIP_FROM_PATH = "$(SRC)"\r
-\r
-INTERNAL_DOCS = NO\r
-\r
-WARN_LOGFILE = "$(OBJ)\doxywarnings.txt"\r
-\r
-INPUT =  "$(SRC)\include"\r
-INPUT += "$(SRC)\kconfig"\r
-INPUT += "$(SRC)\kcreddb"\r
-INPUT += "$(SRC)\kmq"\r
-INPUT += "$(SRC)\ui"\r
-INPUT += "$(SRC)\uilib"\r
-INPUT += "$(SRC)\util"\r
-INPUT += "$(SRC)\doc"\r
-INPUT += "$(SRC)\kmm"\r
-INPUT += "$(SRC)\kherr"\r
-!ifdef BUILD_AFS\r
-INPUT += "$(SRC)\plugins\afs"\r
-\r
-ALIASES =  "apiversion=$(NETIDMGR_VERSION_API)"\r
-!endif\r
-\r
-IMAGE_PATH = "$(SRC)\doc\images"\r
-\r
-INCLUDE_PATH = "$(INCDIR)" "$(SRC)\include"\r
-\r
-CHM_FILE = "$(DOCDIR)\netiddev.chm"\r
-<<\r
-       -$(HHC) $(DOCDIR)\html\index.hhp\r
-\r
-clean::\r
-       if exist "$(DOCDIR)/html" $(RMDIR) /s /q "$(DOCDIR)\html"\r
-       if exist "$(DOCDIR)" $(RM) "$(DOCDIR)\*.*"\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+# Copyright (c) 2007 Secure Endpoints Inc.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=doc
+!include <../config/Makefile.w32>
+
+all: mkdirs docs
+
+docs:
+       $(DOXYGEN) <<
+@INCLUDE = doxyfile.cfg
+
+PROJECT_NUMBER = "$(KHIMAIRA_VERSION)"
+
+OUTPUT_DIRECTORY = "$(DOCDIR)"
+
+STRIP_FROM_PATH = "$(SRC)"
+
+INTERNAL_DOCS = NO
+
+WARN_LOGFILE = "$(OBJ)\doxywarnings.txt"
+
+INPUT =  "$(SRC)\include"
+INPUT += "$(SRC)\kconfig"
+INPUT += "$(SRC)\kcreddb"
+INPUT += "$(SRC)\kmq"
+INPUT += "$(SRC)\ui"
+INPUT += "$(SRC)\uilib"
+INPUT += "$(SRC)\util"
+INPUT += "$(SRC)\doc"
+INPUT += "$(SRC)\kmm"
+INPUT += "$(SRC)\kherr"
+!ifdef BUILD_AFS
+INPUT += "$(SRC)\plugins\afs"
+
+ALIASES =  "apiversion=$(NETIDMGR_VERSION_API)"
+!endif
+
+IMAGE_PATH = "$(SRC)\doc\images"
+
+INCLUDE_PATH = "$(INCDIR)" "$(SRC)\include"
+
+CHM_FILE = "$(DOCDIR)\netiddev.chm"
+<<
+       -$(HHC) $(DOCDIR)\html\index.hhp
+
+clean::
+       if exist "$(DOCDIR)/html" $(RMDIR) /s /q "$(DOCDIR)\html"
+       if exist "$(DOCDIR)" $(RM) "$(DOCDIR)\*.*"
index e269235664b3c6ee92416dcc4c184296ca78db81..7bb3092fe059d0ccaa27be77719a332d25171fee 100644 (file)
-# Doxyfile 1.5.2\r
-\r
-# This file describes the settings to be used by the documentation system\r
-# doxygen (www.doxygen.org) for a project\r
-#\r
-# All text after a hash (#) is considered a comment and will be ignored\r
-# The format is:\r
-#       TAG = value [value, ...]\r
-# For lists items can also be appended using:\r
-#       TAG += value [value, ...]\r
-# Values that contain spaces should be placed between quotes (" ")\r
-\r
-#---------------------------------------------------------------------------\r
-# Project related configuration options\r
-#---------------------------------------------------------------------------\r
-\r
-# This tag specifies the encoding used for all characters in the config file that \r
-# follow. The default is UTF-8 which is also the encoding used for all text before \r
-# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into \r
-# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of \r
-# possible encodings.\r
-\r
-DOXYFILE_ENCODING      = UTF-8\r
-\r
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded \r
-# by quotes) that should identify the project.\r
-\r
-PROJECT_NAME           = "Network Identity Manager"\r
-\r
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. \r
-# This could be handy for archiving the generated documentation or \r
-# if some version control system is used.\r
-\r
-PROJECT_NUMBER         = \r
-\r
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) \r
-# base path where the generated documentation will be put. \r
-# If a relative path is entered, it will be relative to the location \r
-# where doxygen was started. If left blank the current directory will be used.\r
-\r
-OUTPUT_DIRECTORY       = \r
-\r
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create \r
-# 4096 sub-directories (in 2 levels) under the output directory of each output \r
-# format and will distribute the generated files over these directories. \r
-# Enabling this option can be useful when feeding doxygen a huge amount of \r
-# source files, where putting all generated files in the same directory would \r
-# otherwise cause performance problems for the file system.\r
-\r
-CREATE_SUBDIRS         = NO\r
-\r
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all \r
-# documentation generated by doxygen is written. Doxygen will use this \r
-# information to generate all constant output in the proper language. \r
-# The default language is English, other supported languages are: \r
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, \r
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, \r
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, \r
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, \r
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.\r
-\r
-OUTPUT_LANGUAGE        = English\r
-\r
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will \r
-# include brief member descriptions after the members that are listed in \r
-# the file and class documentation (similar to JavaDoc). \r
-# Set to NO to disable this.\r
-\r
-BRIEF_MEMBER_DESC      = YES\r
-\r
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend \r
-# the brief description of a member or function before the detailed description. \r
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the \r
-# brief descriptions will be completely suppressed.\r
-\r
-REPEAT_BRIEF           = YES\r
-\r
-# This tag implements a quasi-intelligent brief description abbreviator \r
-# that is used to form the text in various listings. Each string \r
-# in this list, if found as the leading text of the brief description, will be \r
-# stripped from the text and the result after processing the whole list, is \r
-# used as the annotated text. Otherwise, the brief description is used as-is. \r
-# If left blank, the following values are used ("$name" is automatically \r
-# replaced with the name of the entity): "The $name class" "The $name widget" \r
-# "The $name file" "is" "provides" "specifies" "contains" \r
-# "represents" "a" "an" "the"\r
-\r
-ABBREVIATE_BRIEF       = \r
-\r
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then \r
-# Doxygen will generate a detailed section even if there is only a brief \r
-# description.\r
-\r
-ALWAYS_DETAILED_SEC    = NO\r
-\r
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all \r
-# inherited members of a class in the documentation of that class as if those \r
-# members were ordinary class members. Constructors, destructors and assignment \r
-# operators of the base classes will not be shown.\r
-\r
-INLINE_INHERITED_MEMB  = NO\r
-\r
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full \r
-# path before files name in the file list and in the header files. If set \r
-# to NO the shortest path that makes the file name unique will be used.\r
-\r
-FULL_PATH_NAMES        = NO\r
-\r
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag \r
-# can be used to strip a user-defined part of the path. Stripping is \r
-# only done if one of the specified strings matches the left-hand part of \r
-# the path. The tag can be used to show relative paths in the file list. \r
-# If left blank the directory from which doxygen is run is used as the \r
-# path to strip.\r
-\r
-STRIP_FROM_PATH        = \r
-\r
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of \r
-# the path mentioned in the documentation of a class, which tells \r
-# the reader which header file to include in order to use a class. \r
-# If left blank only the name of the header file containing the class \r
-# definition is used. Otherwise one should specify the include paths that \r
-# are normally passed to the compiler using the -I flag.\r
-\r
-STRIP_FROM_INC_PATH    = \r
-\r
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter \r
-# (but less readable) file names. This can be useful is your file systems \r
-# doesn't support long names like on DOS, Mac, or CD-ROM.\r
-\r
-SHORT_NAMES            = NO\r
-\r
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \r
-# will interpret the first line (until the first dot) of a JavaDoc-style \r
-# comment as the brief description. If set to NO, the JavaDoc \r
-# comments will behave just like the Qt-style comments (thus requiring an \r
-# explicit @brief command for a brief description.\r
-\r
-JAVADOC_AUTOBRIEF      = NO\r
-\r
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen \r
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// \r
-# comments) as a brief description. This used to be the default behaviour. \r
-# The new default is to treat a multi-line C++ comment block as a detailed \r
-# description. Set this tag to YES if you prefer the old behaviour instead.\r
-\r
-MULTILINE_CPP_IS_BRIEF = NO\r
-\r
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen \r
-# will output the detailed description near the top, like JavaDoc.\r
-# If set to NO, the detailed description appears after the member \r
-# documentation.\r
-\r
-DETAILS_AT_TOP         = YES\r
-\r
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented \r
-# member inherits the documentation from any documented member that it \r
-# re-implements.\r
-\r
-INHERIT_DOCS           = YES\r
-\r
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce \r
-# a new page for each member. If set to NO, the documentation of a member will \r
-# be part of the file/class/namespace that contains it.\r
-\r
-SEPARATE_MEMBER_PAGES  = NO\r
-\r
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. \r
-# Doxygen uses this value to replace tabs by spaces in code fragments.\r
-\r
-TAB_SIZE               = 4\r
-\r
-# This tag can be used to specify a number of aliases that acts \r
-# as commands in the documentation. An alias has the form "name=value". \r
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to \r
-# put the command \sideeffect (or @sideeffect) in the documentation, which \r
-# will result in a user-defined paragraph with heading "Side Effects:". \r
-# You can put \n's in the value part of an alias to insert newlines.\r
-\r
-ALIASES                = \r
-\r
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C \r
-# sources only. Doxygen will then generate output that is more tailored for C. \r
-# For instance, some of the names that are used will be different. The list \r
-# of all members will be omitted, etc.\r
-\r
-OPTIMIZE_OUTPUT_FOR_C  = YES\r
-\r
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java \r
-# sources only. Doxygen will then generate output that is more tailored for Java. \r
-# For instance, namespaces will be presented as packages, qualified scopes \r
-# will look different, etc.\r
-\r
-OPTIMIZE_OUTPUT_JAVA   = NO\r
-\r
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to \r
-# include (a tag file for) the STL sources as input, then you should \r
-# set this tag to YES in order to let doxygen match functions declarations and \r
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. \r
-# func(std::string) {}). This also make the inheritance and collaboration \r
-# diagrams that involve STL classes more complete and accurate.\r
-\r
-BUILTIN_STL_SUPPORT    = NO\r
-\r
-# If you use Microsoft's C++/CLI language, you should set this option to YES to\r
-# enable parsing support.\r
-\r
-CPP_CLI_SUPPORT        = NO\r
-\r
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \r
-# tag is set to YES, then doxygen will reuse the documentation of the first \r
-# member in the group (if any) for the other members of the group. By default \r
-# all members of a group must be documented explicitly.\r
-\r
-DISTRIBUTE_GROUP_DOC   = NO\r
-\r
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of \r
-# the same type (for instance a group of public functions) to be put as a \r
-# subgroup of that type (e.g. under the Public Functions section). Set it to \r
-# NO to prevent subgrouping. Alternatively, this can be done per class using \r
-# the \nosubgrouping command.\r
-\r
-SUBGROUPING            = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Build related configuration options\r
-#---------------------------------------------------------------------------\r
-\r
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in \r
-# documentation are documented, even if no documentation was available. \r
-# Private class members and static file members will be hidden unless \r
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES\r
-\r
-EXTRACT_ALL            = NO\r
-\r
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class \r
-# will be included in the documentation.\r
-\r
-EXTRACT_PRIVATE        = NO\r
-\r
-# If the EXTRACT_STATIC tag is set to YES all static members of a file \r
-# will be included in the documentation.\r
-\r
-EXTRACT_STATIC         = NO\r
-\r
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) \r
-# defined locally in source files will be included in the documentation. \r
-# If set to NO only classes defined in header files are included.\r
-\r
-EXTRACT_LOCAL_CLASSES  = YES\r
-\r
-# This flag is only useful for Objective-C code. When set to YES local \r
-# methods, which are defined in the implementation section but not in \r
-# the interface are included in the documentation. \r
-# If set to NO (the default) only methods in the interface are included.\r
-\r
-EXTRACT_LOCAL_METHODS  = NO\r
-\r
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all \r
-# undocumented members of documented classes, files or namespaces. \r
-# If set to NO (the default) these members will be included in the \r
-# various overviews, but no documentation section is generated. \r
-# This option has no effect if EXTRACT_ALL is enabled.\r
-\r
-HIDE_UNDOC_MEMBERS     = NO\r
-\r
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all \r
-# undocumented classes that are normally visible in the class hierarchy. \r
-# If set to NO (the default) these classes will be included in the various \r
-# overviews. This option has no effect if EXTRACT_ALL is enabled.\r
-\r
-HIDE_UNDOC_CLASSES     = NO\r
-\r
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all \r
-# friend (class|struct|union) declarations. \r
-# If set to NO (the default) these declarations will be included in the \r
-# documentation.\r
-\r
-HIDE_FRIEND_COMPOUNDS  = NO\r
-\r
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any \r
-# documentation blocks found inside the body of a function. \r
-# If set to NO (the default) these blocks will be appended to the \r
-# function's detailed documentation block.\r
-\r
-HIDE_IN_BODY_DOCS      = NO\r
-\r
-# The INTERNAL_DOCS tag determines if documentation \r
-# that is typed after a \internal command is included. If the tag is set \r
-# to NO (the default) then the documentation will be excluded. \r
-# Set it to YES to include the internal documentation.\r
-\r
-INTERNAL_DOCS          = YES\r
-\r
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate \r
-# file names in lower-case letters. If set to YES upper-case letters are also \r
-# allowed. This is useful if you have classes or files whose names only differ \r
-# in case and if your file system supports case sensitive file names. Windows \r
-# and Mac users are advised to set this option to NO.\r
-\r
-CASE_SENSE_NAMES       = YES\r
-\r
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen \r
-# will show members with their full class and namespace scopes in the \r
-# documentation. If set to YES the scope will be hidden.\r
-\r
-HIDE_SCOPE_NAMES       = NO\r
-\r
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen \r
-# will put a list of the files that are included by a file in the documentation \r
-# of that file.\r
-\r
-SHOW_INCLUDE_FILES     = YES\r
-\r
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] \r
-# is inserted in the documentation for inline members.\r
-\r
-INLINE_INFO            = YES\r
-\r
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen \r
-# will sort the (detailed) documentation of file and class members \r
-# alphabetically by member name. If set to NO the members will appear in \r
-# declaration order.\r
-\r
-SORT_MEMBER_DOCS       = YES\r
-\r
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the \r
-# brief documentation of file, namespace and class members alphabetically \r
-# by member name. If set to NO (the default) the members will appear in \r
-# declaration order.\r
-\r
-SORT_BRIEF_DOCS        = NO\r
-\r
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be \r
-# sorted by fully-qualified names, including namespaces. If set to \r
-# NO (the default), the class list will be sorted only by class name, \r
-# not including the namespace part. \r
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\r
-# Note: This option applies only to the class list, not to the \r
-# alphabetical list.\r
-\r
-SORT_BY_SCOPE_NAME     = NO\r
-\r
-# The GENERATE_TODOLIST tag can be used to enable (YES) or \r
-# disable (NO) the todo list. This list is created by putting \todo \r
-# commands in the documentation.\r
-\r
-GENERATE_TODOLIST      = YES\r
-\r
-# The GENERATE_TESTLIST tag can be used to enable (YES) or \r
-# disable (NO) the test list. This list is created by putting \test \r
-# commands in the documentation.\r
-\r
-GENERATE_TESTLIST      = YES\r
-\r
-# The GENERATE_BUGLIST tag can be used to enable (YES) or \r
-# disable (NO) the bug list. This list is created by putting \bug \r
-# commands in the documentation.\r
-\r
-GENERATE_BUGLIST       = YES\r
-\r
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or \r
-# disable (NO) the deprecated list. This list is created by putting \r
-# \deprecated commands in the documentation.\r
-\r
-GENERATE_DEPRECATEDLIST= YES\r
-\r
-# The ENABLED_SECTIONS tag can be used to enable conditional \r
-# documentation sections, marked by \if sectionname ... \endif.\r
-\r
-ENABLED_SECTIONS       = \r
-\r
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines \r
-# the initial value of a variable or define consists of for it to appear in \r
-# the documentation. If the initializer consists of more lines than specified \r
-# here it will be hidden. Use a value of 0 to hide initializers completely. \r
-# The appearance of the initializer of individual variables and defines in the \r
-# documentation can be controlled using \showinitializer or \hideinitializer \r
-# command in the documentation regardless of this setting.\r
-\r
-MAX_INITIALIZER_LINES  = 30\r
-\r
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated \r
-# at the bottom of the documentation of classes and structs. If set to YES the \r
-# list will mention the files that were used to generate the documentation.\r
-\r
-SHOW_USED_FILES        = YES\r
-\r
-# If the sources in your project are distributed over multiple directories \r
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy \r
-# in the documentation. The default is NO.\r
-\r
-SHOW_DIRECTORIES       = NO\r
-\r
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that \r
-# doxygen should invoke to get the current version for each file (typically from the \r
-# version control system). Doxygen will invoke the program by executing (via \r
-# popen()) the command <command> <input-file>, where <command> is the value of \r
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file \r
-# provided by doxygen. Whatever the program writes to standard output \r
-# is used as the file version. See the manual for examples.\r
-\r
-FILE_VERSION_FILTER    = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to warning and progress messages\r
-#---------------------------------------------------------------------------\r
-\r
-# The QUIET tag can be used to turn on/off the messages that are generated \r
-# by doxygen. Possible values are YES and NO. If left blank NO is used.\r
-\r
-QUIET                  = NO\r
-\r
-# The WARNINGS tag can be used to turn on/off the warning messages that are \r
-# generated by doxygen. Possible values are YES and NO. If left blank \r
-# NO is used.\r
-\r
-WARNINGS               = YES\r
-\r
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings \r
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will \r
-# automatically be disabled.\r
-\r
-WARN_IF_UNDOCUMENTED   = YES\r
-\r
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for \r
-# potential errors in the documentation, such as not documenting some \r
-# parameters in a documented function, or documenting parameters that \r
-# don't exist or using markup commands wrongly.\r
-\r
-WARN_IF_DOC_ERROR      = YES\r
-\r
-# This WARN_NO_PARAMDOC option can be abled to get warnings for \r
-# functions that are documented, but have no documentation for their parameters \r
-# or return value. If set to NO (the default) doxygen will only warn about \r
-# wrong or incomplete parameter documentation, but not about the absence of \r
-# documentation.\r
-\r
-WARN_NO_PARAMDOC       = NO\r
-\r
-# The WARN_FORMAT tag determines the format of the warning messages that \r
-# doxygen can produce. The string should contain the $file, $line, and $text \r
-# tags, which will be replaced by the file and line number from which the \r
-# warning originated and the warning text. Optionally the format may contain \r
-# $version, which will be replaced by the version of the file (if it could \r
-# be obtained via FILE_VERSION_FILTER)\r
-\r
-WARN_FORMAT            = "$file:$line: $text"\r
-\r
-# The WARN_LOGFILE tag can be used to specify a file to which warning \r
-# and error messages should be written. If left blank the output is written \r
-# to stderr.\r
-\r
-WARN_LOGFILE           = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the input files\r
-#---------------------------------------------------------------------------\r
-\r
-# The INPUT tag can be used to specify the files and/or directories that contain \r
-# documented source files. You may enter file names like "myfile.cpp" or \r
-# directories like "/usr/src/myproject". Separate the files or directories \r
-# with spaces.\r
-\r
-INPUT                  = \r
-\r
-# This tag can be used to specify the character encoding of the source files that \r
-# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default \r
-# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. \r
-# See http://www.gnu.org/software/libiconv for the list of possible encodings.\r
-\r
-INPUT_ENCODING         = UTF-8\r
-\r
-# If the value of the INPUT tag contains directories, you can use the \r
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp \r
-# and *.h) to filter out the source-files in the directories. If left \r
-# blank the following patterns are tested: \r
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx \r
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py\r
-\r
-FILE_PATTERNS          = \r
-\r
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories \r
-# should be searched for input files as well. Possible values are YES and NO. \r
-# If left blank NO is used.\r
-\r
-RECURSIVE              = NO\r
-\r
-# The EXCLUDE tag can be used to specify files and/or directories that should \r
-# excluded from the INPUT source files. This way you can easily exclude a \r
-# subdirectory from a directory tree whose root is specified with the INPUT tag.\r
-\r
-EXCLUDE                = \r
-\r
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or \r
-# directories that are symbolic links (a Unix filesystem feature) are excluded \r
-# from the input.\r
-\r
-EXCLUDE_SYMLINKS       = NO\r
-\r
-# If the value of the INPUT tag contains directories, you can use the \r
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude \r
-# certain files from those directories. Note that the wildcards are matched \r
-# against the file with absolute path, so to exclude all test directories \r
-# for example use the pattern */test/*\r
-\r
-EXCLUDE_PATTERNS       = \r
-\r
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names \r
-# (namespaces, classes, functions, etc.) that should be excluded from the output. \r
-# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, \r
-# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test\r
-\r
-EXCLUDE_SYMBOLS        = \r
-\r
-# The EXAMPLE_PATH tag can be used to specify one or more files or \r
-# directories that contain example code fragments that are included (see \r
-# the \include command).\r
-\r
-EXAMPLE_PATH           = \r
-\r
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the \r
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp \r
-# and *.h) to filter out the source-files in the directories. If left \r
-# blank all files are included.\r
-\r
-EXAMPLE_PATTERNS       = \r
-\r
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be \r
-# searched for input files to be used with the \include or \dontinclude \r
-# commands irrespective of the value of the RECURSIVE tag. \r
-# Possible values are YES and NO. If left blank NO is used.\r
-\r
-EXAMPLE_RECURSIVE      = NO\r
-\r
-# The IMAGE_PATH tag can be used to specify one or more files or \r
-# directories that contain image that are included in the documentation (see \r
-# the \image command).\r
-\r
-IMAGE_PATH             = \r
-\r
-# The INPUT_FILTER tag can be used to specify a program that doxygen should \r
-# invoke to filter for each input file. Doxygen will invoke the filter program \r
-# by executing (via popen()) the command <filter> <input-file>, where <filter> \r
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an \r
-# input file. Doxygen will then use the output that the filter program writes \r
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be \r
-# ignored.\r
-\r
-INPUT_FILTER           = \r
-\r
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern \r
-# basis.  Doxygen will compare the file name with each pattern and apply the \r
-# filter if there is a match.  The filters are a list of the form: \r
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further \r
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER \r
-# is applied to all files.\r
-\r
-FILTER_PATTERNS        = \r
-\r
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using \r
-# INPUT_FILTER) will be used to filter the input files when producing source \r
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).\r
-\r
-FILTER_SOURCE_FILES    = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to source browsing\r
-#---------------------------------------------------------------------------\r
-\r
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will \r
-# be generated. Documented entities will be cross-referenced with these sources. \r
-# Note: To get rid of all source code in the generated output, make sure also \r
-# VERBATIM_HEADERS is set to NO.\r
-\r
-SOURCE_BROWSER         = NO\r
-\r
-# Setting the INLINE_SOURCES tag to YES will include the body \r
-# of functions and classes directly in the documentation.\r
-\r
-INLINE_SOURCES         = NO\r
-\r
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct \r
-# doxygen to hide any special comment blocks from generated source code \r
-# fragments. Normal C and C++ comments will always remain visible.\r
-\r
-STRIP_CODE_COMMENTS    = YES\r
-\r
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) \r
-# then for each documented function all documented \r
-# functions referencing it will be listed.\r
-\r
-REFERENCED_BY_RELATION = YES\r
-\r
-# If the REFERENCES_RELATION tag is set to YES (the default) \r
-# then for each documented function all documented entities \r
-# called/used by that function will be listed.\r
-\r
-REFERENCES_RELATION    = YES\r
-\r
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)\r
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from\r
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will\r
-# link to the source code.  Otherwise they will link to the documentstion.\r
-\r
-REFERENCES_LINK_SOURCE = YES\r
-\r
-# If the USE_HTAGS tag is set to YES then the references to source code \r
-# will point to the HTML generated by the htags(1) tool instead of doxygen \r
-# built-in source browser. The htags tool is part of GNU's global source \r
-# tagging system (see http://www.gnu.org/software/global/global.html). You \r
-# will need version 4.8.6 or higher.\r
-\r
-USE_HTAGS              = NO\r
-\r
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen \r
-# will generate a verbatim copy of the header file for each class for \r
-# which an include is specified. Set to NO to disable this.\r
-\r
-VERBATIM_HEADERS       = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the alphabetical class index\r
-#---------------------------------------------------------------------------\r
-\r
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index \r
-# of all compounds will be generated. Enable this if the project \r
-# contains a lot of classes, structs, unions or interfaces.\r
-\r
-ALPHABETICAL_INDEX     = YES\r
-\r
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then \r
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns \r
-# in which this list will be split (can be a number in the range [1..20])\r
-\r
-COLS_IN_ALPHA_INDEX    = 5\r
-\r
-# In case all classes in a project start with a common prefix, all \r
-# classes will be put under the same header in the alphabetical index. \r
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that \r
-# should be ignored while generating the index headers.\r
-\r
-IGNORE_PREFIX          = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the HTML output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will \r
-# generate HTML output.\r
-\r
-GENERATE_HTML          = YES\r
-\r
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `html' will be used as the default path.\r
-\r
-HTML_OUTPUT            = html\r
-\r
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for \r
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank \r
-# doxygen will generate files with .html extension.\r
-\r
-HTML_FILE_EXTENSION    = .html\r
-\r
-# The HTML_HEADER tag can be used to specify a personal HTML header for \r
-# each generated HTML page. If it is left blank doxygen will generate a \r
-# standard header.\r
-\r
-HTML_HEADER            = header.html\r
-\r
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for \r
-# each generated HTML page. If it is left blank doxygen will generate a \r
-# standard footer.\r
-\r
-HTML_FOOTER            = footer.html\r
-\r
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading \r
-# style sheet that is used by each HTML page. It can be used to \r
-# fine-tune the look of the HTML output. If the tag is left blank doxygen \r
-# will generate a default style sheet. Note that doxygen will try to copy \r
-# the style sheet file to the HTML output directory, so don't put your own \r
-# stylesheet in the HTML output directory as well, or it will be erased!\r
-\r
-HTML_STYLESHEET        = stylesheet.css\r
-\r
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, \r
-# files or namespaces will be aligned in HTML using tables. If set to \r
-# NO a bullet list will be used.\r
-\r
-HTML_ALIGN_MEMBERS     = YES\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files \r
-# will be generated that can be used as input for tools like the \r
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) \r
-# of the generated HTML documentation.\r
-\r
-GENERATE_HTMLHELP      = YES\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can \r
-# be used to specify the file name of the resulting .chm file. You \r
-# can add a path in front of the file if the result should not be \r
-# written to the html output directory.\r
-\r
-CHM_FILE               = \r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can \r
-# be used to specify the location (absolute path including file name) of \r
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run \r
-# the HTML help compiler on the generated index.hhp.\r
-\r
-HHC_LOCATION           = \r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag \r
-# controls if a separate .chi index file is generated (YES) or that \r
-# it should be included in the master .chm file (NO).\r
-\r
-GENERATE_CHI           = NO\r
-\r
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag \r
-# controls whether a binary table of contents is generated (YES) or a \r
-# normal table of contents (NO) in the .chm file.\r
-\r
-BINARY_TOC             = NO\r
-\r
-# The TOC_EXPAND flag can be set to YES to add extra items for group members \r
-# to the contents of the HTML help documentation and to the tree view.\r
-\r
-TOC_EXPAND             = YES\r
-\r
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at \r
-# top of each HTML page. The value NO (the default) enables the index and \r
-# the value YES disables it.\r
-\r
-DISABLE_INDEX          = NO\r
-\r
-# This tag can be used to set the number of enum values (range [1..20]) \r
-# that doxygen will group on one line in the generated HTML documentation.\r
-\r
-ENUM_VALUES_PER_LINE   = 4\r
-\r
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\r
-# generated containing a tree-like index structure (just like the one that \r
-# is generated for HTML Help). For this to work a browser that supports \r
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \r
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \r
-# probably better off using the HTML help feature.\r
-\r
-GENERATE_TREEVIEW      = YES\r
-\r
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be \r
-# used to set the initial width (in pixels) of the frame in which the tree \r
-# is shown.\r
-\r
-TREEVIEW_WIDTH         = 250\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the LaTeX output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will \r
-# generate Latex output.\r
-\r
-GENERATE_LATEX         = NO\r
-\r
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `latex' will be used as the default path.\r
-\r
-LATEX_OUTPUT           = latex\r
-\r
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be \r
-# invoked. If left blank `latex' will be used as the default command name.\r
-\r
-LATEX_CMD_NAME         = latex\r
-\r
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to \r
-# generate index for LaTeX. If left blank `makeindex' will be used as the \r
-# default command name.\r
-\r
-MAKEINDEX_CMD_NAME     = makeindex\r
-\r
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact \r
-# LaTeX documents. This may be useful for small projects and may help to \r
-# save some trees in general.\r
-\r
-COMPACT_LATEX          = NO\r
-\r
-# The PAPER_TYPE tag can be used to set the paper type that is used \r
-# by the printer. Possible values are: a4, a4wide, letter, legal and \r
-# executive. If left blank a4wide will be used.\r
-\r
-PAPER_TYPE             = a4wide\r
-\r
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX \r
-# packages that should be included in the LaTeX output.\r
-\r
-EXTRA_PACKAGES         = \r
-\r
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for \r
-# the generated latex document. The header should contain everything until \r
-# the first chapter. If it is left blank doxygen will generate a \r
-# standard header. Notice: only use this tag if you know what you are doing!\r
-\r
-LATEX_HEADER           = \r
-\r
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated \r
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will \r
-# contain links (just like the HTML output) instead of page references \r
-# This makes the output suitable for online browsing using a pdf viewer.\r
-\r
-PDF_HYPERLINKS         = NO\r
-\r
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of \r
-# plain latex in the generated Makefile. Set this option to YES to get a \r
-# higher quality PDF documentation.\r
-\r
-USE_PDFLATEX           = NO\r
-\r
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. \r
-# command to the generated LaTeX files. This will instruct LaTeX to keep \r
-# running if errors occur, instead of asking the user for help. \r
-# This option is also used when generating formulas in HTML.\r
-\r
-LATEX_BATCHMODE        = NO\r
-\r
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not \r
-# include the index chapters (such as File Index, Compound Index, etc.) \r
-# in the output.\r
-\r
-LATEX_HIDE_INDICES     = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the RTF output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output \r
-# The RTF output is optimized for Word 97 and may not look very pretty with \r
-# other RTF readers or editors.\r
-\r
-GENERATE_RTF           = NO\r
-\r
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `rtf' will be used as the default path.\r
-\r
-RTF_OUTPUT             = rtf\r
-\r
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact \r
-# RTF documents. This may be useful for small projects and may help to \r
-# save some trees in general.\r
-\r
-COMPACT_RTF            = NO\r
-\r
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated \r
-# will contain hyperlink fields. The RTF file will \r
-# contain links (just like the HTML output) instead of page references. \r
-# This makes the output suitable for online browsing using WORD or other \r
-# programs which support those fields. \r
-# Note: wordpad (write) and others do not support links.\r
-\r
-RTF_HYPERLINKS         = NO\r
-\r
-# Load stylesheet definitions from file. Syntax is similar to doxygen's \r
-# config file, i.e. a series of assignments. You only have to provide \r
-# replacements, missing definitions are set to their default value.\r
-\r
-RTF_STYLESHEET_FILE    = \r
-\r
-# Set optional variables used in the generation of an rtf document. \r
-# Syntax is similar to doxygen's config file.\r
-\r
-RTF_EXTENSIONS_FILE    = \r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the man page output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will \r
-# generate man pages\r
-\r
-GENERATE_MAN           = NO\r
-\r
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `man' will be used as the default path.\r
-\r
-MAN_OUTPUT             = man\r
-\r
-# The MAN_EXTENSION tag determines the extension that is added to \r
-# the generated man pages (default is the subroutine's section .3)\r
-\r
-MAN_EXTENSION          = .3\r
-\r
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, \r
-# then it will generate one additional man file for each entity \r
-# documented in the real man page(s). These additional files \r
-# only source the real man page, but without them the man command \r
-# would be unable to find the correct page. The default is NO.\r
-\r
-MAN_LINKS              = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the XML output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_XML tag is set to YES Doxygen will \r
-# generate an XML file that captures the structure of \r
-# the code including all documentation.\r
-\r
-GENERATE_XML           = NO\r
-\r
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. \r
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be \r
-# put in front of it. If left blank `xml' will be used as the default path.\r
-\r
-XML_OUTPUT             = xml\r
-\r
-# The XML_SCHEMA tag can be used to specify an XML schema, \r
-# which can be used by a validating XML parser to check the \r
-# syntax of the XML files.\r
-\r
-XML_SCHEMA             = \r
-\r
-# The XML_DTD tag can be used to specify an XML DTD, \r
-# which can be used by a validating XML parser to check the \r
-# syntax of the XML files.\r
-\r
-XML_DTD                = \r
-\r
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will \r
-# dump the program listings (including syntax highlighting \r
-# and cross-referencing information) to the XML output. Note that \r
-# enabling this will significantly increase the size of the XML output.\r
-\r
-XML_PROGRAMLISTING     = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options for the AutoGen Definitions output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will \r
-# generate an AutoGen Definitions (see autogen.sf.net) file \r
-# that captures the structure of the code including all \r
-# documentation. Note that this feature is still experimental \r
-# and incomplete at the moment.\r
-\r
-GENERATE_AUTOGEN_DEF   = NO\r
-\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the Perl module output\r
-#---------------------------------------------------------------------------\r
-\r
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will \r
-# generate a Perl module file that captures the structure of \r
-# the code including all documentation. Note that this \r
-# feature is still experimental and incomplete at the \r
-# moment.\r
-\r
-GENERATE_PERLMOD       = NO\r
-\r
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate \r
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able \r
-# to generate PDF and DVI output from the Perl module output.\r
-\r
-PERLMOD_LATEX          = NO\r
-\r
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be \r
-# nicely formatted so it can be parsed by a human reader.  This is useful \r
-# if you want to understand what is going on.  On the other hand, if this \r
-# tag is set to NO the size of the Perl module output will be much smaller \r
-# and Perl will parse it just the same.\r
-\r
-PERLMOD_PRETTY         = YES\r
-\r
-# The names of the make variables in the generated doxyrules.make file \r
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. \r
-# This is useful so different doxyrules.make files included by the same \r
-# Makefile don't overwrite each other's variables.\r
-\r
-PERLMOD_MAKEVAR_PREFIX = \r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the preprocessor   \r
-#---------------------------------------------------------------------------\r
-\r
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will \r
-# evaluate all C-preprocessor directives found in the sources and include \r
-# files.\r
-\r
-ENABLE_PREPROCESSING   = YES\r
-\r
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro \r
-# names in the source code. If set to NO (the default) only conditional \r
-# compilation will be performed. Macro expansion can be done in a controlled \r
-# way by setting EXPAND_ONLY_PREDEF to YES.\r
-\r
-MACRO_EXPANSION        = NO\r
-\r
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES \r
-# then the macro expansion is limited to the macros specified with the \r
-# PREDEFINED and EXPAND_AS_DEFINED tags.\r
-\r
-EXPAND_ONLY_PREDEF     = NO\r
-\r
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files \r
-# in the INCLUDE_PATH (see below) will be search if a #include is found.\r
-\r
-SEARCH_INCLUDES        = YES\r
-\r
-# The INCLUDE_PATH tag can be used to specify one or more directories that \r
-# contain include files that are not input files but should be processed by \r
-# the preprocessor.\r
-\r
-INCLUDE_PATH           = \r
-\r
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard \r
-# patterns (like *.h and *.hpp) to filter out the header-files in the \r
-# directories. If left blank, the patterns specified with FILE_PATTERNS will \r
-# be used.\r
-\r
-INCLUDE_FILE_PATTERNS  = \r
-\r
-# The PREDEFINED tag can be used to specify one or more macro names that \r
-# are defined before the preprocessor is started (similar to the -D option of \r
-# gcc). The argument of the tag is a list of macros of the form: name \r
-# or name=definition (no spaces). If the definition and the = are \r
-# omitted =1 is assumed. To prevent a macro definition from being \r
-# undefined via #undef or recursively expanded use the := operator \r
-# instead of the = operator.\r
-\r
-PREDEFINED             = _WIN32 \\r
-                         UNICODE \\r
-                         _UNICODE\r
-\r
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then \r
-# this tag can be used to specify a list of macro names that should be expanded. \r
-# The macro definition that is found in the sources will be used. \r
-# Use the PREDEFINED tag if you want to use a different macro definition.\r
-\r
-EXPAND_AS_DEFINED      = \r
-\r
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then \r
-# doxygen's preprocessor will remove all function-like macros that are alone \r
-# on a line, have an all uppercase name, and do not end with a semicolon. Such \r
-# function macros are typically used for boiler-plate code, and will confuse \r
-# the parser if not removed.\r
-\r
-SKIP_FUNCTION_MACROS   = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to external references   \r
-#---------------------------------------------------------------------------\r
-\r
-# The TAGFILES option can be used to specify one or more tagfiles. \r
-# Optionally an initial location of the external documentation \r
-# can be added for each tagfile. The format of a tag file without \r
-# this location is as follows: \r
-#   TAGFILES = file1 file2 ... \r
-# Adding location for the tag files is done as follows: \r
-#   TAGFILES = file1=loc1 "file2 = loc2" ... \r
-# where "loc1" and "loc2" can be relative or absolute paths or \r
-# URLs. If a location is present for each tag, the installdox tool \r
-# does not have to be run to correct the links.\r
-# Note that each tag file must have a unique name\r
-# (where the name does NOT include the path)\r
-# If a tag file is not located in the directory in which doxygen \r
-# is run, you must also specify the path to the tagfile here.\r
-\r
-TAGFILES               = \r
-\r
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create \r
-# a tag file that is based on the input files it reads.\r
-\r
-GENERATE_TAGFILE       = \r
-\r
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed \r
-# in the class index. If set to NO only the inherited external classes \r
-# will be listed.\r
-\r
-ALLEXTERNALS           = NO\r
-\r
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed \r
-# in the modules index. If set to NO, only the current project's groups will \r
-# be listed.\r
-\r
-EXTERNAL_GROUPS        = YES\r
-\r
-# The PERL_PATH should be the absolute path and name of the perl script \r
-# interpreter (i.e. the result of `which perl').\r
-\r
-PERL_PATH              = /usr/bin/perl\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the dot tool   \r
-#---------------------------------------------------------------------------\r
-\r
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will \r
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base \r
-# or super classes. Setting the tag to NO turns the diagrams off. Note that \r
-# this option is superseded by the HAVE_DOT option below. This is only a \r
-# fallback. It is recommended to install and use dot, since it yields more \r
-# powerful graphs.\r
-\r
-CLASS_DIAGRAMS         = YES\r
-\r
-# You can define message sequence charts within doxygen comments using the \msc \r
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to \r
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to \r
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to \r
-# be found in the default search path.\r
-\r
-MSCGEN_PATH            = \r
-\r
-# If set to YES, the inheritance and collaboration graphs will hide \r
-# inheritance and usage relations if the target is undocumented \r
-# or is not a class.\r
-\r
-HIDE_UNDOC_RELATIONS   = YES\r
-\r
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is \r
-# available from the path. This tool is part of Graphviz, a graph visualization \r
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section \r
-# have no effect if this option is set to NO (the default)\r
-\r
-HAVE_DOT               = NO\r
-\r
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for each documented class showing the direct and \r
-# indirect inheritance relations. Setting this tag to YES will force the \r
-# the CLASS_DIAGRAMS tag to NO.\r
-\r
-CLASS_GRAPH            = YES\r
-\r
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for each documented class showing the direct and \r
-# indirect implementation dependencies (inheritance, containment, and \r
-# class references variables) of the class with other documented classes.\r
-\r
-COLLABORATION_GRAPH    = YES\r
-\r
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen \r
-# will generate a graph for groups, showing the direct groups dependencies\r
-\r
-GROUP_GRAPHS           = YES\r
-\r
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and \r
-# collaboration diagrams in a style similar to the OMG's Unified Modeling \r
-# Language.\r
-\r
-UML_LOOK               = NO\r
-\r
-# If set to YES, the inheritance and collaboration graphs will show the \r
-# relations between templates and their instances.\r
-\r
-TEMPLATE_RELATIONS     = YES\r
-\r
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT \r
-# tags are set to YES then doxygen will generate a graph for each documented \r
-# file showing the direct and indirect include dependencies of the file with \r
-# other documented files.\r
-\r
-INCLUDE_GRAPH          = YES\r
-\r
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and \r
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each \r
-# documented header file showing the documented files that directly or \r
-# indirectly include this file.\r
-\r
-INCLUDED_BY_GRAPH      = YES\r
-\r
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will \r
-# generate a call dependency graph for every global function or class method. \r
-# Note that enabling this option will significantly increase the time of a run. \r
-# So in most cases it will be better to enable call graphs for selected \r
-# functions only using the \callgraph command.\r
-\r
-CALL_GRAPH             = NO\r
-\r
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will \r
-# generate a caller dependency graph for every global function or class method. \r
-# Note that enabling this option will significantly increase the time of a run. \r
-# So in most cases it will be better to enable caller graphs for selected \r
-# functions only using the \callergraph command.\r
-\r
-CALLER_GRAPH           = NO\r
-\r
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen \r
-# will graphical hierarchy of all classes instead of a textual one.\r
-\r
-GRAPHICAL_HIERARCHY    = YES\r
-\r
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES \r
-# then doxygen will show the dependencies a directory has on other directories \r
-# in a graphical way. The dependency relations are determined by the #include\r
-# relations between the files in the directories.\r
-\r
-DIRECTORY_GRAPH        = YES\r
-\r
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \r
-# generated by dot. Possible values are png, jpg, or gif\r
-# If left blank png will be used.\r
-\r
-DOT_IMAGE_FORMAT       = png\r
-\r
-# The tag DOT_PATH can be used to specify the path where the dot tool can be \r
-# found. If left blank, it is assumed the dot tool can be found in the path.\r
-\r
-DOT_PATH               = \r
-\r
-# The DOTFILE_DIRS tag can be used to specify one or more directories that \r
-# contain dot files that are included in the documentation (see the \r
-# \dotfile command).\r
-\r
-DOTFILE_DIRS           = \r
-\r
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of \r
-# nodes that will be shown in the graph. If the number of nodes in a graph \r
-# becomes larger than this value, doxygen will truncate the graph, which is \r
-# visualized by representing a node as a red box. Note that doxygen will always \r
-# show the root nodes and its direct children regardless of this setting.\r
-\r
-DOT_GRAPH_MAX_NODES    = 50\r
-\r
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent \r
-# background. This is disabled by default, which results in a white background. \r
-# Warning: Depending on the platform used, enabling this option may lead to \r
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to \r
-# read).\r
-\r
-DOT_TRANSPARENT        = NO\r
-\r
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output \r
-# files in one run (i.e. multiple -o and -T options on the command line). This \r
-# makes dot run faster, but since only newer versions of dot (>1.8.10) \r
-# support this, this feature is disabled by default.\r
-\r
-DOT_MULTI_TARGETS      = NO\r
-\r
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will \r
-# generate a legend page explaining the meaning of the various boxes and \r
-# arrows in the dot generated graphs.\r
-\r
-GENERATE_LEGEND        = YES\r
-\r
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will \r
-# remove the intermediate dot files that are used to generate \r
-# the various graphs.\r
-\r
-DOT_CLEANUP            = YES\r
-\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to the search engine   \r
-#---------------------------------------------------------------------------\r
-\r
-# The SEARCHENGINE tag specifies whether or not a search engine should be \r
-# used. If set to NO the values of all tags below this one will be ignored.\r
-\r
-SEARCHENGINE           = NO\r
+# Doxyfile 1.5.2
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file that 
+# follow. The default is UTF-8 which is also the encoding used for all text before 
+# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into 
+# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of 
+# possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = "Network Identity Manager"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = 
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of 
+# source files, where putting all generated files in the same directory would 
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+# a new page for each member. If set to NO, the documentation of a member will 
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+# sources only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+# sources only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
+# include (a tag file for) the STL sources as input, then you should 
+# set this tag to YES in order to let doxygen match functions declarations and 
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+# func(std::string) {}). This also make the inheritance and collaboration 
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories 
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+# doxygen should invoke to get the current version for each file (typically from the 
+# version control system). Doxygen will invoke the program by executing (via 
+# popen()) the command <command> <input-file>, where <command> is the value of 
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+# provided by doxygen. Whatever the program writes to standard output 
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. Optionally the format may contain 
+# $version, which will be replaced by the version of the file (if it could 
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = 
+
+# This tag can be used to specify the character encoding of the source files that 
+# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
+# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. 
+# See http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS          = 
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. Note that the wildcards are matched 
+# against the file with absolute path, so to exclude all test directories 
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
+# (namespaces, classes, functions, etc.) that should be excluded from the output. 
+# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, 
+# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code 
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
+# built-in source browser. The htags tool is part of GNU's global source 
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = header.html
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = stylesheet.css
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = YES
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. To prevent a macro definition from being 
+# undefined via #undef or recursively expanded use the := operator 
+# instead of the = operator.
+
+PREDEFINED             = _WIN32 \
+                         UNICODE \
+                         _UNICODE
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse 
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+# or super classes. Setting the tag to NO turns the diagrams off. Note that 
+# this option is superseded by the HAVE_DOT option below. This is only a 
+# fallback. It is recommended to install and use dot, since it yields more 
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc 
+# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to 
+# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to 
+# specify the directory where the mscgen tool resides. If left empty the tool is assumed to 
+# be found in the default search path.
+
+MSCGEN_PATH            = 
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a caller dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable caller graphs for selected 
+# functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+# then doxygen will show the dependencies a directory has on other directories 
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
+# nodes that will be shown in the graph. If the number of nodes in a graph 
+# becomes larger than this value, doxygen will truncate the graph, which is 
+# visualized by representing a node as a red box. Note that doxygen will always 
+# show the root nodes and its direct children regardless of this setting.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+# background. This is disabled by default, which results in a white background. 
+# Warning: Depending on the platform used, enabling this option may lead to 
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
+# read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+# files in one run (i.e. multiple -o and -T options on the command line). This 
+# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
index c46b93960195307522c5b7183688b5568a8ebd0b..6383e6a57fbaaf3cf1943295cd6a7b1de03ecceb 100644 (file)
@@ -1,21 +1,21 @@
-<hr size="1">\r
-\r
-<table width="100%" border="0">\r
-  <tr>\r
-    <td>\r
-      <address style="align:right;">\r
-        <small>Generated on $datetime for $projectname $projectnumber by&nbsp;<a href="http://www.doxygen.org/index.html">Doxygen</a> $doxygenversion<br>\r
-       &copy; 2004-2007 Massachusetts Institute of Technology.<br>\r
-        &copy; 2005-2007 Secure Endpoints Inc.<br>\r
-        Contact <a href="mailto:khimaira@mit.edu">khimaira@mit.edu</a><br>\r
-       </small>\r
-      </address>\r
-    </td>\r
-    <td width="100" align="right">\r
-      <img src="khimaira_logo_small.png" border="0">\r
-    </td>\r
-  </tr>\r
-</table>\r
-\r
-</body>\r
-</html>\r
+<hr size="1">
+
+<table width="100%" border="0">
+  <tr>
+    <td>
+      <address style="align:right;">
+        <small>Generated on $datetime for $projectname $projectnumber by&nbsp;<a href="http://www.doxygen.org/index.html">Doxygen</a> $doxygenversion<br>
+       &copy; 2004-2007 Massachusetts Institute of Technology.<br>
+        &copy; 2005-2007 Secure Endpoints Inc.<br>
+        Contact <a href="mailto:khimaira@mit.edu">khimaira@mit.edu</a><br>
+       </small>
+      </address>
+    </td>
+    <td width="100" align="right">
+      <img src="khimaira_logo_small.png" border="0">
+    </td>
+  </tr>
+</table>
+
+</body>
+</html>
index d696ed5bb499ee04c4d700a4382faff8f23b0508..b85d6a1e7f04abbe244f2b0c3ac1ea4675b568ba 100644 (file)
@@ -1,6 +1,6 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">\r
-<title>$title</title>\r
-<link href="$relpath$stylesheet.css" rel="stylesheet" type="text/css">\r
-<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">\r
-</head><body>\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>$title</title>
+<link href="$relpath$stylesheet.css" rel="stylesheet" type="text/css">
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">
+</head><body>
index d5af4e91cc27c0702b4e249802cb792e2f7fa331..f1183ee37a6423f8393ee74bf6b9d0f392d13bb9 100644 (file)
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {\r
-       font-family: Geneva, Arial, Helvetica, sans-serif;\r
-}\r
-BODY,TD {\r
-       font-size: 90%;\r
-}\r
-H1 {\r
-       text-align: center;\r
-        font-size: 160%;\r
-        border-bottom: 1px solid #88b7c8;\r
-        margin-bottom: 1em;\r
-        padding-top: 0.5em;\r
-        padding-bottom: 0.5em;\r
-        background-color: #e8eef2;\r
-}\r
-H2 {\r
-        margin-top: 1em;\r
-        font-size: 120%;\r
-        padding: 0.5em;\r
-        background-color: #f0f0f0;\r
-        border-bottom: 1px solid #888888;\r
-}\r
-H3 {\r
-       font-size: 100%;\r
-}\r
-\r
-H4 {\r
-       font-size: 100%;\r
-}\r
-\r
-CAPTION { font-weight: bold }\r
-DIV.qindex {\r
-       width: 100%;\r
-       background-color: #e8eef2;\r
-       border: 1px solid #84b0c7;\r
-       text-align: center;\r
-       margin: 2px;\r
-       padding: 2px;\r
-       line-height: 140%;\r
-}\r
-DIV.nav {\r
-       width: 100%;\r
-       background-color: #e8eef2;\r
-       border: 1px solid #84b0c7;\r
-       text-align: center;\r
-       margin: 2px;\r
-       padding: 2px;\r
-       line-height: 140%;\r
-}\r
-DIV.navtab {\r
-       background-color: #e8eef2;\r
-       border: 1px solid #84b0c7;\r
-       text-align: center;\r
-       margin: 2px;\r
-       margin-right: 15px;\r
-       padding: 2px;\r
-}\r
-TD.navtab {\r
-       font-size: 70%;\r
-}\r
-A.qindex {\r
-       text-decoration: none;\r
-       font-weight: bold;\r
-       color: #1A419D;\r
-}\r
-A.qindex:visited {\r
-       text-decoration: none;\r
-       font-weight: bold;\r
-       color: #1A419D\r
-}\r
-A.qindex:hover {\r
-       text-decoration: none;\r
-       background-color: #ddddff;\r
-}\r
-A.qindexHL {\r
-       text-decoration: none;\r
-       font-weight: bold;\r
-       background-color: #6666cc;\r
-       color: #ffffff;\r
-       border: 1px double #9295C2;\r
-}\r
-A.qindexHL:hover {\r
-       text-decoration: none;\r
-       background-color: #6666cc;\r
-       color: #ffffff;\r
-}\r
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }\r
-A.el { text-decoration: none; font-weight: bold }\r
-A.elRef { font-weight: bold }\r
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}\r
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}\r
-A.codeRef:link { font-weight: normal; color: #0000FF}\r
-A.codeRef:visited { font-weight: normal; color: #0000FF}\r
-A:hover { text-decoration: none; background-color: #f2f2ff }\r
-DL.el { margin-left: -1cm }\r
-.fragment {\r
-       font-family: monospace, fixed;\r
-       font-size: 95%;\r
-}\r
-PRE.fragment {\r
-       border: 1px solid #CCCCCC;\r
-       background-color: #f5f5f5;\r
-       margin-top: 4px;\r
-       margin-bottom: 4px;\r
-       margin-left: 2px;\r
-       margin-right: 8px;\r
-       padding-left: 6px;\r
-       padding-right: 6px;\r
-       padding-top: 4px;\r
-       padding-bottom: 4px;\r
-}\r
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }\r
-\r
-DIV.groupHeader {\r
-       margin-left: 16px;\r
-       margin-top: 12px;\r
-       margin-bottom: 6px;\r
-       font-weight: bold;\r
-}\r
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }\r
-BODY {\r
-       background: white;\r
-       color: black;\r
-       margin-right: 20px;\r
-       margin-left: 20px;\r
-}\r
-TD.indexkey {\r
-       background-color: #e8eef2;\r
-       font-weight: bold;\r
-       padding-right  : 10px;\r
-       padding-top    : 2px;\r
-       padding-left   : 10px;\r
-       padding-bottom : 2px;\r
-       margin-left    : 0px;\r
-       margin-right   : 0px;\r
-       margin-top     : 2px;\r
-       margin-bottom  : 2px;\r
-       border: 1px solid #CCCCCC;\r
-}\r
-TD.indexvalue {\r
-       background-color: #e8eef2;\r
-       font-style: italic;\r
-       padding-right  : 10px;\r
-       padding-top    : 2px;\r
-       padding-left   : 10px;\r
-       padding-bottom : 2px;\r
-       margin-left    : 0px;\r
-       margin-right   : 0px;\r
-       margin-top     : 2px;\r
-       margin-bottom  : 2px;\r
-       border: 1px solid #CCCCCC;\r
-}\r
-TR.memlist {\r
-   background-color: #f0f0f0; \r
-}\r
-P.formulaDsp { text-align: center; }\r
-IMG.formulaDsp { }\r
-IMG.formulaInl { vertical-align: middle; }\r
-SPAN.keyword       { color: #008000 }\r
-SPAN.keywordtype   { color: #604020 }\r
-SPAN.keywordflow   { color: #e08000 }\r
-SPAN.comment       { color: #800000 }\r
-SPAN.preprocessor  { color: #806020 }\r
-SPAN.stringliteral { color: #002080 }\r
-SPAN.charliteral   { color: #008080 }\r
-.mdescLeft {\r
-       padding: 0px 8px 4px 8px;\r
-       font-size: 80%;\r
-       font-style: italic;\r
-       background-color: #FAFAFA;\r
-       border-top: 1px none #E0E0E0;\r
-       border-right: 1px none #E0E0E0;\r
-       border-bottom: 1px none #E0E0E0;\r
-       border-left: 1px none #E0E0E0;\r
-       margin: 0px;\r
-}\r
-.mdescRight {\r
-       padding: 0px 8px 4px 8px;\r
-       font-size: 80%;\r
-       font-style: italic;\r
-       background-color: #FAFAFA;\r
-       border-top: 1px none #E0E0E0;\r
-       border-right: 1px none #E0E0E0;\r
-       border-bottom: 1px none #E0E0E0;\r
-       border-left: 1px none #E0E0E0;\r
-       margin: 0px;\r
-}\r
-.memItemLeft {\r
-       padding: 1px 0px 0px 8px;\r
-       margin: 4px;\r
-       border-top-width: 1px;\r
-       border-right-width: 1px;\r
-       border-bottom-width: 1px;\r
-       border-left-width: 1px;\r
-       border-top-color: #E0E0E0;\r
-       border-right-color: #E0E0E0;\r
-       border-bottom-color: #E0E0E0;\r
-       border-left-color: #E0E0E0;\r
-       border-top-style: solid;\r
-       border-right-style: none;\r
-       border-bottom-style: none;\r
-       border-left-style: none;\r
-       background-color: #FAFAFA;\r
-       font-size: 80%;\r
-}\r
-.memItemRight {\r
-       padding: 1px 8px 0px 8px;\r
-       margin: 4px;\r
-       border-top-width: 1px;\r
-       border-right-width: 1px;\r
-       border-bottom-width: 1px;\r
-       border-left-width: 1px;\r
-       border-top-color: #E0E0E0;\r
-       border-right-color: #E0E0E0;\r
-       border-bottom-color: #E0E0E0;\r
-       border-left-color: #E0E0E0;\r
-       border-top-style: solid;\r
-       border-right-style: none;\r
-       border-bottom-style: none;\r
-       border-left-style: none;\r
-       background-color: #FAFAFA;\r
-       font-size: 80%;\r
-}\r
-.memTemplItemLeft {\r
-       padding: 1px 0px 0px 8px;\r
-       margin: 4px;\r
-       border-top-width: 1px;\r
-       border-right-width: 1px;\r
-       border-bottom-width: 1px;\r
-       border-left-width: 1px;\r
-       border-top-color: #E0E0E0;\r
-       border-right-color: #E0E0E0;\r
-       border-bottom-color: #E0E0E0;\r
-       border-left-color: #E0E0E0;\r
-       border-top-style: none;\r
-       border-right-style: none;\r
-       border-bottom-style: none;\r
-       border-left-style: none;\r
-       background-color: #FAFAFA;\r
-       font-size: 80%;\r
-}\r
-.memTemplItemRight {\r
-       padding: 1px 8px 0px 8px;\r
-       margin: 4px;\r
-       border-top-width: 1px;\r
-       border-right-width: 1px;\r
-       border-bottom-width: 1px;\r
-       border-left-width: 1px;\r
-       border-top-color: #E0E0E0;\r
-       border-right-color: #E0E0E0;\r
-       border-bottom-color: #E0E0E0;\r
-       border-left-color: #E0E0E0;\r
-       border-top-style: none;\r
-       border-right-style: none;\r
-       border-bottom-style: none;\r
-       border-left-style: none;\r
-       background-color: #FAFAFA;\r
-       font-size: 80%;\r
-}\r
-.memTemplParams {\r
-       padding: 1px 0px 0px 8px;\r
-       margin: 4px;\r
-       border-top-width: 1px;\r
-       border-right-width: 1px;\r
-       border-bottom-width: 1px;\r
-       border-left-width: 1px;\r
-       border-top-color: #E0E0E0;\r
-       border-right-color: #E0E0E0;\r
-       border-bottom-color: #E0E0E0;\r
-       border-left-color: #E0E0E0;\r
-       border-top-style: solid;\r
-       border-right-style: none;\r
-       border-bottom-style: none;\r
-       border-left-style: none;\r
-       color: #606060;\r
-       background-color: #FAFAFA;\r
-       font-size: 80%;\r
-}\r
-.search     { color: #003399;\r
-              font-weight: bold;\r
-}\r
-FORM.search {\r
-              margin-bottom: 0px;\r
-              margin-top: 0px;\r
-}\r
-INPUT.search { font-size: 75%;\r
-               color: #000080;\r
-               font-weight: normal;\r
-               background-color: #e8eef2;\r
-}\r
-TD.tiny      { font-size: 75%;\r
-}\r
-a {\r
-       color: #1A41A8;\r
-}\r
-a:visited {\r
-       color: #2A3798;\r
-}\r
-.dirtab { padding: 4px;\r
-          border-collapse: collapse;\r
-          border: 1px solid #84b0c7;\r
-}\r
-TH.dirtab { background: #e8eef2;\r
-            font-weight: bold;\r
-}\r
-HR { height: 1px;\r
-     border: none;\r
-     border-top: 1px solid black;\r
-     border-color: #88b7c8;\r
-}\r
-\r
-/* Style for detailed member documentation */\r
-.memtemplate {\r
-  font-size: 80%;\r
-  color: #606060;\r
-  font-weight: normal;\r
-} \r
-.memnav { \r
-  background-color: #e8eef2;\r
-  border: 1px solid #84b0c7;\r
-  text-align: center;\r
-  margin: 2px;\r
-  margin-right: 15px;\r
-  padding: 2px;\r
-}\r
-.memitem {\r
-  padding: 4px;\r
-  background-color: #eef3f5;\r
-  border-width: 1px;\r
-  border-style: solid;\r
-  border-color: #dedeee;\r
-  -moz-border-radius: 8px 8px 8px 8px;\r
-}\r
-.memname {\r
-  white-space: nowrap;\r
-  font-weight: bold;\r
-}\r
-.memdoc{\r
-  padding-left: 10px;\r
-}\r
-.memproto {\r
-  background-color: #d5e1e8;\r
-  width: 100%;\r
-  border-width: 1px;\r
-  border-style: solid;\r
-  border-color: #84b0c7;\r
-  font-weight: bold;\r
-  -moz-border-radius: 8px 8px 8px 8px;\r
-}\r
-.paramkey {\r
-  text-align: right;\r
-}\r
-.paramtype {\r
-  white-space: nowrap;\r
-}\r
-.paramname {\r
-  color: #602020;\r
-  font-style: italic;\r
-  white-space: nowrap;\r
-}\r
-/* End Styling for detailed member documentation */\r
-\r
-/* for the tree view */\r
-.ftvtree {\r
-       font-family: sans-serif;\r
-       margin:0.5em;\r
-}\r
-.directory { font-size: 9pt; font-weight: bold; }\r
-.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }\r
-.directory > h3 { margin-top: 0; }\r
-.directory p { margin: 0px; white-space: nowrap; }\r
-.directory div { display: none; margin: 0px; }\r
-.directory img { vertical-align: -30%; }\r
-\r
-DL.note {\r
-  background-color: #eeeeee;\r
-  width: 100%;\r
-  border-width: 1px;\r
-  border-style: solid;\r
-  border-color: #bbbbbb;\r
-  -moz-border-radius: 4px 4px 4px 4px;\r
-}\r
-\r
-DL.note DT {\r
-  font-size: 75%;\r
-}\r
-\r
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+       font-size: 90%;
+}
+H1 {
+       text-align: center;
+        font-size: 160%;
+        border-bottom: 1px solid #88b7c8;
+        margin-bottom: 1em;
+        padding-top: 0.5em;
+        padding-bottom: 0.5em;
+        background-color: #e8eef2;
+}
+H2 {
+        margin-top: 1em;
+        font-size: 120%;
+        padding: 0.5em;
+        background-color: #f0f0f0;
+        border-bottom: 1px solid #888888;
+}
+H3 {
+       font-size: 100%;
+}
+
+H4 {
+       font-size: 100%;
+}
+
+CAPTION { font-weight: bold }
+DIV.qindex {
+       width: 100%;
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       padding: 2px;
+       line-height: 140%;
+}
+DIV.nav {
+       width: 100%;
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       padding: 2px;
+       line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+       text-decoration: none;
+       background-color: #ddddff;
+}
+A.qindexHL {
+       text-decoration: none;
+       font-weight: bold;
+       background-color: #6666cc;
+       color: #ffffff;
+       border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+       text-decoration: none;
+       background-color: #6666cc;
+       color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+       border: 1px solid #CCCCCC;
+       background-color: #f5f5f5;
+       margin-top: 4px;
+       margin-bottom: 4px;
+       margin-left: 2px;
+       margin-right: 8px;
+       padding-left: 6px;
+       padding-right: 6px;
+       padding-top: 4px;
+       padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+       background: white;
+       color: black;
+       margin-right: 20px;
+       margin-left: 20px;
+}
+TD.indexkey {
+       background-color: #e8eef2;
+       font-weight: bold;
+       padding-right  : 10px;
+       padding-top    : 2px;
+       padding-left   : 10px;
+       padding-bottom : 2px;
+       margin-left    : 0px;
+       margin-right   : 0px;
+       margin-top     : 2px;
+       margin-bottom  : 2px;
+       border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+       background-color: #e8eef2;
+       font-style: italic;
+       padding-right  : 10px;
+       padding-top    : 2px;
+       padding-left   : 10px;
+       padding-bottom : 2px;
+       margin-left    : 0px;
+       margin-right   : 0px;
+       margin-top     : 2px;
+       margin-bottom  : 2px;
+       border: 1px solid #CCCCCC;
+}
+TR.memlist {
+   background-color: #f0f0f0; 
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdescLeft {
+       padding: 0px 8px 4px 8px;
+       font-size: 80%;
+       font-style: italic;
+       background-color: #FAFAFA;
+       border-top: 1px none #E0E0E0;
+       border-right: 1px none #E0E0E0;
+       border-bottom: 1px none #E0E0E0;
+       border-left: 1px none #E0E0E0;
+       margin: 0px;
+}
+.mdescRight {
+       padding: 0px 8px 4px 8px;
+       font-size: 80%;
+       font-style: italic;
+       background-color: #FAFAFA;
+       border-top: 1px none #E0E0E0;
+       border-right: 1px none #E0E0E0;
+       border-bottom: 1px none #E0E0E0;
+       border-left: 1px none #E0E0E0;
+       margin: 0px;
+}
+.memItemLeft {
+       padding: 1px 0px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-top-style: solid;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-size: 80%;
+}
+.memItemRight {
+       padding: 1px 8px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-top-style: solid;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-size: 80%;
+}
+.memTemplItemLeft {
+       padding: 1px 0px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-top-style: none;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-size: 80%;
+}
+.memTemplItemRight {
+       padding: 1px 8px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-top-style: none;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-size: 80%;
+}
+.memTemplParams {
+       padding: 1px 0px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-top-style: solid;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       color: #606060;
+       background-color: #FAFAFA;
+       font-size: 80%;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #e8eef2;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+       color: #1A41A8;
+}
+a:visited {
+       color: #2A3798;
+}
+.dirtab { padding: 4px;
+          border-collapse: collapse;
+          border: 1px solid #84b0c7;
+}
+TH.dirtab { background: #e8eef2;
+            font-weight: bold;
+}
+HR { height: 1px;
+     border: none;
+     border-top: 1px solid black;
+     border-color: #88b7c8;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+  font-size: 80%;
+  color: #606060;
+  font-weight: normal;
+} 
+.memnav { 
+  background-color: #e8eef2;
+  border: 1px solid #84b0c7;
+  text-align: center;
+  margin: 2px;
+  margin-right: 15px;
+  padding: 2px;
+}
+.memitem {
+  padding: 4px;
+  background-color: #eef3f5;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dedeee;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memdoc{
+  padding-left: 10px;
+}
+.memproto {
+  background-color: #d5e1e8;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #84b0c7;
+  font-weight: bold;
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+  text-align: right;
+}
+.paramtype {
+  white-space: nowrap;
+}
+.paramname {
+  color: #602020;
+  font-style: italic;
+  white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+       font-family: sans-serif;
+       margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
+
+DL.note {
+  background-color: #eeeeee;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #bbbbbb;
+  -moz-border-radius: 4px 4px 4px 4px;
+}
+
+DL.note DT {
+  font-size: 75%;
+}
+
index 2e24f6f3ecc3a89340983285a82feeb55cd125d2..c0ba08a9ac43aa13cd8f3e5ca348bfbdfa21e6cc 100644 (file)
@@ -1,9 +1,9 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
-<HTML>\r
-<HEAD>\r
-<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
-<!-- Sitemap 1.0 -->\r
-</HEAD><BODY>\r
-<UL>\r
-</UL>\r
-</BODY></HTML>\r
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<UL>
+</UL>
+</BODY></HTML>
index 8cb7f71a68436d649fbaa903e9161247804426b0..3149a24b29bf7ea029864c0fccda433a9e5b42d4 100644 (file)
@@ -1,39 +1,39 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=help\r
-!include <..\config\Makefile.w32>\r
-\r
-CHMFILE=$(BINDIR)\netidmgr.chm\r
-\r
-INCFILES=$(INCDIR)\khhelp.h\r
-\r
-all: mkdirs $(CHMFILE) $(INCFILES)\r
-\r
-$(CHMFILE): netidmgr.hhp\r
-       -$(HHC) netidmgr.hhp\r
-       $(CP) netidmgr.chm $(CHMFILE)\r
-\r
-clean::\r
-       if exist '..\obj' $(RM) $(INCFILES)\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=help
+!include <..\config\Makefile.w32>
+
+CHMFILE=$(BINDIR)\netidmgr.chm
+
+INCFILES=$(INCDIR)\khhelp.h
+
+all: mkdirs $(CHMFILE) $(INCFILES)
+
+$(CHMFILE): netidmgr.hhp
+       -$(HHC) netidmgr.hhp
+       $(CP) netidmgr.chm $(CHMFILE)
+
+clean::
+       if exist '..\obj' $(RM) $(INCFILES)
index d6fec057ba557508ccf69cc4da0e0c4b4e9cfc33..14c0e20201db534421491cfdeaa4cf887da15e61 100644 (file)
@@ -1,68 +1,68 @@
-<html>\r
-<head>\r
-  <title>About Network Identity Manager</title>\r
-  <meta name="description" content="About NetIDMgr">\r
-  <meta name="keywords" content="">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>About Network Identity Manager</h1>\r
-\r
-<p>\r
-This is strictly an informative page about the origins of Network\r
-Identity Manager.\r
-</p>\r
-\r
-<h3>In the beginning</h3>\r
-\r
-<p>\r
-Network Identity Manager was conceived as an identity management\r
-solution to make up for the shortcomings of Leash32 (distributed with\r
-MIT Kerberos for Windows) and AFSCreds (distributed with OpenAFS).\r
-</p>\r
-\r
-<p>\r
-The work started as Unified Credentials Manager, a final project for\r
-the MIT course 6.831 : User Interface Design and Implementation,\r
-taught by <a href="http://people.csail.mit.edu/rcm/">Professor Rob\r
-Miller</a>.  By the time actual code was written, it was named\r
-Khimaira (which was later changed to Network Identity Manager around\r
-October, 2005).  Traces of the name Khimaira might still exist in the\r
-source code.\r
-</p>\r
-\r
-<p>\r
-Khimaira was presented at the <a\r
-href="http://www.pmw.org/afsbpw05/">AFS and Kerberos Best Practices\r
-Workshop 2005</a>.  The slides can be found on the workshop website and <a\r
-href="http://web.mit.edu/asanka/www/misc.shtml">here</a>.\r
-</p>\r
-\r
-<p>\r
-The work on Network Identity Manager was supported by <a\r
-href="http://web.mit.edu">MIT</a> <a\r
-href="http://web.mit.edu/ist/">Information Services and\r
-Technology</a>, <a href="http://www.jpl.nasa.gov">NASA Jet Propulsion Laboratory</a>,\r
-and <a href="http://www.secure-endpoints.com">Secure Endpoints Inc.</a>.\r
-</p>\r
-\r
-<h3>Design</h3>\r
-\r
-<p>\r
-A plugin based architecture was chosen so that support for additional\r
-credential types and features could be added without making changes to\r
-the mainline code.  In addition to making the application easily\r
-extensible, this also allows the AFS plugin to be maintained within\r
-the OpenAFS code base and separates the code supporting Kerberos 5 and\r
-Kerberos 4.  Furthermore, it is anticipated that this would encourage\r
-third party developers to develop plugins for NetIDMgr.\r
-</p>\r
-\r
-<p>\r
-More information about the concepts used in the design of Network\r
-Identity Manager can be found <a href="concepts.htm">here</a>.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>About Network Identity Manager</title>
+  <meta name="description" content="About NetIDMgr">
+  <meta name="keywords" content="">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>About Network Identity Manager</h1>
+
+<p>
+This is strictly an informative page about the origins of Network
+Identity Manager.
+</p>
+
+<h3>In the beginning</h3>
+
+<p>
+Network Identity Manager was conceived as an identity management
+solution to make up for the shortcomings of Leash32 (distributed with
+MIT Kerberos for Windows) and AFSCreds (distributed with OpenAFS).
+</p>
+
+<p>
+The work started as Unified Credentials Manager, a final project for
+the MIT course 6.831 : User Interface Design and Implementation,
+taught by <a href="http://people.csail.mit.edu/rcm/">Professor Rob
+Miller</a>.  By the time actual code was written, it was named
+Khimaira (which was later changed to Network Identity Manager around
+October, 2005).  Traces of the name Khimaira might still exist in the
+source code.
+</p>
+
+<p>
+Khimaira was presented at the <a
+href="http://www.pmw.org/afsbpw05/">AFS and Kerberos Best Practices
+Workshop 2005</a>.  The slides can be found on the workshop website and <a
+href="http://web.mit.edu/asanka/www/misc.shtml">here</a>.
+</p>
+
+<p>
+The work on Network Identity Manager was supported by <a
+href="http://web.mit.edu">MIT</a> <a
+href="http://web.mit.edu/ist/">Information Services and
+Technology</a>, <a href="http://www.jpl.nasa.gov">NASA Jet Propulsion Laboratory</a>,
+and <a href="http://www.secure-endpoints.com">Secure Endpoints Inc.</a>.
+</p>
+
+<h3>Design</h3>
+
+<p>
+A plugin based architecture was chosen so that support for additional
+credential types and features could be added without making changes to
+the mainline code.  In addition to making the application easily
+extensible, this also allows the AFS plugin to be maintained within
+the OpenAFS code base and separates the code supporting Kerberos 5 and
+Kerberos 4.  Furthermore, it is anticipated that this would encourage
+third party developers to develop plugins for NetIDMgr.
+</p>
+
+<p>
+More information about the concepts used in the design of Network
+Identity Manager can be found <a href="concepts.htm">here</a>.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index 33ec3a2b960fa1c7a8d1e9c45bfec518dc8d3f65..a68f733366d8a99e1ab2096ead89913880770dbd 100644 (file)
@@ -1,35 +1,35 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Change Password</title>\r
-  <meta name="description" content="change password">\r
-  <meta name="keywords" content="change password dialog">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  \r
-  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Changing Passwords">\r
-</OBJECT>\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Change Password</h1>\r
-\r
-<p>The change password dialog can be invoked from the <a\r
-href="menu_credential.htm">Credentials</a> menu.  This is used to\r
-change the password for the primary credentials provider (currently\r
-Kerberos v5).\r
-</p>\r
-<p><img border="0" src="images/screen_chng_pwd.png" width="456" height="244"></p>\r
-\r
-<p>For the default identity provider (Kerberos v5), there are two input\r
-boxes to specify the identity for which the password is to be changed.\r
-The identity uniquely maps to the Kerberos principal of the same name.\r
-Then the current password must be entered along with the new password\r
-twice.\r
-</p>\r
-\r
-<p>Note that currently, when the password for an identity is being\r
-changed, only the associated Kerberos v5 password is changed.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Change Password</title>
+  <meta name="description" content="change password">
+  <meta name="keywords" content="change password dialog">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  
+  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Changing Passwords">
+</OBJECT>
+</head>
+<body>
+
+<h1>Network Identity Manager - Change Password</h1>
+
+<p>The change password dialog can be invoked from the <a
+href="menu_credential.htm">Credentials</a> menu.  This is used to
+change the password for the primary credentials provider (currently
+Kerberos v5).
+</p>
+<p><img border="0" src="images/screen_chng_pwd.png" width="456" height="244"></p>
+
+<p>For the default identity provider (Kerberos v5), there are two input
+boxes to specify the identity for which the password is to be changed.
+The identity uniquely maps to the Kerberos principal of the same name.
+Then the current password must be entered along with the new password
+twice.
+</p>
+
+<p>Note that currently, when the password for an identity is being
+changed, only the associated Kerberos v5 password is changed.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index f1643f1625ef3fe1c9154a2d91d8e72d027f184b..196631bc9057c6d519a1ed7ca5a3bf057acadf8d 100644 (file)
@@ -1,36 +1,36 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Destroy Credentials</title>\r
-  <meta name="description" content="Destroy Credentials">\r
-  <meta name="keywords" content="destroy credentials">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Destroying Credentials">\r
-<param name="Keyword" value="Ctrl + D">\r
-<param name="Keyword" value="Delete key">\r
-</OBJECT></head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Destroy Credentials</h1>\r
-\r
-<p>This action will attempt to destroy the credentials that are\r
-currently selected in the credentials window.\r
-</p>\r
-\r
-<p>In some cases, you may need to select all the credentials of a\r
-specific type for the delete operation to succeed.  This happens when\r
-the credentials provider does not support deleting individual\r
-credentials, but supports deleting all the credentials stored in one\r
-specific location.\r
-</p>\r
-\r
-<p>The action can be invoked by selecting the credentials and then\r
-pressing the <span class="pre">Delete</span> key or by pressing <span\r
-class="pre">Ctrl + D</span>.  You can also select the <span\r
-class="pre">Delete credentials</span> action from the context menu\r
-(available via right-clicking inside the credentials window) or the\r
-credentials menu.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Destroy Credentials</title>
+  <meta name="description" content="Destroy Credentials">
+  <meta name="keywords" content="destroy credentials">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Destroying Credentials">
+<param name="Keyword" value="Ctrl + D">
+<param name="Keyword" value="Delete key">
+</OBJECT></head>
+<body>
+
+<h1>Network Identity Manager - Destroy Credentials</h1>
+
+<p>This action will attempt to destroy the credentials that are
+currently selected in the credentials window.
+</p>
+
+<p>In some cases, you may need to select all the credentials of a
+specific type for the delete operation to succeed.  This happens when
+the credentials provider does not support deleting individual
+credentials, but supports deleting all the credentials stored in one
+specific location.
+</p>
+
+<p>The action can be invoked by selecting the credentials and then
+pressing the <span class="pre">Delete</span> key or by pressing <span
+class="pre">Ctrl + D</span>.  You can also select the <span
+class="pre">Delete credentials</span> action from the context menu
+(available via right-clicking inside the credentials window) or the
+credentials menu.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index 59ab2db1dc593b0335bd50b5e18a1b8232d06ef0..c465c060d2d0500214c2955d58e497757e2f2aca 100644 (file)
@@ -1,31 +1,31 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Import Credentials</title>\r
-  <meta name="description" content="Import Credentials">\r
-  <meta name="keywords" content="Import Credentials">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-\r
-<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Importing Credentials">\r
-<param name="Keyword" value="Ctrl + I">\r
-<param name="Keyword" value="MSLSA">\r
-</OBJECT></head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Import Credentials</h1>\r
-\r
-<p>Allows you to import credentials from the Microsoft Windows LSA credentials\r
-cache.  Currently, the only credentials provider that supports\r
-importing is Kerberos v5.\r
-</p>\r
-\r
-<p>This action can be invoked via the <a\r
-href="menu_credential.htm">Credentials</a> menu or by pressing <span\r
-class="pre">Ctrl + I</span>.  In addition, the Kerberos v5\r
-configuration pane accessible via the <a\r
-href="menu_options.htm">Options</a> menu contain settings that\r
-control when the importing of credentials are performed at startup.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Import Credentials</title>
+  <meta name="description" content="Import Credentials">
+  <meta name="keywords" content="Import Credentials">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+
+<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Importing Credentials">
+<param name="Keyword" value="Ctrl + I">
+<param name="Keyword" value="MSLSA">
+</OBJECT></head>
+<body>
+
+<h1>Network Identity Manager - Import Credentials</h1>
+
+<p>Allows you to import credentials from the Microsoft Windows LSA credentials
+cache.  Currently, the only credentials provider that supports
+importing is Kerberos v5.
+</p>
+
+<p>This action can be invoked via the <a
+href="menu_credential.htm">Credentials</a> menu or by pressing <span
+class="pre">Ctrl + I</span>.  In addition, the Kerberos v5
+configuration pane accessible via the <a
+href="menu_options.htm">Options</a> menu contain settings that
+control when the importing of credentials are performed at startup.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index 7f1dbc6de5f10491952f578c6f5eab35e4920ae5..7c15be30a7670ce65a0aec7fe0f014d5eb650fb1 100644 (file)
-<html>\r
-<head>\r
-  <title>Network Identity Manager - New Credentials</title>\r
-  <meta name="description" content="obtain new credentials">\r
-  <meta name="keywords" content="new creds">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  \r
-  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Obtaining New Credentials">\r
-<param name="Keyword" value="Ctrl + N">\r
-<param name="Keyword" value="New Credentials Dialog">\r
-<param name="Keyword" value="Kerberos v5 ticket flags">\r
-<param name="Keyword" value="Changing Passwords">\r
-<param name="Keyword" value="Obtain New Credentials at Startup">\r
-</OBJECT>\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - New Credentials</h1>\r
-\r
-<p>The new credentials dialog can be invoked from the <a\r
-href="menu_credential.htm">Credentials</a> menu, by typing <span\r
-class="pre">Ctrl + N</span>, using the context menu in the credentials\r
-window or using the context menu in the NetIDMgr icon in the system\r
-notification area.\r
-</p>\r
-\r
-<p>Once invoked, you will be presented with a dialog similar to the\r
-following:\r
-</p>\r
-\r
-<p>\r
-<img src="images/screen_new_creds.png" alt="New credentials dialog"/>\r
-<p class="caption">New credentials dialog with a valid identity\r
-selected.</p> \r
-\r
-<p>If the Kerberos v5 identity provider is used, the dialog will ask\r
-for a username and a realm to determine the identity for which new\r
-credentials will be obtained for.  Depending on the selected identity,\r
-you may be required to provide a password or other form of\r
-authentication for new credentials to be obtained.\r
-</p>\r
-\r
-<p>Below the prompts is the credentials summary window.  This window\r
-provides an overview of the credentials that will be obtained when the\r
-dialog is completed.\r
-</p>\r
-\r
-<h3>Expanded view</h3>\r
-\r
-<p>If you click any of the credentials type hyperlinks in the\r
-credentials summary window or select the <span class="pre">&gt;&gt;</span> button, the dialog will switch to the expanded view.\r
-An example of this is shown below:\r
-</p>\r
-\r
-<p>\r
-<img src="images/screen_new_creds_exp.png"\r
-alt="Expanded new credentials window" />\r
-\r
-<p class="caption">Expanded view of the new credentials dialogg</p>\r
-\r
-<p>\r
-The expanded view provides access to additional options available for\r
-each credential provider.  For example, the Kerberos v5 credentials\r
-provider allows you to set the lifetime of the obtained Kerberos\r
-ticket as well as ticket flags such as <i>renewable</i> or\r
-<i>forwardable</i>.\r
-</p>\r
-<p>\r
-<i>Note that the above screenshot is\r
-from an instance of NetIDMgr with Kerberos v5, Kerberos v4, OpenAFS and \r
-Kerberized Certificate Authority providers with a Kerberos v5 identity provider.  Actual display may be\r
-different depending on the providers that are active.</i></p>\r
-\r
-<h3>Credentials summary window</h3>\r
-\r
-<p>The credentials summary window provides an overview of the\r
-credentials that will be obtained after the successful completion of\r
-the new credentials dialog.  The window contains hyperlinks that will\r
-take you to the corresponding credentials option panels where you will\r
-be able to set additional options for each type.\r
-</p>\r
-\r
-<p>If there is a problem with the selected identity, the credentials\r
-window will display a message describing the problem.  For example:\r
-</p>\r
-\r
-<p>\r
-<img src="images/screen_new_creds_err01.png" alt="Credentials summary window showing an invalid identity" />\r
-</p>\r
-\r
-<p>\r
-The above is an example of what you would see if the provided identity\r
-is invalid.  Once the identity provider (in this case, Kerberos v5)\r
-indicates that the identity is invalid, it will be displayed as above\r
-along with a brief description of why the identity was found to be\r
-invalid.  Here, the Kerberos v5 identity provider is reporting that the\r
-specified principal does not exist in the Kerberos database.\r
-</p>\r
-\r
-<h3>Additional notes</h3>\r
-\r
-<p>The new credentials dialog can be invoked from the command line using\r
-the <span class="pre"> -i </span> or <span class="pre"> --kinit\r
-</span> command line option.  Additionally, if you specify the <span\r
-class="pre"> -a </span> or <span class="pre"> --autoinit </span>\r
-command line option, the new credentials dialog will be displayed if\r
-there are no credentials available.\r
-</p>\r
-\r
-<p>\r
-Setting the <span class="pre">Obtain new credentials at startup (if none are present)</span> option in the <span\r
-class="pre">General</span> configuration panel causes NetIDMgr to behave as if \r
-the <span class="pre">--autoinit</span> option is specified at each execution.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - New Credentials</title>
+  <meta name="description" content="obtain new credentials">
+  <meta name="keywords" content="new creds">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  
+  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Obtaining New Credentials">
+<param name="Keyword" value="Ctrl + N">
+<param name="Keyword" value="New Credentials Dialog">
+<param name="Keyword" value="Kerberos v5 ticket flags">
+<param name="Keyword" value="Changing Passwords">
+<param name="Keyword" value="Obtain New Credentials at Startup">
+</OBJECT>
+</head>
+<body>
+
+<h1>Network Identity Manager - New Credentials</h1>
+
+<p>The new credentials dialog can be invoked from the <a
+href="menu_credential.htm">Credentials</a> menu, by typing <span
+class="pre">Ctrl + N</span>, using the context menu in the credentials
+window or using the context menu in the NetIDMgr icon in the system
+notification area.
+</p>
+
+<p>Once invoked, you will be presented with a dialog similar to the
+following:
+</p>
+
+<p>
+<img src="images/screen_new_creds.png" alt="New credentials dialog"/>
+<p class="caption">New credentials dialog with a valid identity
+selected.</p> 
+
+<p>If the Kerberos v5 identity provider is used, the dialog will ask
+for a username and a realm to determine the identity for which new
+credentials will be obtained for.  Depending on the selected identity,
+you may be required to provide a password or other form of
+authentication for new credentials to be obtained.
+</p>
+
+<p>Below the prompts is the credentials summary window.  This window
+provides an overview of the credentials that will be obtained when the
+dialog is completed.
+</p>
+
+<h3>Expanded view</h3>
+
+<p>If you click any of the credentials type hyperlinks in the
+credentials summary window or select the <span class="pre">&gt;&gt;</span> button, the dialog will switch to the expanded view.
+An example of this is shown below:
+</p>
+
+<p>
+<img src="images/screen_new_creds_exp.png"
+alt="Expanded new credentials window" />
+
+<p class="caption">Expanded view of the new credentials dialogg</p>
+
+<p>
+The expanded view provides access to additional options available for
+each credential provider.  For example, the Kerberos v5 credentials
+provider allows you to set the lifetime of the obtained Kerberos
+ticket as well as ticket flags such as <i>renewable</i> or
+<i>forwardable</i>.
+</p>
+<p>
+<i>Note that the above screenshot is
+from an instance of NetIDMgr with Kerberos v5, Kerberos v4, OpenAFS and 
+Kerberized Certificate Authority providers with a Kerberos v5 identity provider.  Actual display may be
+different depending on the providers that are active.</i></p>
+
+<h3>Credentials summary window</h3>
+
+<p>The credentials summary window provides an overview of the
+credentials that will be obtained after the successful completion of
+the new credentials dialog.  The window contains hyperlinks that will
+take you to the corresponding credentials option panels where you will
+be able to set additional options for each type.
+</p>
+
+<p>If there is a problem with the selected identity, the credentials
+window will display a message describing the problem.  For example:
+</p>
+
+<p>
+<img src="images/screen_new_creds_err01.png" alt="Credentials summary window showing an invalid identity" />
+</p>
+
+<p>
+The above is an example of what you would see if the provided identity
+is invalid.  Once the identity provider (in this case, Kerberos v5)
+indicates that the identity is invalid, it will be displayed as above
+along with a brief description of why the identity was found to be
+invalid.  Here, the Kerberos v5 identity provider is reporting that the
+specified principal does not exist in the Kerberos database.
+</p>
+
+<h3>Additional notes</h3>
+
+<p>The new credentials dialog can be invoked from the command line using
+the <span class="pre"> -i </span> or <span class="pre"> --kinit
+</span> command line option.  Additionally, if you specify the <span
+class="pre"> -a </span> or <span class="pre"> --autoinit </span>
+command line option, the new credentials dialog will be displayed if
+there are no credentials available.
+</p>
+
+<p>
+Setting the <span class="pre">Obtain new credentials at startup (if none are present)</span> option in the <span
+class="pre">General</span> configuration panel causes NetIDMgr to behave as if 
+the <span class="pre">--autoinit</span> option is specified at each execution.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index e582b2340b03cf28e828a39bbb3be99c9d524698..a62c92fec423fca2434850ac1a2a0fe653381e90 100644 (file)
@@ -1,40 +1,40 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Renew Credentials</title>\r
-  <meta name="description" content="Renew Credentials">\r
-  <meta name="keywords" content="renew, credentials">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  \r
-  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Renewing Credentials">\r
-<param name="Keyword" value="Ctrl + R">\r
-<param name="Keyword" value="Monitor Credential Expiration">\r
-<param name="Keyword" value="krb524 translator">\r
-<param name="Keyword" value="">\r
-<param name="Keyword" value="">\r
-</OBJECT>\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Renew Credentials</h1>\r
-\r
-<p>The renew credentials action can be invoked via the <a\r
-href="">Credential</a> menu or by pressing <span class="pre">Ctrl +\r
-R</span>.  Additionally, if the <span class="pre">Monitor credential\r
-expiration</span> option is enabled for all identities or for a\r
-specific identity, then those credentials will be automatically\r
-renewed whenever possible before they expire.</p>\r
-\r
-<p>An identity must be selected before invoking the renew credentials\r
-action.</p>\r
-\r
-<p>Not all credentials can be renewed.  The actual logic of renewing\r
-the credentials is up to each credentials provider.  In general, NetIDMgr will invoke each credentials provider to renew their\r
-respective credentials. For Kerberos v5, if the initial ticket is\r
-renewable and not expired, then it will obtain a renewed initial\r
-ticket.  For Kerberos v4, once a renewed Kerberos v5 initial ticket is\r
-obtained, it will try to use a Krb524 translator to obtain a new\r
-Kerberos v4 initial ticket.</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Renew Credentials</title>
+  <meta name="description" content="Renew Credentials">
+  <meta name="keywords" content="renew, credentials">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  
+  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Renewing Credentials">
+<param name="Keyword" value="Ctrl + R">
+<param name="Keyword" value="Monitor Credential Expiration">
+<param name="Keyword" value="krb524 translator">
+<param name="Keyword" value="">
+<param name="Keyword" value="">
+</OBJECT>
+</head>
+<body>
+
+<h1>Network Identity Manager - Renew Credentials</h1>
+
+<p>The renew credentials action can be invoked via the <a
+href="">Credential</a> menu or by pressing <span class="pre">Ctrl +
+R</span>.  Additionally, if the <span class="pre">Monitor credential
+expiration</span> option is enabled for all identities or for a
+specific identity, then those credentials will be automatically
+renewed whenever possible before they expire.</p>
+
+<p>An identity must be selected before invoking the renew credentials
+action.</p>
+
+<p>Not all credentials can be renewed.  The actual logic of renewing
+the credentials is up to each credentials provider.  In general, NetIDMgr will invoke each credentials provider to renew their
+respective credentials. For Kerberos v5, if the initial ticket is
+renewable and not expired, then it will obtain a renewed initial
+ticket.  For Kerberos v4, once a renewed Kerberos v5 initial ticket is
+obtained, it will try to use a Krb524 translator to obtain a new
+Kerberos v4 initial ticket.</p>
+
+</body>
 </html>
\ No newline at end of file
index 6dccd235c30e94f501052ed67a09c4c9c01a4e85..dce442c43912b499eef0d690ed9744d9438647e6 100644 (file)
@@ -1,20 +1,20 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Set As Default Identity</title>\r
-  <meta name="description" content="Set the default identity">\r
-  <meta name="keywords" content="default, identity">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Set As Default Identity</h1>\r
-\r
-<p>\r
-One identity can be designated as the default identity.  The default identity is the \r
-identity used by Kerberos v5 and GSS-API based applications which use the default \r
-Kerberos v5 credential cache and\r
-never request the use of a network identity by name.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Set As Default Identity</title>
+  <meta name="description" content="Set the default identity">
+  <meta name="keywords" content="default, identity">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Set As Default Identity</h1>
+
+<p>
+One identity can be designated as the default identity.  The default identity is the 
+identity used by Kerberos v5 and GSS-API based applications which use the default 
+Kerberos v5 credential cache and
+never request the use of a network identity by name.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index f934dffd2a9187e42ea45378bf67c9bcef69e273..6fbbc140cdd7a8a4252bf4bbea85ae84a1f0d22d 100644 (file)
@@ -1,33 +1,33 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Reporting Bugs</title>\r
-  <meta name="description" content="Reporting bugs and feature requests">\r
-  <meta name="keywords" content="bugs,features">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Reporting Bugs</h1>\r
-\r
-<p>If you encounter a bug in the software, please send a bug report via e-mail to \r
-<a href="mailto:kfw-bugs@MIT.EDU" class="mail">kfw-bugs@MIT.EDU</a>.  \r
-Please include as much information as possible to assist us in reproducing the problem.\r
-</p>\r
-\r
-<p><a href="mailto:kerberos@MIT.EDU" class="mail">kerberos@MIT.EDU</a>\r
-is a mailing list set up for discussing end user Kerberos issues. It is\r
-gatewayed to the Usenet newsgroup 'comp.protocols.kerberos'. If you\r
-prefer to read it via mail, send a subscription request to \r
-<a href="mailto:kerberos-request@MIT.EDU" class="mail">kerberos-request@MIT.EDU</a>\r
-or subscribe via the web page:</p>\r
-\r
-<p> <a href="http://mailman.mit.edu/mailman/listinfo/kerberos"\r
-class="external">\r
-http://mailman.mit.edu/mailman/listinfo/kerberos</a></p>\r
-\r
-<p>Information about Kerberos mailing lists can be found at <a\r
-href="http://web.mit.edu/kerberos/mail-lists.html"\r
-class="external">http://web.mit.edu/kerberos/mail-lists.html</a></p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Reporting Bugs</title>
+  <meta name="description" content="Reporting bugs and feature requests">
+  <meta name="keywords" content="bugs,features">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Reporting Bugs</h1>
+
+<p>If you encounter a bug in the software, please send a bug report via e-mail to 
+<a href="mailto:kfw-bugs@MIT.EDU" class="mail">kfw-bugs@MIT.EDU</a>.  
+Please include as much information as possible to assist us in reproducing the problem.
+</p>
+
+<p><a href="mailto:kerberos@MIT.EDU" class="mail">kerberos@MIT.EDU</a>
+is a mailing list set up for discussing end user Kerberos issues. It is
+gatewayed to the Usenet newsgroup 'comp.protocols.kerberos'. If you
+prefer to read it via mail, send a subscription request to 
+<a href="mailto:kerberos-request@MIT.EDU" class="mail">kerberos-request@MIT.EDU</a>
+or subscribe via the web page:</p>
+
+<p> <a href="http://mailman.mit.edu/mailman/listinfo/kerberos"
+class="external">
+http://mailman.mit.edu/mailman/listinfo/kerberos</a></p>
+
+<p>Information about Kerberos mailing lists can be found at <a
+href="http://web.mit.edu/kerberos/mail-lists.html"
+class="external">http://web.mit.edu/kerberos/mail-lists.html</a></p>
+
+</body>
 </html>
\ No newline at end of file
index f77c475981530ee81b7a1d03e5ec730f9376985f..8767460bc44ec9e7b0d0d89dea3d8f088315bc46 100644 (file)
@@ -1,38 +1,38 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Command Line Options</title>\r
-  <meta name="description" content="">\r
-  <meta name="keywords" content="">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Command Line Options</h1>\r
-<p>Command line options for Network Identity Manager are:</p>\r
-<table border="1" width="57%" id="table1">\r
-       <tr>\r
-               <td width="140"><font size="1">-a or --autoinit</font></td>\r
-               <td><font size="1">Automatic Initialization of Credentials</font></td>\r
-       </tr>\r
-       <tr>\r
-               <td width="140"><font size="1">-i or --kinit</font></td>\r
-               <td><font size="1">Obtain New Credentials and then exit</font></td>\r
-       </tr>\r
-       <tr>\r
-               <td width="140"><font size="1">-d or --destroy</font></td>\r
-               <td><font size="1">Destroy Credentials belonging to the default identity \r
-               and then exit</font></td>\r
-       </tr>\r
-       <tr>\r
-               <td width="140"><font size="1">-r or --renew</font></td>\r
-               <td><font size="1">Renew all Credentials and then exit</font></td>\r
-       </tr>\r
-       <tr>\r
-               <td width="140"><font size="1">-x or --exit</font></td>\r
-               <td><font size="1">Signal the running instance of Network Identity \r
-               Manager to exit</font></td>\r
-       </tr>\r
-</table>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Command Line Options</title>
+  <meta name="description" content="">
+  <meta name="keywords" content="">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Command Line Options</h1>
+<p>Command line options for Network Identity Manager are:</p>
+<table border="1" width="57%" id="table1">
+       <tr>
+               <td width="140"><font size="1">-a or --autoinit</font></td>
+               <td><font size="1">Automatic Initialization of Credentials</font></td>
+       </tr>
+       <tr>
+               <td width="140"><font size="1">-i or --kinit</font></td>
+               <td><font size="1">Obtain New Credentials and then exit</font></td>
+       </tr>
+       <tr>
+               <td width="140"><font size="1">-d or --destroy</font></td>
+               <td><font size="1">Destroy Credentials belonging to the default identity 
+               and then exit</font></td>
+       </tr>
+       <tr>
+               <td width="140"><font size="1">-r or --renew</font></td>
+               <td><font size="1">Renew all Credentials and then exit</font></td>
+       </tr>
+       <tr>
+               <td width="140"><font size="1">-x or --exit</font></td>
+               <td><font size="1">Signal the running instance of Network Identity 
+               Manager to exit</font></td>
+       </tr>
+</table>
+
+</body>
 </html>
\ No newline at end of file
index db936aa003f4f1355a8fa2284c698bd159be9c7d..ab8f7c40ea8dd46d098505a607d9b0d510d299c8 100644 (file)
@@ -1,38 +1,38 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Concepts: Credentials Provider</title>\r
-  <meta name="description" content="NetIDMgr Concepts: Credentials Provider">\r
-  <meta name="keywords" content="credentials provider, concepts">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Concepts: Credentials Provider</h1>\r
-\r
-<p>\r
-Network Identity Manager relies on plug-ins to provide the majority \r
-of its functionality.  A <b>credentials provider</b> is a plug-in \r
-that manages one or more types of credentials.  The responsibilities\r
-of a credential provider are:\r
-</p>\r
-<ul>\r
-       <li>to maintain the list of credentials and their properties for the supported type</li>\r
-       <li>to monitor credential expiration</li>\r
-       <li>to provide the logic necessary to obtain additional credentials once the\r
-       <a href="concept_ident_pro.htm">identity provider</a> has obtained the \r
-       initial credential</li>\r
-       <li>to provide the user interface panels necessary to permit the user to \r
-       configure the credential provider</li>\r
-</ul>\r
-\r
-\r
-<p>MIT Kerberos for Windows ships with two Network Identity Manager credential \r
-providers supporting Kerberos v5 and Kerberos v4.&nbsp; Credential providers for \r
-the Andrew File System and the Kerberized Certificate Authority are available \r
-separately.</p>\r
-<p>\r
-<img border="0" src="images/screen_config_cred_provider.png" width="542" height="393"></p>\r
-\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Concepts: Credentials Provider</title>
+  <meta name="description" content="NetIDMgr Concepts: Credentials Provider">
+  <meta name="keywords" content="credentials provider, concepts">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Concepts: Credentials Provider</h1>
+
+<p>
+Network Identity Manager relies on plug-ins to provide the majority 
+of its functionality.  A <b>credentials provider</b> is a plug-in 
+that manages one or more types of credentials.  The responsibilities
+of a credential provider are:
+</p>
+<ul>
+       <li>to maintain the list of credentials and their properties for the supported type</li>
+       <li>to monitor credential expiration</li>
+       <li>to provide the logic necessary to obtain additional credentials once the
+       <a href="concept_ident_pro.htm">identity provider</a> has obtained the 
+       initial credential</li>
+       <li>to provide the user interface panels necessary to permit the user to 
+       configure the credential provider</li>
+</ul>
+
+
+<p>MIT Kerberos for Windows ships with two Network Identity Manager credential 
+providers supporting Kerberos v5 and Kerberos v4.&nbsp; Credential providers for 
+the Andrew File System and the Kerberized Certificate Authority are available 
+separately.</p>
+<p>
+<img border="0" src="images/screen_config_cred_provider.png" width="542" height="393"></p>
+
+
+</body>
 </html>
\ No newline at end of file
index eca302ef37183a295b65f9a3b1f8f6881a63a57b..0fadbf59995a665b8901274727efda793a6c0afa 100644 (file)
@@ -1,31 +1,31 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Concepts: Credential</title>\r
-  <meta name="description" content="NetIDMgr Concepts: Credential">\r
-  <meta name="keywords" content="credential, concepts">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Concepts: Credential</h1>\r
-\r
-<p>\r
-In Network Identity Manager, a <b>credential</b> is any digital object that can \r
-be used by a network authentication protocol to assert a specific\r
-<a href="concept_identity.htm">identity</a>.</p>\r
-<p>\r
-As of this writing, Network Identity Manager supports four different types of \r
-credentials:</p>\r
-<ul>\r
-       <li>Kerberos v5 tickets</li>\r
-       <li>Kerberos v4 tickets</li>\r
-       <li>AFS tokens</li>\r
-       <li>X.509 certificates issued by a Kerberized Certificate Authority</li>\r
-</ul>\r
-<p>Of these, only Kerberos v5 initial ticket granting tickets can be used as an \r
-identity provider credential.</p>\r
-<p>&nbsp;</p>\r
-\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Concepts: Credential</title>
+  <meta name="description" content="NetIDMgr Concepts: Credential">
+  <meta name="keywords" content="credential, concepts">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Concepts: Credential</h1>
+
+<p>
+In Network Identity Manager, a <b>credential</b> is any digital object that can 
+be used by a network authentication protocol to assert a specific
+<a href="concept_identity.htm">identity</a>.</p>
+<p>
+As of this writing, Network Identity Manager supports four different types of 
+credentials:</p>
+<ul>
+       <li>Kerberos v5 tickets</li>
+       <li>Kerberos v4 tickets</li>
+       <li>AFS tokens</li>
+       <li>X.509 certificates issued by a Kerberized Certificate Authority</li>
+</ul>
+<p>Of these, only Kerberos v5 initial ticket granting tickets can be used as an 
+identity provider credential.</p>
+<p>&nbsp;</p>
+
+
+</body>
 </html>
\ No newline at end of file
index d17c23b94d10244456588ac20be9a1f136464c3f..4fca8674efc062f291614b1c8c2e2eda99b0fb80 100644 (file)
@@ -1,32 +1,32 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Concepts: Identity Provider</title>\r
-  <meta name="description" content="NetIDMgr Concepts: Identity Provider">\r
-  <meta name="keywords" content="identity provider, concepts">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Concepts: Identity Provider</h1>\r
-\r
-<p>\r
-Network Identity Manager relies on plug-ins to provide the majority \r
-of its functionality.  One of the requirements is that there be at \r
-least one plug-in that is registered as an <strong>identity provider</strong>.  The identity \r
-provider:</p>\r
-\r
-<ul>\r
-       <li>defines the identity</li>\r
-       <li>provides the engine that drives the <i>Obtain New Credentials</i> dialog</li>\r
-       <li>performs the initial authentication which results in a network credential that \r
-           can be used in conjunction with subsequent credential providers</li>\r
-</ul>\r
-\r
-<p>Naturally, the identity provider plug-in that is distributed with MIT Kerberos for Windows\r
-is Kerberos v5 based and obtains Kerberos v5 ticket granting tickets as the network credential \r
-that represents the identity.</p>\r
-<img src="images/screen_config_ident_provider.png">\r
-<p></p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Concepts: Identity Provider</title>
+  <meta name="description" content="NetIDMgr Concepts: Identity Provider">
+  <meta name="keywords" content="identity provider, concepts">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Concepts: Identity Provider</h1>
+
+<p>
+Network Identity Manager relies on plug-ins to provide the majority 
+of its functionality.  One of the requirements is that there be at 
+least one plug-in that is registered as an <strong>identity provider</strong>.  The identity 
+provider:</p>
+
+<ul>
+       <li>defines the identity</li>
+       <li>provides the engine that drives the <i>Obtain New Credentials</i> dialog</li>
+       <li>performs the initial authentication which results in a network credential that 
+           can be used in conjunction with subsequent credential providers</li>
+</ul>
+
+<p>Naturally, the identity provider plug-in that is distributed with MIT Kerberos for Windows
+is Kerberos v5 based and obtains Kerberos v5 ticket granting tickets as the network credential 
+that represents the identity.</p>
+<img src="images/screen_config_ident_provider.png">
+<p></p>
+
+</body>
 </html>
\ No newline at end of file
index 434067916afa40cb1102143b4ccb487e957bbe68..c573ed9d51a7a0474ee7f15ca321a3eac0cc1065 100644 (file)
@@ -1,33 +1,33 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Concepts: Identity</title>\r
-  <meta name="description" content="NetIDMgr Concepts: Identity">\r
-  <meta name="keywords" content="identity,concepts">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Concepts: Identity</h1>\r
-\r
-<p>While there are many approaches to defining what an identity is, as\r
-far as the Network Identity Manager (NetIDMgr) is considered, an identity is the unique\r
-user identifier that is accepted by a network service.  Each credential\r
-that is managed by NetIDMgr is assumed to map to a single identity.\r
-The collection of credentials that map to a single identity is\r
-considered to belong to that identity.\r
-</p>\r
-\r
-<p>\r
-</p>\r
-\r
-<a name="default_identity" />\r
-<h3>Default Identity</h3>\r
-\r
-<p>The default identity is the identity that will be used by\r
-applications when a specific identity has not been requested.  \r
-The Kerberos v5 plug-in will mark the credential cache that \r
-contains the default identity as the default credentials\r
-cache for the current logon session.\r
-</p>\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Concepts: Identity</title>
+  <meta name="description" content="NetIDMgr Concepts: Identity">
+  <meta name="keywords" content="identity,concepts">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Concepts: Identity</h1>
+
+<p>While there are many approaches to defining what an identity is, as
+far as the Network Identity Manager (NetIDMgr) is considered, an identity is the unique
+user identifier that is accepted by a network service.  Each credential
+that is managed by NetIDMgr is assumed to map to a single identity.
+The collection of credentials that map to a single identity is
+considered to belong to that identity.
+</p>
+
+<p>
+</p>
+
+<a name="default_identity" />
+<h3>Default Identity</h3>
+
+<p>The default identity is the identity that will be used by
+applications when a specific identity has not been requested.  
+The Kerberos v5 plug-in will mark the credential cache that 
+contains the default identity as the default credentials
+cache for the current logon session.
+</p>
+</body>
 </html>
\ No newline at end of file
index 2ce38e97fdff8eb622ff5ebb1732245f8d06097a..194aeddfa075647f043d31dd2d3de474b5a2b0aa 100644 (file)
@@ -1,48 +1,48 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Concepts</title>\r
-  <meta name="description" content="NetIDMgr Concepts">\r
-  <meta name="keywords" content="concepts">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Concepts</h1>\r
-\r
-<p>The Network Identity Manager (NetIDMgr) organizes and manages credentials \r
-based on how they identify the user to network services. To this end, it is assumed that each \r
-<a href="concept_credential.htm">credential </a>will uniquely identify the user to a service as a single\r
-<a href="concept_identity.htm">identity</a>.  When using Kerberos v5 the \r
-identity is the Kerberos principal name.\r
-</p>\r
-\r
-<p>At it's core, NetIDMgr does not possess any knowledge about specific \r
-credentials that might be available to the user or how to manage\r
-them.  It relies on several types of plug-ins to provide the\r
-information it needs, and to carry out credentials management tasks.\r
-One primary task is to identify and manage identities.  These services\r
-are provided by a plug-in called the <a\r
-href="concept_ident_pro.htm">identity provider</a>.  Information about\r
-individual credentials are provided by <a\r
-href="concept_cred_pro.htm">credential providers</a>.  Other plug-ins\r
-may extend the functionality of these plug-ins or provide additional\r
-functionality for NetIDMgr.\r
-</p>\r
-\r
-<p>\r
-</p>\r
-\r
-<p>The following topics provider further details: </p>\r
-\r
-<ul>\r
-  <li><a href="concept_identity.htm">Identity</a></li>\r
-\r
-  <li><a href="concept_ident_pro.htm">Identity Provider</a></li>\r
-\r
-  <li><a href="concept_cred_pro.htm">Credentials Provider</a></li>\r
-  \r
-  <li><a href="concept_credential.htm">Credential</a></li>\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Concepts</title>
+  <meta name="description" content="NetIDMgr Concepts">
+  <meta name="keywords" content="concepts">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Concepts</h1>
+
+<p>The Network Identity Manager (NetIDMgr) organizes and manages credentials 
+based on how they identify the user to network services. To this end, it is assumed that each 
+<a href="concept_credential.htm">credential </a>will uniquely identify the user to a service as a single
+<a href="concept_identity.htm">identity</a>.  When using Kerberos v5 the 
+identity is the Kerberos principal name.
+</p>
+
+<p>At it's core, NetIDMgr does not possess any knowledge about specific 
+credentials that might be available to the user or how to manage
+them.  It relies on several types of plug-ins to provide the
+information it needs, and to carry out credentials management tasks.
+One primary task is to identify and manage identities.  These services
+are provided by a plug-in called the <a
+href="concept_ident_pro.htm">identity provider</a>.  Information about
+individual credentials are provided by <a
+href="concept_cred_pro.htm">credential providers</a>.  Other plug-ins
+may extend the functionality of these plug-ins or provide additional
+functionality for NetIDMgr.
+</p>
+
+<p>
+</p>
+
+<p>The following topics provider further details: </p>
+
+<ul>
+  <li><a href="concept_identity.htm">Identity</a></li>
+
+  <li><a href="concept_ident_pro.htm">Identity Provider</a></li>
+
+  <li><a href="concept_cred_pro.htm">Credentials Provider</a></li>
+  
+  <li><a href="concept_credential.htm">Credential</a></li>
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index b62753d7ac87d7976c7fbd18b240ff6da57ece54..d31417df45498914937c3fb3c4a77359e5d11282 100644 (file)
@@ -1,48 +1,48 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - License</title>\r
-  <meta name="description" content="License agreement">\r
-  <meta name="keywords" content="license">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - License</h1>\r
-\r
-<p>This software is being provided to you, the LICENSEE, by the\r
-Massachusetts Institute of Technology (M.I.T) under the following\r
-license. By obtaining, using and/or copying this software, you agree\r
-that you have read, understood, and will comply with these terms and\r
-conditions:</p>\r
-\r
-<p>Permission to use, copy, modify and distribute this software and its\r
-documentation for any purpose and without fee or royalty is hereby\r
-granted, provided that you agree to comply with the following\r
-copyright notice and statements, including the disclaimer, and that\r
-the same appear on ALL copies of the software and documentation,\r
-including modifications that you make for internal use or for\r
-distribution:</p>\r
-\r
-<p>Copyright 1992-2007 by the Massachusetts Institute of Technology. All\r
-rights reserved.</p>\r
-\r
-<p>THIS SOFTWARE IS PROVIDED "AS IS", AND M.I.T. MAKES NO REPRESENTATIONS\r
-OR WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not\r
-limitation, M.I.T. MAKES NO REPRESENTATIONS OR WARRANTIES OF\r
-MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE\r
-OF THE LICENSED SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD\r
-PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>\r
-\r
-<p>The name of the Massachusetts Institute of Technology or M.I.T. may\r
-NOT be used in advertising or publicity pertaining to distribution of\r
-the software. Title to copyright in this software and any associated\r
-documentation shall at all times remain with M.I.T., and USER agrees\r
-to preserve same.</p>\r
-\r
-<p>Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,\r
-OLC, X Window System, and Zephyr are trademarks of the Massachusetts\r
-Institute of Technology (MIT). No commercial use of these trademarks\r
-may be made without prior written permission of MIT.</p>\r
-\r
-</body>\r
-</html>\r
+<html>
+<head>
+  <title>Network Identity Manager - License</title>
+  <meta name="description" content="License agreement">
+  <meta name="keywords" content="license">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - License</h1>
+
+<p>This software is being provided to you, the LICENSEE, by the
+Massachusetts Institute of Technology (M.I.T) under the following
+license. By obtaining, using and/or copying this software, you agree
+that you have read, understood, and will comply with these terms and
+conditions:</p>
+
+<p>Permission to use, copy, modify and distribute this software and its
+documentation for any purpose and without fee or royalty is hereby
+granted, provided that you agree to comply with the following
+copyright notice and statements, including the disclaimer, and that
+the same appear on ALL copies of the software and documentation,
+including modifications that you make for internal use or for
+distribution:</p>
+
+<p>Copyright 1992-2007 by the Massachusetts Institute of Technology. All
+rights reserved.</p>
+
+<p>THIS SOFTWARE IS PROVIDED "AS IS", AND M.I.T. MAKES NO REPRESENTATIONS
+OR WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not
+limitation, M.I.T. MAKES NO REPRESENTATIONS OR WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE
+OF THE LICENSED SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
+
+<p>The name of the Massachusetts Institute of Technology or M.I.T. may
+NOT be used in advertising or publicity pertaining to distribution of
+the software. Title to copyright in this software and any associated
+documentation shall at all times remain with M.I.T., and USER agrees
+to preserve same.</p>
+
+<p>Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
+OLC, X Window System, and Zephyr are trademarks of the Massachusetts
+Institute of Technology (MIT). No commercial use of these trademarks
+may be made without prior written permission of MIT.</p>
+
+</body>
+</html>
index 9826ac20a527855a402d58ac5c3f4b751545bdca..3b2c2a336c287610735627381f5374a7c4e6501b 100644 (file)
@@ -1,44 +1,44 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - How do I ...</title>\r
-  <meta name="description" content="How do I ...">\r
-  <meta name="keywords" content="howto, how do I">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - How do I ...</h1>\r
-\r
-<h3>Startup</h3>\r
-<ul>\r
-\r
-  <li><a href="use_start.htm">Start or Open the Network Identity Manager\r
-  window</a></li>\r
-\r
-</ul>\r
-\r
-<h3>Credentials related actions</h3>\r
-<ul>\r
-\r
-  <li><a href="act_new_creds.htm">Get new credentials</a></li>\r
-\r
-  <li><a href="act_destroy_creds.htm">Destroy credentials</a></li>\r
-\r
-  <li><a href="act_import_creds.htm">Import credentials from the MSLSA\r
-  cache</a></li>\r
-\r
-  <li><a href="act_renew_creds.htm">Renew credentials</a></li>\r
-\r
-  <li><a href="act_chpw.htm">Change password</a></li>\r
-\r
-</ul>\r
-\r
-<h3>Credentials view</h3>\r
-<ul>\r
-\r
-  <li><a href="use_layout.htm">Managing the credentials view layout</a></li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - How do I ...</title>
+  <meta name="description" content="How do I ...">
+  <meta name="keywords" content="howto, how do I">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - How do I ...</h1>
+
+<h3>Startup</h3>
+<ul>
+
+  <li><a href="use_start.htm">Start or Open the Network Identity Manager
+  window</a></li>
+
+</ul>
+
+<h3>Credentials related actions</h3>
+<ul>
+
+  <li><a href="act_new_creds.htm">Get new credentials</a></li>
+
+  <li><a href="act_destroy_creds.htm">Destroy credentials</a></li>
+
+  <li><a href="act_import_creds.htm">Import credentials from the MSLSA
+  cache</a></li>
+
+  <li><a href="act_renew_creds.htm">Renew credentials</a></li>
+
+  <li><a href="act_chpw.htm">Change password</a></li>
+
+</ul>
+
+<h3>Credentials view</h3>
+<ul>
+
+  <li><a href="use_layout.htm">Managing the credentials view layout</a></li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index 6cd811393bd20543238e02d91b17d92f8ed7d0a7..c5efbb21635ad762c4b7854067ccaccf9d8e127c 100644 (file)
@@ -1,41 +1,41 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - The Menu Bar</title>\r
-  <meta name="description" content="The Menu Bar">\r
-  <meta name="keywords" content="menu bar">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-<h1>Network Identity Manager - The Menu Bar</h1>\r
-\r
-<p>\r
-Click an item on the menu to go to the description of the submenu, or\r
-choose from the list below.  You can activate the menu bar using <span\r
-class="pre">F10</span>.  Alternatively, you can activate each\r
-individual submenu by pressing <span class="pre">Alt +\r
-&lt;key&gt;</span> where <span class="pre">key</span> is the\r
-highlighted character on the submenu.\r
-</p>\r
-\r
-<map id="menu_bar_map">\r
-<area shape = "rect" coords = "0,1,34,20" href = "menu_file.htm">\r
-<area shape = "rect" coords = "37,2,110,20" href = "menu_credential.htm">\r
-<area shape = "rect" coords = "117,1,156,20" href = "menu_view.htm">\r
-<area shape = "rect" coords = "161,1,221,20" href = "menu_options.htm">\r
-<area shape = "rect" coords = "226,0,269,20" href = "menu_help.htm">\r
-</map>\r
-\r
-<p>\r
-<img src="images/screen_menu_bar.png" usemap="#menu_bar_map"/>\r
-</p>\r
-\r
-<ul>\r
-  <li><a href="menu_file.htm">File menu</li>\r
-  <li><a href="menu_credential.htm">Credential menu</li>\r
-  <li><a href="menu_view.htm">View menu</li>\r
-  <li><a href="menu_options.htm">Options menu</li>\r
-  <li><a href="menu_help.htm">Help menu</li>\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - The Menu Bar</title>
+  <meta name="description" content="The Menu Bar">
+  <meta name="keywords" content="menu bar">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+<h1>Network Identity Manager - The Menu Bar</h1>
+
+<p>
+Click an item on the menu to go to the description of the submenu, or
+choose from the list below.  You can activate the menu bar using <span
+class="pre">F10</span>.  Alternatively, you can activate each
+individual submenu by pressing <span class="pre">Alt +
+&lt;key&gt;</span> where <span class="pre">key</span> is the
+highlighted character on the submenu.
+</p>
+
+<map id="menu_bar_map">
+<area shape = "rect" coords = "0,1,34,20" href = "menu_file.htm">
+<area shape = "rect" coords = "37,2,110,20" href = "menu_credential.htm">
+<area shape = "rect" coords = "117,1,156,20" href = "menu_view.htm">
+<area shape = "rect" coords = "161,1,221,20" href = "menu_options.htm">
+<area shape = "rect" coords = "226,0,269,20" href = "menu_help.htm">
+</map>
+
+<p>
+<img src="images/screen_menu_bar.png" usemap="#menu_bar_map"/>
+</p>
+
+<ul>
+  <li><a href="menu_file.htm">File menu</li>
+  <li><a href="menu_credential.htm">Credential menu</li>
+  <li><a href="menu_view.htm">View menu</li>
+  <li><a href="menu_options.htm">Options menu</li>
+  <li><a href="menu_help.htm">Help menu</li>
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index f34312827c96d0866f236523d72c0b0b7d355b33..9a83af03906941e40c0d64c58df4f06a04e3062e 100644 (file)
@@ -1,81 +1,81 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Credential Menu</title>\r
-  <meta name="description" content="credential menu">\r
-  <meta name="keywords" content="credential menu">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Credential Menu</h1>\r
-\r
-<p>\r
-Click an item on the menu to go to the description of the action, or\r
-choose from the list below.  You can activate the by pressing <span\r
-class="pre">Alt + C</span> and you can activate each action by\r
-pressing the highlighted character.\r
-</p>\r
-\r
-<p>\r
-Actions which have an associated hot key show this hot key to the\r
-right of the action.  You can use the hot key to trigger the action\r
-without invoking the <span class="pre">Credential</span> menu.\r
-</p>\r
-\r
-<p>\r
-<map name="FPMap0">\r
-<area href="#new" shape="rect" coords="29, 18, 220, 44">\r
-<area href="#renew" shape="rect" coords="29, 42, 219, 67">\r
-<area href="#renew" shape="rect" coords="213, 44, 464, 113">\r
-<area href="#destroy" shape="rect" coords="29, 65, 220, 83">\r
-<area href="#import" shape="rect" coords="29, 81, 217, 104">\r
-<area href="#chpw" shape="rect" coords="28, 131, 218, 156">\r
-<area href="#def" shape="rect" coords="28, 102, 216, 133">\r
-</map>\r
-<img src="images/screen_menu_credential.png" usemap="#FPMap0"/>\r
-</p>\r
-\r
-<ul>\r
-  <li><a name="new"></a> <span class="title">New Credentials ...</span>:\r
-  Opens the new credentials acquisition dialog box.  If an identity\r
-  was selected, then that identity would be made the default for the\r
-  new credentials acquisition.  However, it can easily be changed in\r
-  the dialog.\r
-  <p>\r
-  See <span class="pre"><a href="act_new_creds.htm">New Credentials\r
-  Action</a></span> for more information.\r
-  </p></li>\r
-\r
-  <li><a name="renew"></a> <span class="title">Renew credentials</span>:\r
-  Renews the selected credentials or identity.  This action requires\r
-  that the selected credentials be renewable.\r
-  <p>\r
-  See <span class="pre"><a href="act_renew_creds.htm">Renew\r
-  Credentials Action</a></span> for more information.</p></li>\r
-  \r
-  <li><a name="destroy"></a> <span class="title">Destroy\r
-  credentials...</span>: Destroys the selected credentials.</li>\r
-\r
-  <li><a name="def"></a> <span class="title">Set as default</span>: Sets\r
-  the selected identity as the default, if it is not already the\r
-  default.  The implications of this operation is dependent on the\r
-  current <a href="concept_ident_pro.htm">identity provider</a>.\r
-  <p>\r
-  See <span class="pre"><a href="act_set_default.htm">Set As Default\r
-  Action</a></span> for more information.</p></li>\r
-\r
-  <li><a name="chpw"></a> <span class="title">Change password...</span>:\r
-  Changes the password for the selected identity.  However, once the\r
-  new password dialog opens, you can change the identity for which the\r
-  password is getting changed.</li>\r
-\r
-  <li><a name="import"></a> <span class="title">Import\r
-  Credentials</span>: Import any existing credentials from external\r
-  sources.  With the Kerberos v5 <a\r
-  href="concept_cred_pro.htm">credentials provider</a>, the Windows logon \r
-       identity stored in the Microsoft Windows LSA cache will be imported.</li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Credential Menu</title>
+  <meta name="description" content="credential menu">
+  <meta name="keywords" content="credential menu">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Credential Menu</h1>
+
+<p>
+Click an item on the menu to go to the description of the action, or
+choose from the list below.  You can activate the by pressing <span
+class="pre">Alt + C</span> and you can activate each action by
+pressing the highlighted character.
+</p>
+
+<p>
+Actions which have an associated hot key show this hot key to the
+right of the action.  You can use the hot key to trigger the action
+without invoking the <span class="pre">Credential</span> menu.
+</p>
+
+<p>
+<map name="FPMap0">
+<area href="#new" shape="rect" coords="29, 18, 220, 44">
+<area href="#renew" shape="rect" coords="29, 42, 219, 67">
+<area href="#renew" shape="rect" coords="213, 44, 464, 113">
+<area href="#destroy" shape="rect" coords="29, 65, 220, 83">
+<area href="#import" shape="rect" coords="29, 81, 217, 104">
+<area href="#chpw" shape="rect" coords="28, 131, 218, 156">
+<area href="#def" shape="rect" coords="28, 102, 216, 133">
+</map>
+<img src="images/screen_menu_credential.png" usemap="#FPMap0"/>
+</p>
+
+<ul>
+  <li><a name="new"></a> <span class="title">New Credentials ...</span>:
+  Opens the new credentials acquisition dialog box.  If an identity
+  was selected, then that identity would be made the default for the
+  new credentials acquisition.  However, it can easily be changed in
+  the dialog.
+  <p>
+  See <span class="pre"><a href="act_new_creds.htm">New Credentials
+  Action</a></span> for more information.
+  </p></li>
+
+  <li><a name="renew"></a> <span class="title">Renew credentials</span>:
+  Renews the selected credentials or identity.  This action requires
+  that the selected credentials be renewable.
+  <p>
+  See <span class="pre"><a href="act_renew_creds.htm">Renew
+  Credentials Action</a></span> for more information.</p></li>
+  
+  <li><a name="destroy"></a> <span class="title">Destroy
+  credentials...</span>: Destroys the selected credentials.</li>
+
+  <li><a name="def"></a> <span class="title">Set as default</span>: Sets
+  the selected identity as the default, if it is not already the
+  default.  The implications of this operation is dependent on the
+  current <a href="concept_ident_pro.htm">identity provider</a>.
+  <p>
+  See <span class="pre"><a href="act_set_default.htm">Set As Default
+  Action</a></span> for more information.</p></li>
+
+  <li><a name="chpw"></a> <span class="title">Change password...</span>:
+  Changes the password for the selected identity.  However, once the
+  new password dialog opens, you can change the identity for which the
+  password is getting changed.</li>
+
+  <li><a name="import"></a> <span class="title">Import
+  Credentials</span>: Import any existing credentials from external
+  sources.  With the Kerberos v5 <a
+  href="concept_cred_pro.htm">credentials provider</a>, the Windows logon 
+       identity stored in the Microsoft Windows LSA cache will be imported.</li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index 2f734af91e98581023d2c6d563567755e28608e5..f82490efa1b0d22026468a7d22c2c79aac494fd8 100644 (file)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - File Menu</title>\r
-  <meta name="description" content="File menu">\r
-  <meta name="keywords" content="file menu">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity File Menu</h1>\r
-\r
-<p>\r
-Click an item on the menu to go to the description of the action, or\r
-choose from the list below.  You can activate the by pressing <span\r
-class="pre">Alt + F</span> and you can activate each action by\r
-pressing the highlited character.\r
-</p>\r
-\r
-<p>\r
-Actions which have an associated hot key show this hot key to the\r
-right of the action.  You can use the hot key to trigger the action\r
-without invoking the <span class="pre">File</span> menu.\r
-</p>\r
-\r
-<p>\r
-<map name="FPMap0">\r
-<area href="#properties" shape="rect" coords="1, 21, 131, 42">\r
-<area href="#exit" shape="rect" coords="1, 40, 129, 65">\r
-</map>\r
-<img src="images/screen_menu_file.png" usemap="#FPMap0"/>\r
-</p>\r
-\r
-<ul>\r
-\r
-  <li><a name="properties"></a>\r
-  <span class="title">Properties...</span>: Displays a property\r
-  sheet for the selected credential, identity or credential type.</li>\r
-\r
-  <li><a name="exit"></a>\r
-  <span class="title">Exit</span>: Exits Network Identity Manager</li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - File Menu</title>
+  <meta name="description" content="File menu">
+  <meta name="keywords" content="file menu">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity File Menu</h1>
+
+<p>
+Click an item on the menu to go to the description of the action, or
+choose from the list below.  You can activate the by pressing <span
+class="pre">Alt + F</span> and you can activate each action by
+pressing the highlited character.
+</p>
+
+<p>
+Actions which have an associated hot key show this hot key to the
+right of the action.  You can use the hot key to trigger the action
+without invoking the <span class="pre">File</span> menu.
+</p>
+
+<p>
+<map name="FPMap0">
+<area href="#properties" shape="rect" coords="1, 21, 131, 42">
+<area href="#exit" shape="rect" coords="1, 40, 129, 65">
+</map>
+<img src="images/screen_menu_file.png" usemap="#FPMap0"/>
+</p>
+
+<ul>
+
+  <li><a name="properties"></a>
+  <span class="title">Properties...</span>: Displays a property
+  sheet for the selected credential, identity or credential type.</li>
+
+  <li><a name="exit"></a>
+  <span class="title">Exit</span>: Exits Network Identity Manager</li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index 7cd368ec2a809639bf596ca7d35095c80ccb699c..8f65c71b8371218d7fc84f0000d38ad1cefa7554 100644 (file)
@@ -1,54 +1,54 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Help Menu</title>\r
-  <meta name="description" content="Help Menu">\r
-  <meta name="keywords" content="help menu">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Help Menu</h1>\r
-\r
-<p>\r
-You can activate the menu by pressing <span class="pre">Alt + H</span>\r
-and you can activate each action by pressing the highlighted character.\r
-</p>\r
-\r
-<p>\r
-You can invoke help anytime by pressing the <span\r
-class="pre">F1</span> key or if you are in a dialog box, by clicking\r
-the question mark icon in the title bar and then clicking on the\r
-dialog box control that you want help with.\r
-</p>\r
-\r
-\r
-<p>\r
-<map name="FPMap0">\r
-<area href="#contents" shape="rect" coords="173, 22, 373, 43">\r
-<area href="#index" shape="rect" coords="173, 43, 373, 68">\r
-<area href="#about" shape="rect" coords="172, 103, 373, 128">\r
-<area href="#plug-in" shape="rect" coords="173, 67, 372, 102">\r
-</map>\r
-<img src="images/screen_menu_help.png" usemap="#FPMap0"/>\r
-</p>\r
-\r
-<ul>\r
-\r
-  \r
-\r
-  <li><a name="contents"></a><span class="title">Contents</span>: Opens\r
-  the table of contents for the user documentation</li>\r
-\r
-  <li><a name="index"></a><span class="title">Index</span>: Opens the\r
-  index for the user documentation</li>\r
-  \r
-  <li><a name="plug-in"></a><span class="title">Plug-in specific help</span>: \r
-  Plug-ins can register their own on-line help.</li>\r
-  <li><a name="about"></a><span class="title">About</span>: Opens a\r
-  dialog box containing information about this version of NetIDMgr as\r
-  well as the modules that are currently loaded.</li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Help Menu</title>
+  <meta name="description" content="Help Menu">
+  <meta name="keywords" content="help menu">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Help Menu</h1>
+
+<p>
+You can activate the menu by pressing <span class="pre">Alt + H</span>
+and you can activate each action by pressing the highlighted character.
+</p>
+
+<p>
+You can invoke help anytime by pressing the <span
+class="pre">F1</span> key or if you are in a dialog box, by clicking
+the question mark icon in the title bar and then clicking on the
+dialog box control that you want help with.
+</p>
+
+
+<p>
+<map name="FPMap0">
+<area href="#contents" shape="rect" coords="173, 22, 373, 43">
+<area href="#index" shape="rect" coords="173, 43, 373, 68">
+<area href="#about" shape="rect" coords="172, 103, 373, 128">
+<area href="#plug-in" shape="rect" coords="173, 67, 372, 102">
+</map>
+<img src="images/screen_menu_help.png" usemap="#FPMap0"/>
+</p>
+
+<ul>
+
+  
+
+  <li><a name="contents"></a><span class="title">Contents</span>: Opens
+  the table of contents for the user documentation</li>
+
+  <li><a name="index"></a><span class="title">Index</span>: Opens the
+  index for the user documentation</li>
+  
+  <li><a name="plug-in"></a><span class="title">Plug-in specific help</span>: 
+  Plug-ins can register their own on-line help.</li>
+  <li><a name="about"></a><span class="title">About</span>: Opens a
+  dialog box containing information about this version of NetIDMgr as
+  well as the modules that are currently loaded.</li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index df10f2ec30cce399203d77c532407062c69b9b28..1022a320d392a6592fce9019f45292ab67bbeaca 100644 (file)
@@ -1,65 +1,65 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Options Menu</title>\r
-  <meta name="description" content="options menu">\r
-  <meta name="keywords" content="options menu">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Options Menu</h1>\r
-\r
-<p>\r
-Click an item on the menu to go to the description of the action, or\r
-choose from the list below.  You can activate the menu by pressing <span\r
-class="pre">Alt + O</span> and you can activate each action by\r
-pressing the highlighted character.\r
-</p>\r
-\r
-\r
-<p>\r
-<map name="FPMap0">\r
-<area href="#general" shape="rect" coords="124, 20, 239, 40">\r
-<area href="#appearance" shape="rect" coords="124, 38, 239, 56">\r
-<area href="#identities" shape="rect" coords="122, 54, 239, 73">\r
-<area href="#notifications" shape="rect" coords="123, 71, 239, 93">\r
-<area href="#plugins" shape="rect" coords="123, 91, 239, 112">\r
-<area href="#pluginspec" shape="rect" coords="124, 110, 239, 169">\r
-</map>\r
-<img src="images/screen_menu_options.png" usemap="#FPMap0"/>\r
-</p>\r
-\r
-<ul>\r
-\r
-<li><a name="general"></a><span class="title">General ...</span>: Opens\r
-the NetIDMgr general configuration panel.  This panel allows you to\r
-configure settings related to the startup/shutdown of NetIDMgr in\r
-addition to debugging and monitoring options.</li>\r
-\r
-<li><a name="appearance"></a><span class="title">Appearance ...</span>:\r
-Provides options for customizing the appearance of the credentials\r
-window.  Currently, the only options provided are for selecting the\r
-font used for the credentials list.</li>\r
-\r
-<li><a name="identities"></a><span class="title">Identities ...</span>:\r
-Opens the identities configuration panel.  These options control\r
-credentials defaults for all identities or for specific identities.</li>\r
-\r
-<li><a name="notifications"></a><span class="title">Notifications\r
-...</span>: The notifications configuration panel controls the\r
-settings used by the NetIDMgr timer that triggers warnings and\r
-identity renewals.</li>\r
-\r
-<li><a name="plugins"></a><span class="title">plug-ins ...</span>:\r
-Options for enabling or disabling specific plug-ins and also for\r
-viewing information about loaded plug-ins.</li>\r
-\r
-<li><a name="pluginspec"></a><span class="title">Plugin specific\r
-configuration panels</span>: Each registered plugin can register one\r
-or more configuration panels which will appear on the <span\r
-class="pre">Options</span> menu.</li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Options Menu</title>
+  <meta name="description" content="options menu">
+  <meta name="keywords" content="options menu">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Options Menu</h1>
+
+<p>
+Click an item on the menu to go to the description of the action, or
+choose from the list below.  You can activate the menu by pressing <span
+class="pre">Alt + O</span> and you can activate each action by
+pressing the highlighted character.
+</p>
+
+
+<p>
+<map name="FPMap0">
+<area href="#general" shape="rect" coords="124, 20, 239, 40">
+<area href="#appearance" shape="rect" coords="124, 38, 239, 56">
+<area href="#identities" shape="rect" coords="122, 54, 239, 73">
+<area href="#notifications" shape="rect" coords="123, 71, 239, 93">
+<area href="#plugins" shape="rect" coords="123, 91, 239, 112">
+<area href="#pluginspec" shape="rect" coords="124, 110, 239, 169">
+</map>
+<img src="images/screen_menu_options.png" usemap="#FPMap0"/>
+</p>
+
+<ul>
+
+<li><a name="general"></a><span class="title">General ...</span>: Opens
+the NetIDMgr general configuration panel.  This panel allows you to
+configure settings related to the startup/shutdown of NetIDMgr in
+addition to debugging and monitoring options.</li>
+
+<li><a name="appearance"></a><span class="title">Appearance ...</span>:
+Provides options for customizing the appearance of the credentials
+window.  Currently, the only options provided are for selecting the
+font used for the credentials list.</li>
+
+<li><a name="identities"></a><span class="title">Identities ...</span>:
+Opens the identities configuration panel.  These options control
+credentials defaults for all identities or for specific identities.</li>
+
+<li><a name="notifications"></a><span class="title">Notifications
+...</span>: The notifications configuration panel controls the
+settings used by the NetIDMgr timer that triggers warnings and
+identity renewals.</li>
+
+<li><a name="plugins"></a><span class="title">plug-ins ...</span>:
+Options for enabling or disabling specific plug-ins and also for
+viewing information about loaded plug-ins.</li>
+
+<li><a name="pluginspec"></a><span class="title">Plugin specific
+configuration panels</span>: Each registered plugin can register one
+or more configuration panels which will appear on the <span
+class="pre">Options</span> menu.</li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index 00805591684d068708830adfe1830012ca6f2a7c..d2a4987a5a92524cf13ab67711bc40ccf77df441 100644 (file)
@@ -1,94 +1,94 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - View Menu</title>\r
-  <meta name="description" content="View menu">\r
-  <meta name="keywords" content="view menu">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - View Menu</h1>\r
-\r
-<p>\r
-Click an item on the menu to go to the description of the action, or\r
-choose from the list below.  You can activate the by pressing <span\r
-class="pre">Alt + V</span> and you can activate each action by\r
-pressing the highlited character.\r
-</p>\r
-\r
-<p>\r
-Actions which have an associated hot key show this hot key to the\r
-right of the action.  You can use the hot key to trigger the action\r
-without invoking the <span class="pre">View</span> menu.\r
-</p>\r
-\r
-<p>\r
-<map name="menumap">\r
-<area href="#advanced" shape="rect" coords="91, 20, 230, 39">\r
-<area href="#choosecol" shape="rect" coords="89, 38, 230, 57">\r
-<area href="#layout" shape="rect" coords="89, 52, 229, 76">\r
-<area href="#layout" shape="rect" coords="225, 54, 319, 125">\r
-<area href="#refresh" shape="rect" coords="91, 77, 226, 101">\r
-</map>\r
-<img src="images/screen_menu_view.png" usemap="#menumap" />\r
-</p>\r
-\r
-<ul>\r
-\r
-<li><a name="advanced"></a> <span class="title">Advanced F7</span>:\r
-\r
-Toggles the display mode between <b>basic</b> and <b>advanced</b> modes.  \r
-In basic mode, the Network Identity Manager displays a list of identities \r
-and their current status.  In the advanced mode, NetIdMgr provides a \r
-customizable list of all discovered credentials.\r
-</li>\r
-\r
-<li><a name="choosecol"></a> <span class="title">View columns</span>:\r
-\r
-<i>Only available in Advanced mode.</i>\r
-Invokes a submenu from which you can choose the columns that are\r
-displayed in the credentials window.  If you change the columns, or\r
-their order, a new custom layout will be created for you which you can\r
-later use using the <span class="pre">Layout</span> submenu later. For\r
-more information about managing layouts, see the <a href="use_layout.htm">Layout</a> topic.</li>\r
-\r
-<li><a name="layout"></a> <span class="title">Layout</span>: \r
-<i>Only available in Advanced mode.</i>  Opens a\r
-submenu where you can select the layout for the credentials\r
-display.\r
-   <ul>\r
-\r
-      <li><span class="title">By Identity</span>: A predefined layout\r
-      where the credentials will be grouped by identity and by\r
-      credentials type, in that order.</li>\r
-\r
-      <li><span class="title">By Type</span>: <b>Not implemented in\r
-      this release.</b> A predefined layout\r
-      where the credentials are grouped by credentials type</li>\r
-\r
-      <li><span class="title">By Location</span>: A predefined layout\r
-      where the credentials are grouped by the location where they are\r
-      stored in.  For Kerberos 5, the location is the name of the\r
-      credentials cache in which the tickets are stored, and for AFS,\r
-      the locatino is always the cache manager.  Individual <a\r
-      href="concept_cred_pro.htm">credential providers</a> choose the\r
-      interpretation of the <span class="pre">location</span> property\r
-      as the concept of location changes from type to type.</li>\r
-\r
-      <li><span class="title">Custom</span>: If you customize any of\r
-      the above layouts by adding, removing, reordering or changing\r
-      the sort or outline columns, then NetIDMgr will store your new\r
-      layout settings under this layout.  Invoking this menu item\r
-      restores your customizations.</ul>\r
-\r
-</li>\r
-\r
-<li><a name="refresh"></a> <span class="title">Refresh view F5</span>: Refresh\r
-the contents of the credentials view.  This queries each <a\r
-href="concept_cred_pro.htm">credential provider</a> for any\r
-credentials and redraws the credentials view.</li>\r
-\r
-</ul>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - View Menu</title>
+  <meta name="description" content="View menu">
+  <meta name="keywords" content="view menu">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - View Menu</h1>
+
+<p>
+Click an item on the menu to go to the description of the action, or
+choose from the list below.  You can activate the by pressing <span
+class="pre">Alt + V</span> and you can activate each action by
+pressing the highlited character.
+</p>
+
+<p>
+Actions which have an associated hot key show this hot key to the
+right of the action.  You can use the hot key to trigger the action
+without invoking the <span class="pre">View</span> menu.
+</p>
+
+<p>
+<map name="menumap">
+<area href="#advanced" shape="rect" coords="91, 20, 230, 39">
+<area href="#choosecol" shape="rect" coords="89, 38, 230, 57">
+<area href="#layout" shape="rect" coords="89, 52, 229, 76">
+<area href="#layout" shape="rect" coords="225, 54, 319, 125">
+<area href="#refresh" shape="rect" coords="91, 77, 226, 101">
+</map>
+<img src="images/screen_menu_view.png" usemap="#menumap" />
+</p>
+
+<ul>
+
+<li><a name="advanced"></a> <span class="title">Advanced F7</span>:
+
+Toggles the display mode between <b>basic</b> and <b>advanced</b> modes.  
+In basic mode, the Network Identity Manager displays a list of identities 
+and their current status.  In the advanced mode, NetIdMgr provides a 
+customizable list of all discovered credentials.
+</li>
+
+<li><a name="choosecol"></a> <span class="title">View columns</span>:
+
+<i>Only available in Advanced mode.</i>
+Invokes a submenu from which you can choose the columns that are
+displayed in the credentials window.  If you change the columns, or
+their order, a new custom layout will be created for you which you can
+later use using the <span class="pre">Layout</span> submenu later. For
+more information about managing layouts, see the <a href="use_layout.htm">Layout</a> topic.</li>
+
+<li><a name="layout"></a> <span class="title">Layout</span>: 
+<i>Only available in Advanced mode.</i>  Opens a
+submenu where you can select the layout for the credentials
+display.
+   <ul>
+
+      <li><span class="title">By Identity</span>: A predefined layout
+      where the credentials will be grouped by identity and by
+      credentials type, in that order.</li>
+
+      <li><span class="title">By Type</span>: <b>Not implemented in
+      this release.</b> A predefined layout
+      where the credentials are grouped by credentials type</li>
+
+      <li><span class="title">By Location</span>: A predefined layout
+      where the credentials are grouped by the location where they are
+      stored in.  For Kerberos 5, the location is the name of the
+      credentials cache in which the tickets are stored, and for AFS,
+      the locatino is always the cache manager.  Individual <a
+      href="concept_cred_pro.htm">credential providers</a> choose the
+      interpretation of the <span class="pre">location</span> property
+      as the concept of location changes from type to type.</li>
+
+      <li><span class="title">Custom</span>: If you customize any of
+      the above layouts by adding, removing, reordering or changing
+      the sort or outline columns, then NetIDMgr will store your new
+      layout settings under this layout.  Invoking this menu item
+      restores your customizations.</ul>
+
+</li>
+
+<li><a name="refresh"></a> <span class="title">Refresh view F5</span>: Refresh
+the contents of the credentials view.  This queries each <a
+href="concept_cred_pro.htm">credential provider</a> for any
+credentials and redraws the credentials view.</li>
+
+</ul>
+
+</body>
 </html>
\ No newline at end of file
index 99a50d17e0b29499c3f3f0412009aed514e0e3a4..0fb975eb70940c170b0f954b8ef14b528ac38698 100644 (file)
-  body {\r
-    font-family: helvetica,sans-serif;\r
-    font-size: 9pt;\r
-    font-style: normal;\r
-    background-color: white;\r
-    margin-top: 0pt;\r
-    margin-left: 0pt;\r
-    margin-right: 0pt;\r
-    }\r
-\r
-  h1 { border-bottom: 1px solid black;\r
-    padding: 1em;\r
-    font-size: 12pt;\r
-    background-color: rgb(247, 247, 247);\r
-    }\r
-\r
-  h2 {  }\r
-\r
-  h3 { border-bottom: 1px solid lightgrey;\r
-    padding: 1em;\r
-    font-size: 11pt;\r
-    }\r
-\r
-  h4 { border-bottom: 1px dashed lightgrey;\r
-    font-size: 10pt;\r
-    font-style: italic;\r
-    margin-left: 2em;\r
-    }\r
-\r
-  p { margin-left: 1em;\r
-    margin-right: 1em;\r
-    }\r
-\r
-  p.caption { margin-left: 1em;\r
-    margin-right: 1em;\r
-    font-style: italic;\r
-    }\r
-\r
-  div.inline { float: left;\r
-    }\r
-\r
-  div.sidebar { border: 1px solid rgb(255, 255, 0);\r
-    float: right;\r
-    background-color: rgb(255, 255, 185);\r
-    }\r
-\r
-  a.external {  }\r
-\r
-  a.mail {  }\r
-\r
-  img { border: 0pt none ;\r
-    }\r
-\r
-  span.pre { font-family: monospace;\r
-    }\r
-\r
-  span.title { font-weight: bold;\r
-    }\r
-\r
-  div.schema-space { border-left: 1px solid rgb(230, 206, 142);\r
-    padding: 0pt;\r
-    margin-left: 1em;\r
-    margin-top: 0.5em;\r
-    margin-bottom: 0.5em;\r
-    }\r
-\r
-  div.schema-templ { border-left: 1px solid rgb(98, 161, 143);\r
-    background-color: rgb(208, 242, 233);\r
-    }\r
-\r
-  div.schema-space-doc { margin: 1em 3em;\r
-    }\r
-\r
-  p.schema-space { border-top: 1px solid rgb(230, 206, 142);\r
-    margin: 0pt;\r
-    padding: 1em;\r
-    font-weight: bold;\r
-    font-size: 10pt;\r
-    background-color: rgb(242, 233, 208);\r
-    }\r
-\r
-  p.schema-reg { margin: 0pt;\r
-    padding-top: 0.4em;\r
-    padding-bottom: 0.4em;\r
-    background-color: rgb(247, 247, 247);\r
-    }\r
-\r
-  span.schema-label { display: block;\r
-    float: left;\r
-    margin-left: 2em;\r
-    width: 10em;\r
-    }\r
-\r
-  span.schema-value { width: 100%;\r
-    background-color: rgb(255, 255, 255);\r
-    padding-top: 0.3em;\r
-    padding-bottom: 0.3em;\r
-    }\r
-\r
-  div.schema-value { border: 1px solid rgb(153, 171, 94);\r
-    background-color: rgb(234, 242, 208);\r
-    margin-left: 1em;\r
-    margin-right: 1em;\r
-    margin-bottom: 1em;\r
-    }\r
-\r
-  p.schema-value-name { margin: 0.5em 1em;\r
-    padding: 0.5em 1em;\r
-    }\r
-\r
-  span.schema-value-name { font-size: 10pt;\r
-    font-weight: bold;\r
-    }\r
-\r
-  p.schema-value-type {  }\r
-\r
-  p.schema-value-def {  }\r
-\r
-  div.schema-value-doc { padding: 1em;\r
-    }\r
-\r
-\r
+  body {
+    font-family: helvetica,sans-serif;
+    font-size: 9pt;
+    font-style: normal;
+    background-color: white;
+    margin-top: 0pt;
+    margin-left: 0pt;
+    margin-right: 0pt;
+    }
+
+  h1 { border-bottom: 1px solid black;
+    padding: 1em;
+    font-size: 12pt;
+    background-color: rgb(247, 247, 247);
+    }
+
+  h2 {  }
+
+  h3 { border-bottom: 1px solid lightgrey;
+    padding: 1em;
+    font-size: 11pt;
+    }
+
+  h4 { border-bottom: 1px dashed lightgrey;
+    font-size: 10pt;
+    font-style: italic;
+    margin-left: 2em;
+    }
+
+  p { margin-left: 1em;
+    margin-right: 1em;
+    }
+
+  p.caption { margin-left: 1em;
+    margin-right: 1em;
+    font-style: italic;
+    }
+
+  div.inline { float: left;
+    }
+
+  div.sidebar { border: 1px solid rgb(255, 255, 0);
+    float: right;
+    background-color: rgb(255, 255, 185);
+    }
+
+  a.external {  }
+
+  a.mail {  }
+
+  img { border: 0pt none ;
+    }
+
+  span.pre { font-family: monospace;
+    }
+
+  span.title { font-weight: bold;
+    }
+
+  div.schema-space { border-left: 1px solid rgb(230, 206, 142);
+    padding: 0pt;
+    margin-left: 1em;
+    margin-top: 0.5em;
+    margin-bottom: 0.5em;
+    }
+
+  div.schema-templ { border-left: 1px solid rgb(98, 161, 143);
+    background-color: rgb(208, 242, 233);
+    }
+
+  div.schema-space-doc { margin: 1em 3em;
+    }
+
+  p.schema-space { border-top: 1px solid rgb(230, 206, 142);
+    margin: 0pt;
+    padding: 1em;
+    font-weight: bold;
+    font-size: 10pt;
+    background-color: rgb(242, 233, 208);
+    }
+
+  p.schema-reg { margin: 0pt;
+    padding-top: 0.4em;
+    padding-bottom: 0.4em;
+    background-color: rgb(247, 247, 247);
+    }
+
+  span.schema-label { display: block;
+    float: left;
+    margin-left: 2em;
+    width: 10em;
+    }
+
+  span.schema-value { width: 100%;
+    background-color: rgb(255, 255, 255);
+    padding-top: 0.3em;
+    padding-bottom: 0.3em;
+    }
+
+  div.schema-value { border: 1px solid rgb(153, 171, 94);
+    background-color: rgb(234, 242, 208);
+    margin-left: 1em;
+    margin-right: 1em;
+    margin-bottom: 1em;
+    }
+
+  p.schema-value-name { margin: 0.5em 1em;
+    padding: 0.5em 1em;
+    }
+
+  span.schema-value-name { font-size: 10pt;
+    font-weight: bold;
+    }
+
+  p.schema-value-type {  }
+
+  p.schema-value-def {  }
+
+  div.schema-value-doc { padding: 1em;
+    }
+
+
index e0f041b8bcb6c8e5c8e912e4e0a35f402e213e49..69df96a624800be780d680189cd71938c66764e0 100644 (file)
@@ -1,80 +1,80 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Standard Toolbar</title>\r
-  <meta name="description" content="Standard Toolbar">\r
-  <meta name="keywords" content="standard toolbar">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Changing Passwords">\r
-<param name="Keyword" value="New Credentials">\r
-<param name="Keyword" value="Renew Credentials">\r
-<param name="Keyword" value="Import Credentials">\r
-<param name="Keyword" value="Destroy Credentials">\r
-<param name="Keyword" value="Change Password">\r
-<param name="Keyword" value="Refresh View">\r
-<param name="Keyword" value="Help">\r
-<param name="Keyword" value="Toolbar">\r
-</OBJECT>\r
-\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Standard Toolbar</h1>\r
-\r
-<p>The standard toolbar appears below along with descriptions of what\r
-each button does.\r
-</p>\r
-\r
-<p>\r
-<img src="images/screen_tb_standard.png" />\r
-</p>\r
-\r
-<ol>\r
-\r
-  <li><span class="title">New credentials</span>: Equivalent to\r
-  selecting <span class="pre"><a href="menu_credential.htm#new">New\r
-  credentials...</a></span> from the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.\r
-  <p>\r
-  See <a href="act_new_creds.htm">New Credentials Action</a> for more\r
-  information.</p></li>\r
-\r
-  <li><span class="title">Renew credentials</span>: Equivalent to\r
-  selecting <span class="pre"><a\r
-  href="menu_credential.htm#renew">Renew Credentials</a></span> from\r
-  the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.\r
-  <p>\r
-  See <a href="act_renew_creds.htm">Renew Credentials Action</a> for\r
-  more information.</li>\r
-\r
-  <li><span class="title">Import credentials</span>: Equivalent to\r
-  selecting <span class="pre"><a\r
-  href="menu_credential.htm#import">Import Credentials</a></span> from\r
-  the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.\r
-  </li>\r
-\r
-  <li><span class="title">Destroy credentials</span>: Equivalent to\r
-  selecting <span class="pre"><a\r
-  href="menu_credential.htm#destroy">Destroy Credentials</a></span>\r
-  from the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.</li>\r
-\r
-  <li><span class="title">Change password</span>: Equivalent to\r
-  selecting <span class="pre"><a\r
-  href="menu_credential.htm#chpw">Change Password ...</a></span> from\r
-  the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.</li>\r
-\r
-  <li><span class="title">Refresh view</span>: Equivalent to selecting\r
-  <span class="pre"><a href="menu_credential.htm#refresh">Refresh\r
-  View</a></span> from the <span class="pre"><a\r
-  href="menu_credential.htm">Credential</a></span> menu.</li>\r
-\r
-  <li><span class="title">Help</span>: Displays documentation</li>\r
-\r
-</ol>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Standard Toolbar</title>
+  <meta name="description" content="Standard Toolbar">
+  <meta name="keywords" content="standard toolbar">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Changing Passwords">
+<param name="Keyword" value="New Credentials">
+<param name="Keyword" value="Renew Credentials">
+<param name="Keyword" value="Import Credentials">
+<param name="Keyword" value="Destroy Credentials">
+<param name="Keyword" value="Change Password">
+<param name="Keyword" value="Refresh View">
+<param name="Keyword" value="Help">
+<param name="Keyword" value="Toolbar">
+</OBJECT>
+
+</head>
+<body>
+
+<h1>Network Identity Manager - Standard Toolbar</h1>
+
+<p>The standard toolbar appears below along with descriptions of what
+each button does.
+</p>
+
+<p>
+<img src="images/screen_tb_standard.png" />
+</p>
+
+<ol>
+
+  <li><span class="title">New credentials</span>: Equivalent to
+  selecting <span class="pre"><a href="menu_credential.htm#new">New
+  credentials...</a></span> from the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.
+  <p>
+  See <a href="act_new_creds.htm">New Credentials Action</a> for more
+  information.</p></li>
+
+  <li><span class="title">Renew credentials</span>: Equivalent to
+  selecting <span class="pre"><a
+  href="menu_credential.htm#renew">Renew Credentials</a></span> from
+  the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.
+  <p>
+  See <a href="act_renew_creds.htm">Renew Credentials Action</a> for
+  more information.</li>
+
+  <li><span class="title">Import credentials</span>: Equivalent to
+  selecting <span class="pre"><a
+  href="menu_credential.htm#import">Import Credentials</a></span> from
+  the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.
+  </li>
+
+  <li><span class="title">Destroy credentials</span>: Equivalent to
+  selecting <span class="pre"><a
+  href="menu_credential.htm#destroy">Destroy Credentials</a></span>
+  from the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.</li>
+
+  <li><span class="title">Change password</span>: Equivalent to
+  selecting <span class="pre"><a
+  href="menu_credential.htm#chpw">Change Password ...</a></span> from
+  the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.</li>
+
+  <li><span class="title">Refresh view</span>: Equivalent to selecting
+  <span class="pre"><a href="menu_credential.htm#refresh">Refresh
+  View</a></span> from the <span class="pre"><a
+  href="menu_credential.htm">Credential</a></span> menu.</li>
+
+  <li><span class="title">Help</span>: Displays documentation</li>
+
+</ol>
+
+</body>
 </html>
\ No newline at end of file
index 3357741d720c52c9ba5721234f9be33c9d853bb8..4e33fab94c14fb7542585e2a3e80d128c21e3bf1 100644 (file)
@@ -1,11 +1,11 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - title</title>\r
-  <meta name="description" content="">\r
-  <meta name="keywords" content="">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - title</title>
+  <meta name="description" content="">
+  <meta name="keywords" content="">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+</body>
 </html>
\ No newline at end of file
index 9d718481a4e0d64c3c5f2e70a961c0e01affc6a9..76b498ac19e699299ae5588bef52eee8b480cf0c 100644 (file)
-<html>\r
-\r
-<head>\r
-<title>Network Identity Manager - Configuration</title>\r
-<meta name="description" content>\r
-<meta name="keywords" content="configuration">\r
-<link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Configuration">\r
-<param name="Keyword" value="General Options">\r
-<param name="Keyword" value="Appearance Options">\r
-<param name="Keyword" value="Notification Options">\r
-<param name="Keyword" value="Plug-in Management">\r
-<param name="Keyword" value="Kerberos v5 Configuration">\r
-<param name="Keyword" value="Kerberos v4 Configuration">\r
-<param name="Keyword" value="Identity Default Configuration">\r
-<param name="Keyword" value="Identity Configuration">\r
-</OBJECT>\r
-<style>\r
-<!--\r
- li.MsoNormal\r
-       {mso-style-parent:"";\r
-       margin-bottom:.0001pt;\r
-       text-autospace:none;\r
-       font-size:10.0pt;\r
-       font-family:"Times New Roman";\r
-       margin-left:0pt; margin-right:0pt; margin-top:0pt}\r
--->\r
-</style>\r
-</head>\r
-\r
-<body>\r
-\r
-<h1>Network Identity Manager - Configuration</h1>\r
-<p>All Network Identity Manager configuration options can be accessed via the\r
-<span class="pre">Options</span> menu. The available configuration panels are:\r
-</p>\r
-<ul>\r
-       <li>\r
-       <p><span class="title">General</span>: General application options for NetIDMgr.</p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Appearance</span>: Allows you to set the font used by \r
-       NetIDMgr.</p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Identities</span>: Default settings for all identities \r
-       and settings for each identity. Details <a href="#cfg_idents">below</a>.</p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Notifications</span>: Notification and timer options. \r
-       NetIDMgr can issue warnings when credentials are about to expire. This configuration \r
-       panel allows you to set the thresholds at which these warnings are issued. For \r
-       example, if the warning timeout is set for 10 minutes, NetIDMgr will issue a \r
-       warning 10 minutes before a credential expires.</p>\r
-       <p>The panel also allows you to control the credentials renew timer. If the \r
-       timer is disabled, NetIDMgr will not automatically attempt to renew credentials. \r
-       If the <span class="pre">Renew at half life intervals when possible</span> option \r
-       is set, then the timer will expire after the credential has less than half its \r
-       lifetime left. If the renewal operation fails, it will attempt another renwal \r
-       after half of the remaining liftime is over (i.e. when the credential has less \r
-       than 1/4 of its original lifetime left) and so on. </p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Plugins</span>: Enable/disable and check the status of \r
-       registered plug-ins. Enabling or disabling a plug-in only takes effect after \r
-       a restart of NetIDMgr.</p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Kerberos v5</span>: Kerberos v5 Credential Provider Configuration</p>\r
-       </li>\r
-       <li>\r
-       <p><span class="title">Kerberos v4</span>: Kerberos v4 Credential Provider Configuration</p>\r
-       </li>\r
-</ul>\r
-<p></p>\r
-<h3>General Options</h3>\r
-<p>The General options dialog, accessed via the Options menu, allows you to configure \r
-operational properties specific to the NetIdMgr application.</p>\r
-<p><img src="images/screen_config_general.png" /> </p>\r
-<p>The <b>Obtain new credentials at startup (if none are present)</b> checkbox will \r
-determine whether or not NetIdMgr will display the New Credentials dialog at startup \r
-when no valid credentials exist.</p>\r
-<p>The <b>Destroy all credentials on exit </b>option can be used to empty all of \r
-the credential caches when the NetIdMgr is terminated.</p>\r
-<p>The <b>Run NetIdMgr in taskbar notification area after window close </b>checkbox \r
-determines the behavior of the window close button. When checked, NetIdMgr will \r
-close the window but will continue running and can be accessed from the taskbar \r
-notification area. When unchecked, NetIdMgr will behave as if File-&gt;Exit was selected \r
-from the menu.</p>\r
-<p><b>Clicking on the notification icon</b> can be configured to either Show Network \r
-Identity Manager or Obtain New Credentials. This option controls which menu item \r
-on the notification icon menu is the default action.</p>\r
-<p>The <b>Monitor network connectivity</b> option determines whether or not NetIdMgr \r
-monitors the configuration of IP addresses on the machine. When IP addresses are \r
-added or removed and this feature is activated, the NetIdMgr will probe the identity \r
-management servers (e.g., Kerberos Key Distribution Centers) to determine if they \r
-are reachable and if so will automatically obtain credentials.</p>\r
-<p>The <b>Log trace events to trace log at the following location</b> option is \r
-used to activate a log file that can be used to help debug the behavior of NetIdMgr \r
-and its plug-ins. Press the <b>Show log</b> button to view the log file in Windows \r
-Notepad. </p>\r
-\r
-<h3>Appearance Options</h3>\r
-<p>The Appearance Options page can be used to select an alternate typeface to be \r
-used when displaying credentials in the NetIdMgr.</p>\r
-<p><img src="images/screen_config_appearance.png" /> </p>\r
-\r
-\r
-<a name="cfg_idents"></a>\r
-<h3>Configuration of default settings for all identities</h3>\r
-<p>The <span class="pre">Identities</span> configuration panel allows you to set \r
-the defaults that will be used for all identities. However, most of the settings \r
-displayed here can be overridden with specific per-identity settings. </p>\r
-<p>The panel will have a number of sub panels (or tabs) corresponding to each plug-in \r
-that maintains per-identity configuration. </p>\r
-<p>A list of identities for which configuration information is maintained will be \r
-shown under the main <span class="pre">Identities</span> configuration panel name. \r
-Each of these correspond to a <a href="#cfg_ident">per identity</a> configuration \r
-panel. </p>\r
-<p>Note that adding or removing an identity in the configuration panel only has \r
-the effect of adding or removing the identity to or from the list of identities \r
-for which configuration information is maintained. </p>\r
-\r
-<h4>Global Identity Settings</h4>\r
-<p><img src="images/screen_config_idents.png" /> </p>\r
-<p class="MsoNormal">There are three general settings that can be used to set \r
-global defaults.</p>\r
-<p class="MsoNormal">The <b>Monitor credential expiration</b> setting determines \r
-whether or not NetIdMgr should monitor the credential lifetimes and issue \r
-expiration notifications.&nbsp;&nbsp; This value is used as the default for all new \r
-identities.</p>\r
-<p class="MsoNormal">The <b>Automatically renew</b> setting determines if <i>\r
-renewable</i> credentials are automatically renewed prior to expiration.&nbsp; This \r
-value is used as the default for all new identities.</p>\r
-<p class="MsoNormal">The <b>Always show in the credentials list (Pinned)</b> \r
-setting determines whether new identities are always pinned within the \r
-credentials list.&nbsp; A pinned identity will always be displayed regardless of \r
-whether or not there are credentials associated with it.</p>\r
-\r
-<h4>Global Kerberos v5 Identity Settings</h4>\r
-<p><img src="images/screen_config_global_krb5.png" /> </p>\r
-<p class="MsoNormal">The global Kerberos v5 settings define default credential \r
-lifetimes and minimum and maximum values for use in constructing the slider \r
-controls used to set the lifetimes.&nbsp; </p>\r
-<p class="MsoNormal">There are two expiration times associated with Kerberos \r
-tickets.&nbsp; The first specifies the length of the time period during which the \r
-tickets are valid for use.&nbsp; The second specifies the length of the renewable \r
-lifetime.&nbsp; Valid Kerberos tickets may have their valid use lifetime repeatedly \r
-extended up until the renewable lifetime expires.&nbsp; The settings on this page are \r
-used to configure default lifetime values for NetIdMgr to use when requesting \r
-Kerberos tickets from the Kerberos server (key distribution center).&nbsp; The \r
-Kerberos server may issue tickets with shorter lifetimes than were requested.</p>\r
-<p class="MsoNormal">The <b>Renewable</b>, <b>Forwardable</b>, and <b>\r
-Addressless</b> options determine whether or not new identities default to \r
-obtaining Kerberos v5 tickets with these options.</p>\r
-<p class="MsoNormal">When <b>Forwardable </b>tickets are received from the \r
-Kerberos Server, these tickets can be forwarded to a remote host when you \r
-connect via telnet, ssh, ftp, rlogin, or similar applications.&nbsp; When tickets are \r
-forwarded, there is no need to obtain Kerberos tickets again to access \r
-Kerberized services on the remote host.&nbsp;&nbsp; <b>Forwardable</b> tickets are often \r
-required when authenticating to a remote host using ssh or ftp when the remote \r
-host requires the ability to authenticate to a remote file system such as AFS.</p>\r
-<p class="MsoNormal">When <b>Renewable</b> tickets are received from the \r
-Kerberos Server, the ticket lifetimes may be renewed without prompting the user \r
-for her password.&nbsp; This allows Kerberos tickets to be issued with short \r
-lifetimes allowing compromised accounts to be disabled on short notice without \r
-requiring the user to enter a password every few hours.&nbsp; When combined with <b>\r
-Automatic Ticket Renewal</b>, NetIdMgr can maintain valid tickets for a week, a \r
-month, or longer by automatically renewing tickets prior to their expiration.&nbsp; \r
-The ability to renew tickets without a password is limited by the ticket\92\r
-renewable lifetime as issued by the Kerberos Server.</p>\r
-<p class="MsoNormal">When <b>Addressless</b> is selected, the tickets do not \r
-contain IP address information.&nbsp; This enables the tickets to be used from behind \r
-Network Address Translators which are frequently found in Cable and DSL Modems.</p>\r
-<p class="MsoNormal">The minimum and maximum ranges are used by the ticket \r
-initialization dialog box when constructing the Lifetime and Renewable Lifetime \r
-sliders.&nbsp; These sliders can be used to modify the requested ticket lifetimes \r
-when Kerberos tickets are initialized.</p>\r
-\r
-<h4>Global Kerberos v4 Identity Settings</h4>\r
-<p><img src="images/screen_config_global_krb4.png" /> </p>\r
-<p class="MsoNormal">When the <b>Obtain Kerberos v4 credentials</b> button is \r
-checked, NetIdMgr will attempt to retrieve Kerberos v4 credentials when ticket \r
-initialization, renewal, or importation is performed. &nbsp;Kerberos realms are \r
-increasingly configured to support only Kerberos v5 (e.g., Windows Active \r
-Directory Domains.)&nbsp; If the realms you use do not support Kerberos v4 it is \r
-suggested that this button be unchecked.</p>\r
-<p class="MsoNormal">Be aware that only the default identity can obtain Kerberos \r
-v4 credentials.&nbsp;&nbsp; This limitation is due to the inability of Kerberos v4 \r
-applications on Microsoft Windows to specify a credentials cache. </p>\r
-\r
-\r
-<a name="cfg_ident"></a>\r
-<h3>Per identity configuration</h3>\r
-<p>You can access the per-identity configuration panel for a specific identity by \r
-selecting the identity name from the list of configuration panels in the configuration \r
-dialog. </p>\r
-<p>These panels are similar to the <span class="pre">Identities</span> configuration \r
-panel, but they change per-identity settings. Changes you make in these panels will \r
-override the defaults set in the <span class="pre">Identities</span> panel. </p>\r
-<h4>Per identity General Configuration</h4>\r
-<p><img src="images/screen_config_ident.png" /> </p>\r
-<p class="MsoNormal">The General page contains a <b>Remove Identity</b> button \r
-that can be used to delete this Identity from the Network Identity Manager.</p>\r
-\r
-<h4>Per identity Kerberos v5 Configuration</h4>\r
-\r
-<p><img src="images/screen_config_ident_krb5.png" /> </p>\r
-<p class="MsoNormal">The Kerberos v5 page displays the name of the credential \r
-cache currently associated with the Identity.</p>\r
-\r
-<h4>Per identity Kerberos v4 Configuration</h4>\r
-\r
-<p><img src="images/screen_config_ident_krb4.png" /></p>\r
-<p class="MsoNormal">The Kerberos v4 page is optional and may not appear on all \r
-systems.&nbsp; Only one identity can obtain Kerberos v4 credentials at a time.&nbsp; </p>\r
-\r
-<h3>Notification Configuration</h3>\r
-\r
-<p><img src="images/screen_config_notifications.png" /> </p>\r
-<p class="MsoNormal">The <b>Renew automatically at</b> check box determines \r
-whether or not renewable tickets will be renewed by NetIdMgr when they reach the \r
-specified time remaining.&nbsp;&nbsp; </p>\r
-<p class="MsoNormal">The <b>Initial warning at</b> check box determines whether \r
-or not a warning will be issued when the specified time remaining is reached.</p>\r
-<p class="MsoNormal">The <b>Final warning at</b> check box determines whether or \r
-not a warning will be issued when the specified time remaining is reached.</p>\r
-<p class="MsoNormal">Notifications are performed in two ways.&nbsp; First, icons are \r
-displayed next to the affected credentials in the flags column of the display.&nbsp; \r
-Second, a balloon tip is displayed off of the NetIdMgr taskbar notification area \r
-icon.</p>\r
-\r
-<h3>Plug-in Configuration</h3>\r
-<p><img src="images/screen_config_plug_ins.png" /> </p>\r
-<p><span style="font-size: 10.0pt; font-family: Times New Roman">The Plug-ins \r
-and Modules page provides status information on the currently loaded plug-ins \r
-and modules include a description of their purpose; whether or not it was loaded \r
-properly; which other modules are required; and what organization developed it.\r
-</span> </p>\r
-\r
-<h4>Kerberos v5 Plug-in Configuration</h4>\r
-\r
-<p><img src="images/screen_config_plug_in_krb5.png" /> </p>\r
-<p class="MsoNormal">The <b>Kerberos v5 Configuration</b> tab allows you to \r
-alter the behavior of&nbsp; the Kerberos v5 identity provider.&nbsp; </p>\r
-<p class="MsoNormal">In the <b>Default Realm</b> field, select a Kerberos realm \r
-from the dropdown list.</p>\r
-<p class="MsoBodyTextIndent2" style="text-indent:0pt">The <b>Include all \r
-configured realms in New Credentials realm list</b> determines whether all of \r
-the realms declared in the Kerberos v5 Configuration file are included in the \r
-realms list of the <b>Obtain New Credentials</b> dialog.&nbsp; If disabled, only the \r
-realms previously used to obtain credentials are displayed.</p>\r
-<p class="MsoBodyTextIndent2" style="text-indent:0pt">The <b>Configuration File\r
-</b>field displays the path to the Kerberos v5 configuration file, krb5.ini.</p>\r
-<p class="MsoNormal"><span style="display: none">The Kerberos libraries depend \r
-on configuration files for their proper operation.&nbsp; When <b>Create file if \r
-missing </b>is checked, NetIdMgr will construct replacements for missing \r
-configuration files upon startup.&nbsp; This is performed by extracting Kerberos \r
-configuration information from the local Windows registry and the Domain Name \r
-System.&nbsp; The contents of the created file may then be edited using the <b>\r
-Kerberos Properties Dialog</b>.&nbsp; [This functionality is not available in this \r
-release.]</span></p>\r
-<p class="MsoNormal">The field labeled <b>Host Name</b> displays the name of \r
-your local machine.&nbsp; The <b>Domain Name</b> field displays the domain to which \r
-your local machine currently belongs.&nbsp;</p>\r
-<p class="MsoNormal">The <b>Import Tickets</b> listbox allows you to configure \r
-how NetIdMgr interacts with the Microsoft Kerberos Authentication Provider.&nbsp; \r
-NetIdMgr will automatically import Kerberos Tickets from the Microsoft LSA at \r
-startup depending upon the selected option and whether or not the Kerberos \r
-Authentication Provider was used for Windows Logon authorization.&nbsp; </p>\r
-<ul style="margin-top: 0pt; margin-bottom: 0pt" type="disc">\r
-       <li class="MsoNormal"><b>Never</b> means do not import tickets from the \r
-       MSLSA; </li>\r
-       <li class="MsoNormal"><b>Always</b> means do import tickets from the MSLSA; \r
-       and </li>\r
-       <li class="MsoNormal"><b>Only when the Principal matches</b> means import \r
-       tickets from the MSLSA only if the MSLSA Kerberos principal belongs to the \r
-       Default Realm.</li>\r
-</ul>\r
-<p class="MsoNormal">When the Windows Logon identity is imported and is \r
-configured as the default identity, the MIT credential cache will be used in \r
-preference to the MSLSA credential cache.</p>\r
-\r
-<h4>Kerberos v5 Realm Configuration</h4>\r
-<p><img src="images/screen_config_plug_in_krb5_realm.png" /> </p>\r
-\r
-<h4>Kerberos v5 Credential Cache Configuration</h4>\r
-<p><img src="images/screen_config_plug_in_krb5_ccache.png" /> </p>\r
-<p class="MsoNormal">The Kerberos Realm Configuration dialog can be used to \r
-manage the contents of the [Realms] and [Domain_Realm] sections of the Kerberos \r
-v5 configuration file.</p>\r
-\r
-<h4>Kerberos v4 Plug-in Configuration</h4>\r
-<p><img src="images/screen_config_plug_in_krb4.png" /> </p>\r
-<p class="MsoBodyTextIndent2" style="text-indent:0pt">Here, you can specify the \r
-name of the in-memory cache used to store the Kerberos v4 tickets.&nbsp; The format \r
-of the name is \93API:\94 followed by the cache name.&nbsp; Disk caches are not supported \r
-by Kerberos for Windows.</p>\r
-<p class="MsoNormal">The paths to the Kerberos v4 configuration files: krb.con \r
-and krbrealm.con may be viewed from this dialog.&nbsp; The default is to store the \r
-configuration files in the Windows directory.</p>\r
-\r
-</body>\r
-\r
+<html>
+
+<head>
+<title>Network Identity Manager - Configuration</title>
+<meta name="description" content>
+<meta name="keywords" content="configuration">
+<link rel="stylesheet" type="text/css" href="nidmgr.css">
+<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Configuration">
+<param name="Keyword" value="General Options">
+<param name="Keyword" value="Appearance Options">
+<param name="Keyword" value="Notification Options">
+<param name="Keyword" value="Plug-in Management">
+<param name="Keyword" value="Kerberos v5 Configuration">
+<param name="Keyword" value="Kerberos v4 Configuration">
+<param name="Keyword" value="Identity Default Configuration">
+<param name="Keyword" value="Identity Configuration">
+</OBJECT>
+<style>
+<!--
+ li.MsoNormal
+       {mso-style-parent:"";
+       margin-bottom:.0001pt;
+       text-autospace:none;
+       font-size:10.0pt;
+       font-family:"Times New Roman";
+       margin-left:0pt; margin-right:0pt; margin-top:0pt}
+-->
+</style>
+</head>
+
+<body>
+
+<h1>Network Identity Manager - Configuration</h1>
+<p>All Network Identity Manager configuration options can be accessed via the
+<span class="pre">Options</span> menu. The available configuration panels are:
+</p>
+<ul>
+       <li>
+       <p><span class="title">General</span>: General application options for NetIDMgr.</p>
+       </li>
+       <li>
+       <p><span class="title">Appearance</span>: Allows you to set the font used by 
+       NetIDMgr.</p>
+       </li>
+       <li>
+       <p><span class="title">Identities</span>: Default settings for all identities 
+       and settings for each identity. Details <a href="#cfg_idents">below</a>.</p>
+       </li>
+       <li>
+       <p><span class="title">Notifications</span>: Notification and timer options. 
+       NetIDMgr can issue warnings when credentials are about to expire. This configuration 
+       panel allows you to set the thresholds at which these warnings are issued. For 
+       example, if the warning timeout is set for 10 minutes, NetIDMgr will issue a 
+       warning 10 minutes before a credential expires.</p>
+       <p>The panel also allows you to control the credentials renew timer. If the 
+       timer is disabled, NetIDMgr will not automatically attempt to renew credentials. 
+       If the <span class="pre">Renew at half life intervals when possible</span> option 
+       is set, then the timer will expire after the credential has less than half its 
+       lifetime left. If the renewal operation fails, it will attempt another renwal 
+       after half of the remaining liftime is over (i.e. when the credential has less 
+       than 1/4 of its original lifetime left) and so on. </p>
+       </li>
+       <li>
+       <p><span class="title">Plugins</span>: Enable/disable and check the status of 
+       registered plug-ins. Enabling or disabling a plug-in only takes effect after 
+       a restart of NetIDMgr.</p>
+       </li>
+       <li>
+       <p><span class="title">Kerberos v5</span>: Kerberos v5 Credential Provider Configuration</p>
+       </li>
+       <li>
+       <p><span class="title">Kerberos v4</span>: Kerberos v4 Credential Provider Configuration</p>
+       </li>
+</ul>
+<p></p>
+<h3>General Options</h3>
+<p>The General options dialog, accessed via the Options menu, allows you to configure 
+operational properties specific to the NetIdMgr application.</p>
+<p><img src="images/screen_config_general.png" /> </p>
+<p>The <b>Obtain new credentials at startup (if none are present)</b> checkbox will 
+determine whether or not NetIdMgr will display the New Credentials dialog at startup 
+when no valid credentials exist.</p>
+<p>The <b>Destroy all credentials on exit </b>option can be used to empty all of 
+the credential caches when the NetIdMgr is terminated.</p>
+<p>The <b>Run NetIdMgr in taskbar notification area after window close </b>checkbox 
+determines the behavior of the window close button. When checked, NetIdMgr will 
+close the window but will continue running and can be accessed from the taskbar 
+notification area. When unchecked, NetIdMgr will behave as if File-&gt;Exit was selected 
+from the menu.</p>
+<p><b>Clicking on the notification icon</b> can be configured to either Show Network 
+Identity Manager or Obtain New Credentials. This option controls which menu item 
+on the notification icon menu is the default action.</p>
+<p>The <b>Monitor network connectivity</b> option determines whether or not NetIdMgr 
+monitors the configuration of IP addresses on the machine. When IP addresses are 
+added or removed and this feature is activated, the NetIdMgr will probe the identity 
+management servers (e.g., Kerberos Key Distribution Centers) to determine if they 
+are reachable and if so will automatically obtain credentials.</p>
+<p>The <b>Log trace events to trace log at the following location</b> option is 
+used to activate a log file that can be used to help debug the behavior of NetIdMgr 
+and its plug-ins. Press the <b>Show log</b> button to view the log file in Windows 
+Notepad. </p>
+
+<h3>Appearance Options</h3>
+<p>The Appearance Options page can be used to select an alternate typeface to be 
+used when displaying credentials in the NetIdMgr.</p>
+<p><img src="images/screen_config_appearance.png" /> </p>
+
+
+<a name="cfg_idents"></a>
+<h3>Configuration of default settings for all identities</h3>
+<p>The <span class="pre">Identities</span> configuration panel allows you to set 
+the defaults that will be used for all identities. However, most of the settings 
+displayed here can be overridden with specific per-identity settings. </p>
+<p>The panel will have a number of sub panels (or tabs) corresponding to each plug-in 
+that maintains per-identity configuration. </p>
+<p>A list of identities for which configuration information is maintained will be 
+shown under the main <span class="pre">Identities</span> configuration panel name. 
+Each of these correspond to a <a href="#cfg_ident">per identity</a> configuration 
+panel. </p>
+<p>Note that adding or removing an identity in the configuration panel only has 
+the effect of adding or removing the identity to or from the list of identities 
+for which configuration information is maintained. </p>
+
+<h4>Global Identity Settings</h4>
+<p><img src="images/screen_config_idents.png" /> </p>
+<p class="MsoNormal">There are three general settings that can be used to set 
+global defaults.</p>
+<p class="MsoNormal">The <b>Monitor credential expiration</b> setting determines 
+whether or not NetIdMgr should monitor the credential lifetimes and issue 
+expiration notifications.&nbsp;&nbsp; This value is used as the default for all new 
+identities.</p>
+<p class="MsoNormal">The <b>Automatically renew</b> setting determines if <i>
+renewable</i> credentials are automatically renewed prior to expiration.&nbsp; This 
+value is used as the default for all new identities.</p>
+<p class="MsoNormal">The <b>Always show in the credentials list (Pinned)</b> 
+setting determines whether new identities are always pinned within the 
+credentials list.&nbsp; A pinned identity will always be displayed regardless of 
+whether or not there are credentials associated with it.</p>
+
+<h4>Global Kerberos v5 Identity Settings</h4>
+<p><img src="images/screen_config_global_krb5.png" /> </p>
+<p class="MsoNormal">The global Kerberos v5 settings define default credential 
+lifetimes and minimum and maximum values for use in constructing the slider 
+controls used to set the lifetimes.&nbsp; </p>
+<p class="MsoNormal">There are two expiration times associated with Kerberos 
+tickets.&nbsp; The first specifies the length of the time period during which the 
+tickets are valid for use.&nbsp; The second specifies the length of the renewable 
+lifetime.&nbsp; Valid Kerberos tickets may have their valid use lifetime repeatedly 
+extended up until the renewable lifetime expires.&nbsp; The settings on this page are 
+used to configure default lifetime values for NetIdMgr to use when requesting 
+Kerberos tickets from the Kerberos server (key distribution center).&nbsp; The 
+Kerberos server may issue tickets with shorter lifetimes than were requested.</p>
+<p class="MsoNormal">The <b>Renewable</b>, <b>Forwardable</b>, and <b>
+Addressless</b> options determine whether or not new identities default to 
+obtaining Kerberos v5 tickets with these options.</p>
+<p class="MsoNormal">When <b>Forwardable </b>tickets are received from the 
+Kerberos Server, these tickets can be forwarded to a remote host when you 
+connect via telnet, ssh, ftp, rlogin, or similar applications.&nbsp; When tickets are 
+forwarded, there is no need to obtain Kerberos tickets again to access 
+Kerberized services on the remote host.&nbsp;&nbsp; <b>Forwardable</b> tickets are often 
+required when authenticating to a remote host using ssh or ftp when the remote 
+host requires the ability to authenticate to a remote file system such as AFS.</p>
+<p class="MsoNormal">When <b>Renewable</b> tickets are received from the 
+Kerberos Server, the ticket lifetimes may be renewed without prompting the user 
+for her password.&nbsp; This allows Kerberos tickets to be issued with short 
+lifetimes allowing compromised accounts to be disabled on short notice without 
+requiring the user to enter a password every few hours.&nbsp; When combined with <b>
+Automatic Ticket Renewal</b>, NetIdMgr can maintain valid tickets for a week, a 
+month, or longer by automatically renewing tickets prior to their expiration.&nbsp; 
+The ability to renew tickets without a password is limited by the ticket\92
+renewable lifetime as issued by the Kerberos Server.</p>
+<p class="MsoNormal">When <b>Addressless</b> is selected, the tickets do not 
+contain IP address information.&nbsp; This enables the tickets to be used from behind 
+Network Address Translators which are frequently found in Cable and DSL Modems.</p>
+<p class="MsoNormal">The minimum and maximum ranges are used by the ticket 
+initialization dialog box when constructing the Lifetime and Renewable Lifetime 
+sliders.&nbsp; These sliders can be used to modify the requested ticket lifetimes 
+when Kerberos tickets are initialized.</p>
+
+<h4>Global Kerberos v4 Identity Settings</h4>
+<p><img src="images/screen_config_global_krb4.png" /> </p>
+<p class="MsoNormal">When the <b>Obtain Kerberos v4 credentials</b> button is 
+checked, NetIdMgr will attempt to retrieve Kerberos v4 credentials when ticket 
+initialization, renewal, or importation is performed. &nbsp;Kerberos realms are 
+increasingly configured to support only Kerberos v5 (e.g., Windows Active 
+Directory Domains.)&nbsp; If the realms you use do not support Kerberos v4 it is 
+suggested that this button be unchecked.</p>
+<p class="MsoNormal">Be aware that only the default identity can obtain Kerberos 
+v4 credentials.&nbsp;&nbsp; This limitation is due to the inability of Kerberos v4 
+applications on Microsoft Windows to specify a credentials cache. </p>
+
+
+<a name="cfg_ident"></a>
+<h3>Per identity configuration</h3>
+<p>You can access the per-identity configuration panel for a specific identity by 
+selecting the identity name from the list of configuration panels in the configuration 
+dialog. </p>
+<p>These panels are similar to the <span class="pre">Identities</span> configuration 
+panel, but they change per-identity settings. Changes you make in these panels will 
+override the defaults set in the <span class="pre">Identities</span> panel. </p>
+<h4>Per identity General Configuration</h4>
+<p><img src="images/screen_config_ident.png" /> </p>
+<p class="MsoNormal">The General page contains a <b>Remove Identity</b> button 
+that can be used to delete this Identity from the Network Identity Manager.</p>
+
+<h4>Per identity Kerberos v5 Configuration</h4>
+
+<p><img src="images/screen_config_ident_krb5.png" /> </p>
+<p class="MsoNormal">The Kerberos v5 page displays the name of the credential 
+cache currently associated with the Identity.</p>
+
+<h4>Per identity Kerberos v4 Configuration</h4>
+
+<p><img src="images/screen_config_ident_krb4.png" /></p>
+<p class="MsoNormal">The Kerberos v4 page is optional and may not appear on all 
+systems.&nbsp; Only one identity can obtain Kerberos v4 credentials at a time.&nbsp; </p>
+
+<h3>Notification Configuration</h3>
+
+<p><img src="images/screen_config_notifications.png" /> </p>
+<p class="MsoNormal">The <b>Renew automatically at</b> check box determines 
+whether or not renewable tickets will be renewed by NetIdMgr when they reach the 
+specified time remaining.&nbsp;&nbsp; </p>
+<p class="MsoNormal">The <b>Initial warning at</b> check box determines whether 
+or not a warning will be issued when the specified time remaining is reached.</p>
+<p class="MsoNormal">The <b>Final warning at</b> check box determines whether or 
+not a warning will be issued when the specified time remaining is reached.</p>
+<p class="MsoNormal">Notifications are performed in two ways.&nbsp; First, icons are 
+displayed next to the affected credentials in the flags column of the display.&nbsp; 
+Second, a balloon tip is displayed off of the NetIdMgr taskbar notification area 
+icon.</p>
+
+<h3>Plug-in Configuration</h3>
+<p><img src="images/screen_config_plug_ins.png" /> </p>
+<p><span style="font-size: 10.0pt; font-family: Times New Roman">The Plug-ins 
+and Modules page provides status information on the currently loaded plug-ins 
+and modules include a description of their purpose; whether or not it was loaded 
+properly; which other modules are required; and what organization developed it.
+</span> </p>
+
+<h4>Kerberos v5 Plug-in Configuration</h4>
+
+<p><img src="images/screen_config_plug_in_krb5.png" /> </p>
+<p class="MsoNormal">The <b>Kerberos v5 Configuration</b> tab allows you to 
+alter the behavior of&nbsp; the Kerberos v5 identity provider.&nbsp; </p>
+<p class="MsoNormal">In the <b>Default Realm</b> field, select a Kerberos realm 
+from the dropdown list.</p>
+<p class="MsoBodyTextIndent2" style="text-indent:0pt">The <b>Include all 
+configured realms in New Credentials realm list</b> determines whether all of 
+the realms declared in the Kerberos v5 Configuration file are included in the 
+realms list of the <b>Obtain New Credentials</b> dialog.&nbsp; If disabled, only the 
+realms previously used to obtain credentials are displayed.</p>
+<p class="MsoBodyTextIndent2" style="text-indent:0pt">The <b>Configuration File
+</b>field displays the path to the Kerberos v5 configuration file, krb5.ini.</p>
+<p class="MsoNormal"><span style="display: none">The Kerberos libraries depend 
+on configuration files for their proper operation.&nbsp; When <b>Create file if 
+missing </b>is checked, NetIdMgr will construct replacements for missing 
+configuration files upon startup.&nbsp; This is performed by extracting Kerberos 
+configuration information from the local Windows registry and the Domain Name 
+System.&nbsp; The contents of the created file may then be edited using the <b>
+Kerberos Properties Dialog</b>.&nbsp; [This functionality is not available in this 
+release.]</span></p>
+<p class="MsoNormal">The field labeled <b>Host Name</b> displays the name of 
+your local machine.&nbsp; The <b>Domain Name</b> field displays the domain to which 
+your local machine currently belongs.&nbsp;</p>
+<p class="MsoNormal">The <b>Import Tickets</b> listbox allows you to configure 
+how NetIdMgr interacts with the Microsoft Kerberos Authentication Provider.&nbsp; 
+NetIdMgr will automatically import Kerberos Tickets from the Microsoft LSA at 
+startup depending upon the selected option and whether or not the Kerberos 
+Authentication Provider was used for Windows Logon authorization.&nbsp; </p>
+<ul style="margin-top: 0pt; margin-bottom: 0pt" type="disc">
+       <li class="MsoNormal"><b>Never</b> means do not import tickets from the 
+       MSLSA; </li>
+       <li class="MsoNormal"><b>Always</b> means do import tickets from the MSLSA; 
+       and </li>
+       <li class="MsoNormal"><b>Only when the Principal matches</b> means import 
+       tickets from the MSLSA only if the MSLSA Kerberos principal belongs to the 
+       Default Realm.</li>
+</ul>
+<p class="MsoNormal">When the Windows Logon identity is imported and is 
+configured as the default identity, the MIT credential cache will be used in 
+preference to the MSLSA credential cache.</p>
+
+<h4>Kerberos v5 Realm Configuration</h4>
+<p><img src="images/screen_config_plug_in_krb5_realm.png" /> </p>
+
+<h4>Kerberos v5 Credential Cache Configuration</h4>
+<p><img src="images/screen_config_plug_in_krb5_ccache.png" /> </p>
+<p class="MsoNormal">The Kerberos Realm Configuration dialog can be used to 
+manage the contents of the [Realms] and [Domain_Realm] sections of the Kerberos 
+v5 configuration file.</p>
+
+<h4>Kerberos v4 Plug-in Configuration</h4>
+<p><img src="images/screen_config_plug_in_krb4.png" /> </p>
+<p class="MsoBodyTextIndent2" style="text-indent:0pt">Here, you can specify the 
+name of the in-memory cache used to store the Kerberos v4 tickets.&nbsp; The format 
+of the name is \93API:\94 followed by the cache name.&nbsp; Disk caches are not supported 
+by Kerberos for Windows.</p>
+<p class="MsoNormal">The paths to the Kerberos v4 configuration files: krb.con 
+and krbrealm.con may be viewed from this dialog.&nbsp; The default is to store the 
+configuration files in the Windows directory.</p>
+
+</body>
+
 </html>
\ No newline at end of file
index 353443fab5809bfcc2f3a1e125bc1048d45cdeae..85e05fdb3c6403b154124a4101b56b75e8fe41a0 100644 (file)
@@ -1,73 +1,73 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager Notification Icon</title>\r
-  <meta name="description" content="NetIDMgr Notification Icon">\r
-  <meta name="keywords" content="icon, netidmgr, notification, tray">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager Notification Icon</h1>\r
-<h3>Visual Representation of Identity State Information</h3>\r
-\r
-<p>When Network Identity Manager is running, an icon will appear in the taskbar notification area.&nbsp;  The icon will change to reflect the current state of\r
-the managed credentials.</p>\r
-\r
-<p>The icons and their meanings are described below:</p>\r
-\r
-<table width="100%" border="1">\r
-\r
-<tr>\r
-<td><img src="images/appicon_empty.png" /></td>\r
-<td>There are no managed credentials for any identity.</td>\r
-</tr>\r
-\r
-<tr>\r
-<td><img src="images/appicon_good.png" /></td>\r
-<td>There are valid credentials for all the identities.</td>\r
-</tr>\r
-\r
-<tr>\r
-<td><img src="images/appicon_warnexp.png" /></td> <td>Some of the\r
-credentials will expire in the next few minutes.  This icon will be\r
-displayed even if automatic renewals are enabled.  In this case, the\r
-credentials in question may get renewed before they expire, and the\r
-icon will change to reflect this change.</td> </tr>\r
-\r
-<tr>\r
-<td><img src="images/appicon_expired.png" /></td>\r
-<td>At least one identity's credentials have expired.</td>\r
-</tr>\r
-\r
-<tr>\r
-<td><img src="images/appicon_warning.png" /></td> <td>A warning\r
-message is waiting to be displayed.  Click the icon to view the\r
-warning message.</td> </tr>\r
-\r
-</table>\r
-\r
-<h3>Notification Icon Menu</h3>\r
-<p>Clicking on the notification with the second mouse button displays a menu \r
-(see right) which contains the most commonly used Network Identity Manager \r
-operations.&nbsp; </p>\r
-\r
-<ul>\r
-  <li><a href="act_new_creds.htm">Obtaining new credentials</a></li>\r
-  <li><a href="act_destroy_creds.htm">Destroying credentials</a></li>\r
-  <li><a href="act_import_creds.htm">Import credentials from the Microsoft Logon \r
-       Session cache</a></li>\r
-  <li><a href="act_renew_creds.htm">Renew credentials</a></li>\r
-  <li><a href="act_chpw.htm">Change password</a></li>\r
-</ul>\r
-\r
-<div class="sidebar">\r
-<img src="images/notification_icon_menu.png" />\r
-<p class="caption">Figure 1. Notification Icon Menu</p>\r
-</div>\r
-<p></p>\r
-<h3>Notification Icon Default Action</h3>\r
-\r
-<p>Clicking on the icon with the first mouse button will open or close the Network Identity Manager application window or open the Obtain New Credentials dialog based upon the current configuration.  The behavior can be adjusted from the Options-&gt;General page.  Clicking with the second mouse button will display a menu of commands.</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager Notification Icon</title>
+  <meta name="description" content="NetIDMgr Notification Icon">
+  <meta name="keywords" content="icon, netidmgr, notification, tray">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager Notification Icon</h1>
+<h3>Visual Representation of Identity State Information</h3>
+
+<p>When Network Identity Manager is running, an icon will appear in the taskbar notification area.&nbsp;  The icon will change to reflect the current state of
+the managed credentials.</p>
+
+<p>The icons and their meanings are described below:</p>
+
+<table width="100%" border="1">
+
+<tr>
+<td><img src="images/appicon_empty.png" /></td>
+<td>There are no managed credentials for any identity.</td>
+</tr>
+
+<tr>
+<td><img src="images/appicon_good.png" /></td>
+<td>There are valid credentials for all the identities.</td>
+</tr>
+
+<tr>
+<td><img src="images/appicon_warnexp.png" /></td> <td>Some of the
+credentials will expire in the next few minutes.  This icon will be
+displayed even if automatic renewals are enabled.  In this case, the
+credentials in question may get renewed before they expire, and the
+icon will change to reflect this change.</td> </tr>
+
+<tr>
+<td><img src="images/appicon_expired.png" /></td>
+<td>At least one identity's credentials have expired.</td>
+</tr>
+
+<tr>
+<td><img src="images/appicon_warning.png" /></td> <td>A warning
+message is waiting to be displayed.  Click the icon to view the
+warning message.</td> </tr>
+
+</table>
+
+<h3>Notification Icon Menu</h3>
+<p>Clicking on the notification with the second mouse button displays a menu 
+(see right) which contains the most commonly used Network Identity Manager 
+operations.&nbsp; </p>
+
+<ul>
+  <li><a href="act_new_creds.htm">Obtaining new credentials</a></li>
+  <li><a href="act_destroy_creds.htm">Destroying credentials</a></li>
+  <li><a href="act_import_creds.htm">Import credentials from the Microsoft Logon 
+       Session cache</a></li>
+  <li><a href="act_renew_creds.htm">Renew credentials</a></li>
+  <li><a href="act_chpw.htm">Change password</a></li>
+</ul>
+
+<div class="sidebar">
+<img src="images/notification_icon_menu.png" />
+<p class="caption">Figure 1. Notification Icon Menu</p>
+</div>
+<p></p>
+<h3>Notification Icon Default Action</h3>
+
+<p>Clicking on the icon with the first mouse button will open or close the Network Identity Manager application window or open the Obtain New Credentials dialog based upon the current configuration.  The behavior can be adjusted from the Options-&gt;General page.  Clicking with the second mouse button will display a menu of commands.</p>
+
+</body>
 </html>
\ No newline at end of file
index 425af0b99394be2937237f330e7029fcec674a06..351cafd5fc39c33ccf39c4659e5ab3a2e4fbefc0 100644 (file)
@@ -1,91 +1,91 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Managing the credentials view layout</title>\r
-  <meta name="description" content="Managing the credentials view layout">\r
-  <meta name="keywords" content="view, layout">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-<param name="Keyword" value="Credential View Layouts">\r
-<param name="Keyword" value="Sorting credentials by a column">\r
-<param name="Keyword" value="Grouping credentials by a column">\r
-<param name="Keyword" value="Selecting Columns">\r
-</OBJECT>\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Managing the credentials view layout</h1>\r
-\r
-<p>The credentials view layout provides an outlined view of the\r
-credentials that are being managed by NetIDMgr.  The columns that are\r
-displayed in the window, the columns that are used for grouping and\r
-sorting the list of credentials can be customized. </p>\r
-\r
-<p>The following sections provide more details on the types of\r
-customizations that can be performed:</p>\r
-\r
-<ul>\r
-  <li><a href="#predef">Predefined layouts</a></li>\r
-  <li><a href="#addcol">Adding and removing columns.</a></li>\r
-  <li><a href="#sort">Sorting by a column.</a></li>\r
-  <li><a href="#group">Grouping by a column.</a></li>\r
-</ul>\r
-\r
-<a name="predef"></a>\r
-<h3>Pre-defined layouts</h3>\r
-\r
-<p>The predefined layouts in NetIDMgr are:</p>\r
-\r
-<ul>\r
-\r
-  <li><span class="title">By Identity</span>: Credentials grouped by\r
-  identity, credentials type and location, and finally sorted by\r
-  credential name.</li>\r
-\r
-  <li><span class="title">By Type</span>: Credentials grouped by\r
-  credentials type and then by identity.</li>\r
-\r
-  <li><span class="title">By Location</span>: Credentials grouped by\r
-  location, identity and then by credentials type.  The location is\r
-  reported by individual credentials providers that indicate where\r
-  each credential is stored. For Kerberos 5 and Kerberos 4, this is a\r
-  credentials cache name.</li>\r
-\r
-</ul>\r
-\r
-<a name="addcol"></a>\r
-<h3>Adding and removing columns</h3>\r
-\r
-<p>The <span class="pre">View Columns</span> menu lists all the\r
-columns that are available for display.  Each column that is already\r
-displayed will have a check mark next to it.  Selecting a column that\r
-is not currently being displayed will add that column to the display.\r
-Selecting a column that is is being displayed will remove it from the\r
-display.</p>\r
-\r
-<p>This menu can be reached either by right-clicking the column header\r
-area or by invoking the <span class="pre">View</span> menu.  The menu\r
-is shown below.</p>\r
-\r
-<p><img src="images/screen_menu_view_cols.png"/> </p>\r
-\r
-<a name="sort"></a>\r
-<h3>Sorting by a column</h3>\r
-\r
-<p>Clicking on a column header will change the sort order of the\r
-column if it is already being used as a sort key.  If the colunm is\r
-not currently being used as a sort key, clicking on the column header\r
-will start sorting in increasing order by that column.</p>\r
-\r
-<p>Double-clicking a column that is not used for grouping will stop\r
-sorting by that column.</p>\r
-\r
-<a name="group"></a>\r
-<h3>Grouping by a column</h3>\r
-\r
-<p>Double-clicking on a column header will start grouping by that\r
-column if the column is currently not being used as a sort key.  If\r
-the column is currently being used for grouping, then double-clicking\r
-will stop it from being used for grouping.</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Managing the credentials view layout</title>
+  <meta name="description" content="Managing the credentials view layout">
+  <meta name="keywords" content="view, layout">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  <Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+<param name="Keyword" value="Credential View Layouts">
+<param name="Keyword" value="Sorting credentials by a column">
+<param name="Keyword" value="Grouping credentials by a column">
+<param name="Keyword" value="Selecting Columns">
+</OBJECT>
+</head>
+<body>
+
+<h1>Network Identity Manager - Managing the credentials view layout</h1>
+
+<p>The credentials view layout provides an outlined view of the
+credentials that are being managed by NetIDMgr.  The columns that are
+displayed in the window, the columns that are used for grouping and
+sorting the list of credentials can be customized. </p>
+
+<p>The following sections provide more details on the types of
+customizations that can be performed:</p>
+
+<ul>
+  <li><a href="#predef">Predefined layouts</a></li>
+  <li><a href="#addcol">Adding and removing columns.</a></li>
+  <li><a href="#sort">Sorting by a column.</a></li>
+  <li><a href="#group">Grouping by a column.</a></li>
+</ul>
+
+<a name="predef"></a>
+<h3>Pre-defined layouts</h3>
+
+<p>The predefined layouts in NetIDMgr are:</p>
+
+<ul>
+
+  <li><span class="title">By Identity</span>: Credentials grouped by
+  identity, credentials type and location, and finally sorted by
+  credential name.</li>
+
+  <li><span class="title">By Type</span>: Credentials grouped by
+  credentials type and then by identity.</li>
+
+  <li><span class="title">By Location</span>: Credentials grouped by
+  location, identity and then by credentials type.  The location is
+  reported by individual credentials providers that indicate where
+  each credential is stored. For Kerberos 5 and Kerberos 4, this is a
+  credentials cache name.</li>
+
+</ul>
+
+<a name="addcol"></a>
+<h3>Adding and removing columns</h3>
+
+<p>The <span class="pre">View Columns</span> menu lists all the
+columns that are available for display.  Each column that is already
+displayed will have a check mark next to it.  Selecting a column that
+is not currently being displayed will add that column to the display.
+Selecting a column that is is being displayed will remove it from the
+display.</p>
+
+<p>This menu can be reached either by right-clicking the column header
+area or by invoking the <span class="pre">View</span> menu.  The menu
+is shown below.</p>
+
+<p><img src="images/screen_menu_view_cols.png"/> </p>
+
+<a name="sort"></a>
+<h3>Sorting by a column</h3>
+
+<p>Clicking on a column header will change the sort order of the
+column if it is already being used as a sort key.  If the colunm is
+not currently being used as a sort key, clicking on the column header
+will start sorting in increasing order by that column.</p>
+
+<p>Double-clicking a column that is not used for grouping will stop
+sorting by that column.</p>
+
+<a name="group"></a>
+<h3>Grouping by a column</h3>
+
+<p>Double-clicking on a column header will start grouping by that
+column if the column is currently not being used as a sort key.  If
+the column is currently being used for grouping, then double-clicking
+will stop it from being used for grouping.</p>
+
+</body>
 </html>
\ No newline at end of file
index 4c1b7ab8377286c5b31ca55e79dd9b3b822f568f..3e7b5fa82fe3412a8ede631b85f2e7f254b72663 100644 (file)
@@ -1,70 +1,70 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Starting Network Identity Manager</title>\r
-  <meta name="description" content="starting NetIDMgr">\r
-  <meta name="keywords" content="starting">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Starting Network Identity Manager</h1>\r
-\r
-<h3>Opening the Network Identity Manager window from the notification icon</h3>\r
-\r
-<p>Depending on how Network Identity Manager was installed, it may be configured \r
-with a shortcut in the Startup Folder, or it may require a manual start. NetIDMgr is a\r
-notification tray application and therefore it is not listed in the Microsoft \r
-Windows task bar.&nbsp; This design is based on the assumption that most users \r
-rarely interact directly with the application.</p>\r
-\r
-<div class="sidebar">\r
-<img src="images/screen_tray_icon.png"/>\r
-<p class="caption">Figure 1: NetIDMgr notification icon</p>\r
-</div>\r
-\r
-<p>When NetIDMgr is running, it places an icon in the system\r
-notification area (sometimes referred to as the "system tray") as\r
-shown in figure 1.  Details about the state information represented by\r
-the icon can be found <a href="use_icon.htm">here</a>.</p>\r
-\r
-<p>Left clicking on this icon executes the default action which either changes \r
-the view state of the credential list or displays the <i>Obtain New Credentials</i> \r
-dialog. Right clicking on the icon displays a menu.</p>\r
-\r
-<h3>Starting Network Identity Manager from the Start Menu or command line</h3>\r
-\r
-<div class="sidebar">\r
-<img src="images/screen_app_icon.png" />\r
-<p class="caption">Figure 2: NetIDMgr application shortcut</p>\r
-</div>\r
-\r
-<p>If NetIDMgr was not configured to start automatically when you\r
-login to Windows, then you need to start it either from the\r
-commandline or the start menu.  The start menu application icon is\r
-under "Kerberos for Windows" as shown in figure 2.</p>\r
-\r
-<p>Alternatively, you can type 'netidmgr' at a command shell to start\r
-NetIDMgr as well.  When starting this way, you may specify additional\r
-<a href="cmdline_netidmgr.htm">command line options</a>.</p>\r
-\r
-<h3>Configuring startup options</h3>\r
-\r
-<p>\r
-Note that you can configure options related to the startup of NetIDMgr\r
-by using the NetIDMgr configuration dialog box.  You can use the menu\r
-items under the <span class="pre">Options</span> menu to invoke the\r
-configuration dialog.\r
-</p>\r
-\r
-<p>\r
-Only one instance of NetIDMgr can be running at any one time.\r
-Attempting to start NetIDMgr while it is still running will not do\r
-anything, unless you provide any command line options that trigger\r
-some action in the running application instance.  If more than one\r
-version of NetIDMgr is installed on the system, and the older version\r
-is running at the time the newer version is started, the older version\r
-will exit allowing the newer version to take over.\r
-</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Starting Network Identity Manager</title>
+  <meta name="description" content="starting NetIDMgr">
+  <meta name="keywords" content="starting">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Network Identity Manager - Starting Network Identity Manager</h1>
+
+<h3>Opening the Network Identity Manager window from the notification icon</h3>
+
+<p>Depending on how Network Identity Manager was installed, it may be configured 
+with a shortcut in the Startup Folder, or it may require a manual start. NetIDMgr is a
+notification tray application and therefore it is not listed in the Microsoft 
+Windows task bar.&nbsp; This design is based on the assumption that most users 
+rarely interact directly with the application.</p>
+
+<div class="sidebar">
+<img src="images/screen_tray_icon.png"/>
+<p class="caption">Figure 1: NetIDMgr notification icon</p>
+</div>
+
+<p>When NetIDMgr is running, it places an icon in the system
+notification area (sometimes referred to as the "system tray") as
+shown in figure 1.  Details about the state information represented by
+the icon can be found <a href="use_icon.htm">here</a>.</p>
+
+<p>Left clicking on this icon executes the default action which either changes 
+the view state of the credential list or displays the <i>Obtain New Credentials</i> 
+dialog. Right clicking on the icon displays a menu.</p>
+
+<h3>Starting Network Identity Manager from the Start Menu or command line</h3>
+
+<div class="sidebar">
+<img src="images/screen_app_icon.png" />
+<p class="caption">Figure 2: NetIDMgr application shortcut</p>
+</div>
+
+<p>If NetIDMgr was not configured to start automatically when you
+login to Windows, then you need to start it either from the
+commandline or the start menu.  The start menu application icon is
+under "Kerberos for Windows" as shown in figure 2.</p>
+
+<p>Alternatively, you can type 'netidmgr' at a command shell to start
+NetIDMgr as well.  When starting this way, you may specify additional
+<a href="cmdline_netidmgr.htm">command line options</a>.</p>
+
+<h3>Configuring startup options</h3>
+
+<p>
+Note that you can configure options related to the startup of NetIDMgr
+by using the NetIDMgr configuration dialog box.  You can use the menu
+items under the <span class="pre">Options</span> menu to invoke the
+configuration dialog.
+</p>
+
+<p>
+Only one instance of NetIDMgr can be running at any one time.
+Attempting to start NetIDMgr while it is still running will not do
+anything, unless you provide any command line options that trigger
+some action in the running application instance.  If more than one
+version of NetIDMgr is installed on the system, and the older version
+is running at the time the newer version is started, the older version
+will exit allowing the newer version to take over.
+</p>
+
+</body>
 </html>
\ No newline at end of file
index 103ae5fdf0204fa75bbefffda924240c87659968..c9808effa088fff2a42d51289d957b718e961016 100644 (file)
@@ -1,57 +1,57 @@
-<html>\r
-<head>\r
-  <title>Using Network Identity Manager</title>\r
-  <meta name="description" content="Using NetIDMgr">\r
-  <meta name="keywords" content="using">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-</head>\r
-<body>\r
-\r
-<h1>Using Network Identity Manager</h1>\r
-\r
-<p>\r
-Depending on how Network Identity Manager was installed, it might already be running\r
-in the Windows taskbar notification area or it might need to be started\r
-manually. See the topic <a href="use_start.htm">Starting\r
-Network Identity Manager</a> for details.&nbsp;\r
-</p>\r
-<p>\r
-To open the NetIDMgr window when the <a href="use_icon.htm">application\r
-icon</a> is displayed in the Windows taskbar notification area, click on the \r
-icon with the 2nd mouse button (usually the right mouse button) and select <b>Show Network Identity Manager window</b> from the menu.  \r
-</p>\r
-<p>\r
-If NetIdMgr is not displayed in the Windows taskbar notification area, it can be \r
-started from the\r
-Start Menu, or type 'netidmgr' at a command prompt.\r
-</p>\r
-\r
-<p>\r
-Once the NetIDMgr window is visible, you will be presented with a view\r
-of your existing identities, or a message notifying you that you\r
-don't have any.&nbsp;&nbsp; Details of the credentials view objects <a\r
-href="wnd_main.htm">can be found here.</a>\r
-</p>\r
-\r
-<p>\r
-Brief overviews of how to perform common tasks are linked below:\r
-</p>\r
-\r
-<ul>\r
-  <li><a href="act_new_creds.htm">Obtaining new credentials</a></li>\r
-  <li><a href="act_destroy_creds.htm">Destroying credentials</a></li>\r
-  <li><a href="act_import_creds.htm">Import credentials from the Microsoft Logon \r
-       Session cache</a></li>\r
-  <li><a href="act_renew_creds.htm">Renew credentials</a></li>\r
-  <li><a href="act_chpw.htm">Change password</a></li>\r
-  <li><a href="use_layout.htm">Customizing the advanced credentials view layout</a></li>\r
-  <li><a href="use_config.htm">Configuring Network Identity Manager</a></li>\r
-       <li><a href="tb_standard.htm">Using the Toobar</a></li>\r
-</ul>\r
-\r
-<p>\r
-A more comprehensive list of how-to topics can be found in the \r
-<a href="howdoi.htm">How do I...</a> section.</p>\r
-\r
-</body>\r
+<html>
+<head>
+  <title>Using Network Identity Manager</title>
+  <meta name="description" content="Using NetIDMgr">
+  <meta name="keywords" content="using">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+</head>
+<body>
+
+<h1>Using Network Identity Manager</h1>
+
+<p>
+Depending on how Network Identity Manager was installed, it might already be running
+in the Windows taskbar notification area or it might need to be started
+manually. See the topic <a href="use_start.htm">Starting
+Network Identity Manager</a> for details.&nbsp;
+</p>
+<p>
+To open the NetIDMgr window when the <a href="use_icon.htm">application
+icon</a> is displayed in the Windows taskbar notification area, click on the 
+icon with the 2nd mouse button (usually the right mouse button) and select <b>Show Network Identity Manager window</b> from the menu.  
+</p>
+<p>
+If NetIdMgr is not displayed in the Windows taskbar notification area, it can be 
+started from the
+Start Menu, or type 'netidmgr' at a command prompt.
+</p>
+
+<p>
+Once the NetIDMgr window is visible, you will be presented with a view
+of your existing identities, or a message notifying you that you
+don't have any.&nbsp;&nbsp; Details of the credentials view objects <a
+href="wnd_main.htm">can be found here.</a>
+</p>
+
+<p>
+Brief overviews of how to perform common tasks are linked below:
+</p>
+
+<ul>
+  <li><a href="act_new_creds.htm">Obtaining new credentials</a></li>
+  <li><a href="act_destroy_creds.htm">Destroying credentials</a></li>
+  <li><a href="act_import_creds.htm">Import credentials from the Microsoft Logon 
+       Session cache</a></li>
+  <li><a href="act_renew_creds.htm">Renew credentials</a></li>
+  <li><a href="act_chpw.htm">Change password</a></li>
+  <li><a href="use_layout.htm">Customizing the advanced credentials view layout</a></li>
+  <li><a href="use_config.htm">Configuring Network Identity Manager</a></li>
+       <li><a href="tb_standard.htm">Using the Toobar</a></li>
+</ul>
+
+<p>
+A more comprehensive list of how-to topics can be found in the 
+<a href="howdoi.htm">How do I...</a> section.</p>
+
+</body>
 </html>
\ No newline at end of file
index 263be8c476260390a88c70a502e2a0961d0b13d2..a7b1f53b128055ce89f2c995dd118c3608272316 100644 (file)
-<html>\r
-<head>\r
-  <title>Welcome to the Network Identity Manager</title>\r
-  <meta name="description" content="Welcome">\r
-  <meta name="keywords" content="welcome">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-       <style>\r
-</style>\r
-</head>\r
-\r
-<h1>Welcome to the Network Identity Manager</h1>\r
-\r
-<div class="inline">\r
-<img src="images/logo.jpg" width="100" height="100"/>\r
-</div>\r
-\r
-<p>Network Identity Manager (NetIdMgr) is a graphical \r
-tool designed to simplify the management of network identities and their credentials \r
-which are used by network authentication protocols while providing \r
-secure access to network services.&nbsp; When NetIDMgr is used with Kerberos v5 each \r
-network identity is a unique Kerberos principal name and the credentials \r
-are Kerberos v5 tickets.&nbsp; Kerberos v5 tickets can be used by NetIDMgr to \r
-obtain Andrew File System (AFS) tokens and X.509 public key certificates if the \r
-appropriate plug-ins are available.</p>\r
-<p>When you log into Microsoft Windows with a domain account, \r
-your account name and the Windows Domain name when combined form a Kerberos \r
-principal name.&nbsp; As an example, \93WINDOWS\jaltman\94 is actually a short form \r
-representation of\r
-jaltman@WINDOWS.SECURE-ENDPOINTS.COM.&nbsp;&nbsp; Microsoft Windows uses \r
-Kerberos-based network identities for all domain-based network authentications.&nbsp;\r
-</p>\r
-<p>Since Microsoft Windows already provides a network \r
-identity, why do you need NetIdMgr?&nbsp; Here are some examples:</p>\r
-<ol>\r
-       <li>Your only network identity is your Windows Domain \r
-       account but you have third-party applications that rely on MIT Kerberos for \r
-       authentication for access to remote files, e-mail, web data, or other \r
-       services.&nbsp; In this scenario, NetIdMgr will automatically import your Windows \r
-       Domain credentials into a form that can be used by applications that rely on \r
-       MIT Kerberos.</li>\r
-       <li>You do not have a Windows Domain account but you must \r
-       obtain network credentials in order to securely access a network service.&nbsp; \r
-       In this scenario, NetIdMgr can be used to obtain new credentials for network \r
-       identities and can automatically renew them before they expire.</li>\r
-       <li>You have Kerberos credentials for a network identity \r
-       and you have third-party applications that require an alternative form of \r
-       network credential, such as an AFS token or a X.509 certificate, which can \r
-       be obtained via a Kerberos authentication.&nbsp; In this scenario, NetIdMgr can \r
-       automatically use your existing credentials to obtain and renew the \r
-       additional network credentials types.</li>\r
-       <li>You have a Windows Domain account but you need to \r
-       authenticate to a service belonging to a Kerberos realm outside the Windows \r
-       Domain.&nbsp; In this scenario, NetIdMgr can be used to manage multiple network \r
-       identities, the Windows Domain identity as well as the additional Kerberos \r
-       identity required for the external network services.&nbsp; </li>\r
-       <li>You have multiple network identities within the same \r
-       Kerberos realm which are used for different roles.&nbsp; For example, an \r
-       unprivileged user identity and a privileged identity that is only meant to \r
-       be used for system administration.&nbsp; In this scenario, NetIdMgr can be used \r
-       to obtain credentials for all of your identities and automatically renew \r
-       them as necessary.</li>\r
-</ol>\r
-<p>NetIdMgr\92s automated credential acquisition and renewal \r
-makes it an invaluable tool which provides users with a Single Sign-on \r
-experience. </p>\r
-<p>NetIdMgr is most commonly configured as a StartUp item that runs an icon in the Taskbar Notification Area until you logout.&nbsp; \r
-While running, NetIDMgr automatically renews your credentials, notifies you of \r
-pending expirations and prompts you when a Kerberized application requires \r
-credentials that have not already been obtained.&nbsp; </p>\r
-<p>When configured to do so, NetIdMgr will prompt you \r
-immediately after it starts to obtain Kerberos credentials.&nbsp; This is often \r
-referred to as logging on to Kerberos.&nbsp; NetIdMgr does not perform a logon in the \r
-sense of the Windows Logon Service.&nbsp; A logon service would do more than manage \r
-Kerberos tickets. A logon service would authenticate you to the local machine, \r
-validate access to your local file system and performs additional set-up tasks. \r
-These are beyond the scope of NetIdMgr. NetIdMgr simply allows you to manage \r
-Kerberos identities on behalf of compatible applications and to change your \r
-Kerberos password.</p>\r
-<p>\r
-NetIDMgr is distributed as a part of MIT Kerberos for Windows\r
-along with the Kerberos v5 and Kerberos v4 plug-ins.  Plug-ins for additional \r
-credential types including AFS tokens and KCA certificates are available as \r
-separate distributions.&nbsp; The OpenAFS plug-in, which is required for supporting AFS tokens, is\r
-distributed as part of <a href="http://www.openafs.org/windows.html">OpenAFS for \r
-Windows</a>.&nbsp; The KCA plug-in is distributed by\r
-<a href="http://www.secure-endpoints.com/">Secure Endpoints Inc.</a></p>\r
-\r
-<ul>\r
-<li><a href="copyright.htm">Legal information</a></li>\r
-<li><a href="bugs.htm">Reporting problems</a></li>\r
-</ul>\r
-\r
-<h3>Getting started</h3>\r
-\r
-<ul>\r
-<li><a href="concepts.htm">NetIDMgr concepts</a></li>\r
-<li><a href="using.htm">Using NetIDMgr</a></li>\r
-<li><a href="howdoi.htm">How do I ...</a></li>\r
-<li><a href="menu_all.htm">All Menus</a></li>\r
-</ul>\r
-\r
-<h3>Information for developers</h3>\r
-\r
-<p>\r
-If you are interested in developing plug-ins or extending the features\r
-of NetIDMgr, your first stop should be the NetIDMgr SDK which is included in the \r
-MIT Kerberos for Windows SDK.</p>\r
-\r
-<p>\r
-Contact the <a\r
-href="mailto:netidmgr@secure-endpoints.com">netidmgr@secure-endpoints.com</a>\r
-mailing list with questions or comments.</p>\r
-\r
-<h3>External links</h3>\r
-\r
-<ul>\r
-<li><a class="external" href="http://web.mit.edu/kerberos">http://web.mit.edu/kerberos</a>:\r
-\r
-MIT Kerberos distribution\r
-</li>\r
-<li><a class="external" href="http://www.openafs.org/windows.html">http://www.openafs.org/windows.html</a>:\r
-\r
-OpenAFS for Windows\r
-</li>\r
-<li>\r
-<a class="external" href="http://www.secure-endpoints.com/">http://www.secure-endpoints.com/</a>: \r
-Secure Endpoints Inc.</li>\r
-</ul>\r
-\r
+<html>
+<head>
+  <title>Welcome to the Network Identity Manager</title>
+  <meta name="description" content="Welcome">
+  <meta name="keywords" content="welcome">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+       <style>
+</style>
+</head>
+
+<h1>Welcome to the Network Identity Manager</h1>
+
+<div class="inline">
+<img src="images/logo.jpg" width="100" height="100"/>
+</div>
+
+<p>Network Identity Manager (NetIdMgr) is a graphical 
+tool designed to simplify the management of network identities and their credentials 
+which are used by network authentication protocols while providing 
+secure access to network services.&nbsp; When NetIDMgr is used with Kerberos v5 each 
+network identity is a unique Kerberos principal name and the credentials 
+are Kerberos v5 tickets.&nbsp; Kerberos v5 tickets can be used by NetIDMgr to 
+obtain Andrew File System (AFS) tokens and X.509 public key certificates if the 
+appropriate plug-ins are available.</p>
+<p>When you log into Microsoft Windows with a domain account, 
+your account name and the Windows Domain name when combined form a Kerberos 
+principal name.&nbsp; As an example, \93WINDOWS\jaltman\94 is actually a short form 
+representation of
+jaltman@WINDOWS.SECURE-ENDPOINTS.COM.&nbsp;&nbsp; Microsoft Windows uses 
+Kerberos-based network identities for all domain-based network authentications.&nbsp;
+</p>
+<p>Since Microsoft Windows already provides a network 
+identity, why do you need NetIdMgr?&nbsp; Here are some examples:</p>
+<ol>
+       <li>Your only network identity is your Windows Domain 
+       account but you have third-party applications that rely on MIT Kerberos for 
+       authentication for access to remote files, e-mail, web data, or other 
+       services.&nbsp; In this scenario, NetIdMgr will automatically import your Windows 
+       Domain credentials into a form that can be used by applications that rely on 
+       MIT Kerberos.</li>
+       <li>You do not have a Windows Domain account but you must 
+       obtain network credentials in order to securely access a network service.&nbsp; 
+       In this scenario, NetIdMgr can be used to obtain new credentials for network 
+       identities and can automatically renew them before they expire.</li>
+       <li>You have Kerberos credentials for a network identity 
+       and you have third-party applications that require an alternative form of 
+       network credential, such as an AFS token or a X.509 certificate, which can 
+       be obtained via a Kerberos authentication.&nbsp; In this scenario, NetIdMgr can 
+       automatically use your existing credentials to obtain and renew the 
+       additional network credentials types.</li>
+       <li>You have a Windows Domain account but you need to 
+       authenticate to a service belonging to a Kerberos realm outside the Windows 
+       Domain.&nbsp; In this scenario, NetIdMgr can be used to manage multiple network 
+       identities, the Windows Domain identity as well as the additional Kerberos 
+       identity required for the external network services.&nbsp; </li>
+       <li>You have multiple network identities within the same 
+       Kerberos realm which are used for different roles.&nbsp; For example, an 
+       unprivileged user identity and a privileged identity that is only meant to 
+       be used for system administration.&nbsp; In this scenario, NetIdMgr can be used 
+       to obtain credentials for all of your identities and automatically renew 
+       them as necessary.</li>
+</ol>
+<p>NetIdMgr\92s automated credential acquisition and renewal 
+makes it an invaluable tool which provides users with a Single Sign-on 
+experience. </p>
+<p>NetIdMgr is most commonly configured as a StartUp item that runs an icon in the Taskbar Notification Area until you logout.&nbsp; 
+While running, NetIDMgr automatically renews your credentials, notifies you of 
+pending expirations and prompts you when a Kerberized application requires 
+credentials that have not already been obtained.&nbsp; </p>
+<p>When configured to do so, NetIdMgr will prompt you 
+immediately after it starts to obtain Kerberos credentials.&nbsp; This is often 
+referred to as logging on to Kerberos.&nbsp; NetIdMgr does not perform a logon in the 
+sense of the Windows Logon Service.&nbsp; A logon service would do more than manage 
+Kerberos tickets. A logon service would authenticate you to the local machine, 
+validate access to your local file system and performs additional set-up tasks. 
+These are beyond the scope of NetIdMgr. NetIdMgr simply allows you to manage 
+Kerberos identities on behalf of compatible applications and to change your 
+Kerberos password.</p>
+<p>
+NetIDMgr is distributed as a part of MIT Kerberos for Windows
+along with the Kerberos v5 and Kerberos v4 plug-ins.  Plug-ins for additional 
+credential types including AFS tokens and KCA certificates are available as 
+separate distributions.&nbsp; The OpenAFS plug-in, which is required for supporting AFS tokens, is
+distributed as part of <a href="http://www.openafs.org/windows.html">OpenAFS for 
+Windows</a>.&nbsp; The KCA plug-in is distributed by
+<a href="http://www.secure-endpoints.com/">Secure Endpoints Inc.</a></p>
+
+<ul>
+<li><a href="copyright.htm">Legal information</a></li>
+<li><a href="bugs.htm">Reporting problems</a></li>
+</ul>
+
+<h3>Getting started</h3>
+
+<ul>
+<li><a href="concepts.htm">NetIDMgr concepts</a></li>
+<li><a href="using.htm">Using NetIDMgr</a></li>
+<li><a href="howdoi.htm">How do I ...</a></li>
+<li><a href="menu_all.htm">All Menus</a></li>
+</ul>
+
+<h3>Information for developers</h3>
+
+<p>
+If you are interested in developing plug-ins or extending the features
+of NetIDMgr, your first stop should be the NetIDMgr SDK which is included in the 
+MIT Kerberos for Windows SDK.</p>
+
+<p>
+Contact the <a
+href="mailto:netidmgr@secure-endpoints.com">netidmgr@secure-endpoints.com</a>
+mailing list with questions or comments.</p>
+
+<h3>External links</h3>
+
+<ul>
+<li><a class="external" href="http://web.mit.edu/kerberos">http://web.mit.edu/kerberos</a>:
+
+MIT Kerberos distribution
+</li>
+<li><a class="external" href="http://www.openafs.org/windows.html">http://www.openafs.org/windows.html</a>:
+
+OpenAFS for Windows
+</li>
+<li>
+<a class="external" href="http://www.secure-endpoints.com/">http://www.secure-endpoints.com/</a>: 
+Secure Endpoints Inc.</li>
+</ul>
+
 </html>
\ No newline at end of file
index 211120aa361652b240d661e5c96a48951af1a34f..dd9885446507e1f2833a1d0ecadf33cecb445067 100644 (file)
@@ -1,87 +1,87 @@
-<html>\r
-<head>\r
-  <title>Network Identity Manager - Application Window</title>\r
-  <meta name="description" content="Main Window">\r
-  <meta name="keywords" content="main window">\r
-  <link rel="stylesheet" type="text/css" href="nidmgr.css">\r
-  \r
-<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">\r
-  <param name="Keyword" value="Application Window Basic View">\r
-  <param name="Keyword" value="Application Windows Advanced View">\r
-  <param name="Keyword" value="Identity Views">\r
-</OBJECT>\r
-\r
-</head>\r
-<body>\r
-\r
-<h1>Network Identity Manager - Application Window</h1>\r
-\r
-<p>The application window of Network Identity Manager can be displayed in two modes: <b>basic</b> and <b>advanced</b>.</p>\r
-\r
-<p>The basic view provides status information of the currently available identities whereas the advanced \r
-view provides more detailed information of all the active credentials.</p>\r
-\r
-<div>\r
-<img src="images/screen_main_wnd_basic.png"/>\r
-<p class="caption">Figure 1. Network Identity Manager Basic View</p>\r
-</div>\r
-\r
-<div>\r
-\r
-<img src="images/screen_main_wnd.png"/>\r
-<p class="caption">Figure 2.  Network Identity Manager Advanced View</p>\r
-</div>\r
-\r
-<ol>\r
-  <li>Menu bar</li>\r
-  <li>Tool bar</li>\r
-  <li>Credentials list</li>\r
-\r
-</ol>\r
-\r
-<h3>Identity views</h3>\r
-\r
-<p>\r
-The default credentials view organizes them grouped by identity name\r
-and then by credential type.  Each credential is then shown under each\r
-group heading sorted by the credential name.  The default headings for\r
-the credential view provides you with a minimal amount of information\r
-to reduce clutter.  If you wish you can add columns to the display\r
-using the <span class="pre">Choose columns...</span> action on the\r
-<span class="pre"><a href="menu_view.htm">View</a></span> menu.\r
-</p>\r
-\r
-<p>\r
-The header backgrounds and the credential rows change color if the\r
-credentials are about to expire or are expired.  \r
-\r
-<ul> \r
-\r
-<li> <span style="background-color:#fbc74d">Headers</span> mean that\r
-credentials at that level will expire unless renewed.  Credentials\r
-will have a warning icon next to them.<br/>\r
-\r
-The threshold for this can be set as the <span class="pre">Warn</span>\r
-parameter in the <span class="pre">Notifications</span> configuration\r
-panel.</li>\r
-\r
-<li> <span style="background-color:#f08575">Headers</span> mean that\r
-credentials at that level will expire in a few minutes.  Credentials\r
-will have a critical icon next to them.<br/>\r
-\r
-The threshold for this can be set as the <span class="pre">Warn\r
-again</span> parameter in the <span class="pre">Notifications</span>\r
-configuration panel.  </li>\r
-\r
-<li> <span style="background-color:#ff9090">Headers</span> mean that\r
-the credentials at that level have expired.  Credentials will have an\r
-expired icon next to them.<br/>\r
-\r
-The threshold for this is always zero.\r
-</li>\r
-\r
-</ul> \r
-</p> \r
-\r
-</body>\r
+<html>
+<head>
+  <title>Network Identity Manager - Application Window</title>
+  <meta name="description" content="Main Window">
+  <meta name="keywords" content="main window">
+  <link rel="stylesheet" type="text/css" href="nidmgr.css">
+  
+<Object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+  <param name="Keyword" value="Application Window Basic View">
+  <param name="Keyword" value="Application Windows Advanced View">
+  <param name="Keyword" value="Identity Views">
+</OBJECT>
+
+</head>
+<body>
+
+<h1>Network Identity Manager - Application Window</h1>
+
+<p>The application window of Network Identity Manager can be displayed in two modes: <b>basic</b> and <b>advanced</b>.</p>
+
+<p>The basic view provides status information of the currently available identities whereas the advanced 
+view provides more detailed information of all the active credentials.</p>
+
+<div>
+<img src="images/screen_main_wnd_basic.png"/>
+<p class="caption">Figure 1. Network Identity Manager Basic View</p>
+</div>
+
+<div>
+
+<img src="images/screen_main_wnd.png"/>
+<p class="caption">Figure 2.  Network Identity Manager Advanced View</p>
+</div>
+
+<ol>
+  <li>Menu bar</li>
+  <li>Tool bar</li>
+  <li>Credentials list</li>
+
+</ol>
+
+<h3>Identity views</h3>
+
+<p>
+The default credentials view organizes them grouped by identity name
+and then by credential type.  Each credential is then shown under each
+group heading sorted by the credential name.  The default headings for
+the credential view provides you with a minimal amount of information
+to reduce clutter.  If you wish you can add columns to the display
+using the <span class="pre">Choose columns...</span> action on the
+<span class="pre"><a href="menu_view.htm">View</a></span> menu.
+</p>
+
+<p>
+The header backgrounds and the credential rows change color if the
+credentials are about to expire or are expired.  
+
+<ul> 
+
+<li> <span style="background-color:#fbc74d">Headers</span> mean that
+credentials at that level will expire unless renewed.  Credentials
+will have a warning icon next to them.<br/>
+
+The threshold for this can be set as the <span class="pre">Warn</span>
+parameter in the <span class="pre">Notifications</span> configuration
+panel.</li>
+
+<li> <span style="background-color:#f08575">Headers</span> mean that
+credentials at that level will expire in a few minutes.  Credentials
+will have a critical icon next to them.<br/>
+
+The threshold for this can be set as the <span class="pre">Warn
+again</span> parameter in the <span class="pre">Notifications</span>
+configuration panel.  </li>
+
+<li> <span style="background-color:#ff9090">Headers</span> mean that
+the credentials at that level have expired.  Credentials will have an
+expired icon next to them.<br/>
+
+The threshold for this is always zero.
+</li>
+
+</ul> 
+</p> 
+
+</body>
 </html>
\ No newline at end of file
index 9f2ae733213d32decb1d313733f272ccc2e277b2..b22e07a0a6b176a48b0b3dacc566c33fec0aabe4 100644 (file)
@@ -1,35 +1,35 @@
-[OPTIONS]\r
-Auto Index=Yes\r
-Compatibility=1.1 or later\r
-Compiled file=netidmgr.chm\r
-Contents file=toc.hhc\r
-Default Window=MainHelpWnd\r
-Default topic=html/welcome.htm\r
-Display compile progress=No\r
-Index file=Index.hhk\r
-Language=0x409 English (United States)\r
-Title=NetIDMgr\r
-\r
-[WINDOWS]\r
-MainHelpWnd="NetIDMgr Help","toc.hhc","Index.hhk","html/welcome.htm","html/welcome.htm",,,,,0x42120,,0x384e,[271,372,593,566],0x830000,,,,,,0\r
-\r
-\r
-[ALIAS]\r
-IDH_ACTION_NEW_ID=html\act_new_creds.htm\r
-IDH_ACTION_PASSWD_ID=html\act_chpw.htm\r
-IDH_WELCOME=html\welcome.htm\r
-\r
-[MAP]\r
-#include khhelp.h\r
-\r
-[TEXT POPUPS]\r
-khhelp.h\r
-popups_newcreds.txt\r
-popups_password.txt\r
-\r
-[INFOTYPES]\r
-Category:Concepts\r
-CategoryDesc:Authentication, authorization and related concepts.\r
-Category:Usage\r
-CategoryDesc:Usage instructions for NetIDMgr\r
-\r
+[OPTIONS]
+Auto Index=Yes
+Compatibility=1.1 or later
+Compiled file=netidmgr.chm
+Contents file=toc.hhc
+Default Window=MainHelpWnd
+Default topic=html/welcome.htm
+Display compile progress=No
+Index file=Index.hhk
+Language=0x409 English (United States)
+Title=NetIDMgr
+
+[WINDOWS]
+MainHelpWnd="NetIDMgr Help","toc.hhc","Index.hhk","html/welcome.htm","html/welcome.htm",,,,,0x42120,,0x384e,[271,372,593,566],0x830000,,,,,,0
+
+
+[ALIAS]
+IDH_ACTION_NEW_ID=html\act_new_creds.htm
+IDH_ACTION_PASSWD_ID=html\act_chpw.htm
+IDH_WELCOME=html\welcome.htm
+
+[MAP]
+#include khhelp.h
+
+[TEXT POPUPS]
+khhelp.h
+popups_newcreds.txt
+popups_password.txt
+
+[INFOTYPES]
+Category:Concepts
+CategoryDesc:Authentication, authorization and related concepts.
+Category:Usage
+CategoryDesc:Usage instructions for NetIDMgr
+
index 7d58703b1119507aaa2985ff936c28cacf2ff99f..564d4ddac63d470827491965b3299872fa67602d 100644 (file)
@@ -1 +1 @@
-foo \r
+foo 
index 74a39360e0ba532166a72811f092edd06ced7a82..1ab97f37898e493cef1779b084ea28c734d5754a 100644 (file)
@@ -1,30 +1,30 @@
-.topic IDH_NC_TABMAIN\r
-Opens the identity selection panel.\r
-\r
-.topic IDH_NC_TABBUTTON\r
-Opens the option panel for this credentials type.\r
-\r
-.topic IDH_NC_OK\r
-Obtains new credentials using the information that you provided.\r
-\r
-.topic IDH_NC_CANCEL\r
-Cancels the new credentials operation.\r
-\r
-.topic IDH_NC_HELP\r
-Provides help for this dialog box.\r
-\r
-.topic IDH_NC_ADVANCED\r
-Expands the dialog and allows you to set additional\r
-options for the credentials that will be obtained\r
-by this dialog.\r
-\r
-.topic IDH_NC_CREDWND\r
-Provides an overview of the credentials that will be obtained\r
-after the successful completion of the new credentials dialog.\r
-Clicking on the hyperlinks will take you to the corresponding\r
-credentials option panels where you will be able to set\r
-additional options for each type.\r
-\r
-.topic IDH_NC_SETDEF\r
-If checked, once the credentials acquisition operation completes, the\r
-identity will be set as the default.\r
+.topic IDH_NC_TABMAIN
+Opens the identity selection panel.
+
+.topic IDH_NC_TABBUTTON
+Opens the option panel for this credentials type.
+
+.topic IDH_NC_OK
+Obtains new credentials using the information that you provided.
+
+.topic IDH_NC_CANCEL
+Cancels the new credentials operation.
+
+.topic IDH_NC_HELP
+Provides help for this dialog box.
+
+.topic IDH_NC_ADVANCED
+Expands the dialog and allows you to set additional
+options for the credentials that will be obtained
+by this dialog.
+
+.topic IDH_NC_CREDWND
+Provides an overview of the credentials that will be obtained
+after the successful completion of the new credentials dialog.
+Clicking on the hyperlinks will take you to the corresponding
+credentials option panels where you will be able to set
+additional options for each type.
+
+.topic IDH_NC_SETDEF
+If checked, once the credentials acquisition operation completes, the
+identity will be set as the default.
index e92b30e918e179a09ae1588db8ef58569e9c59c2..567236391b6f66e782032efae13f4ba68554f8b2 100644 (file)
@@ -1,19 +1,19 @@
-.topic IDH_NC_TABMAIN\r
-Switches to the identity selection panel.\r
-\r
-.topic IDH_NC_TABBUTTON\r
-Switches to the options pangel for this credential type.\r
-\r
-.topic IDH_NC_OK\r
-Change the password for the selected identity.\r
-\r
-.topic IDH_NC_CANCEL\r
-Cancel the change password operation.\r
-\r
-.topic IDH_NC_ADVANCED\r
-Expand the dialog and make the option pages visible for the credential\r
-types for which you will be changing the password for.\r
-\r
-.topic IDH_NC_CREDWND\r
-A brief overview of the credential types and the identities for which\r
-the password will be changed.\r
+.topic IDH_NC_TABMAIN
+Switches to the identity selection panel.
+
+.topic IDH_NC_TABBUTTON
+Switches to the options pangel for this credential type.
+
+.topic IDH_NC_OK
+Change the password for the selected identity.
+
+.topic IDH_NC_CANCEL
+Cancel the change password operation.
+
+.topic IDH_NC_ADVANCED
+Expand the dialog and make the option pages visible for the credential
+types for which you will be changing the password for.
+
+.topic IDH_NC_CREDWND
+A brief overview of the credential types and the identities for which
+the password will be changed.
index 6c3876ef1464d5c076e09f2dbe6d4133598c088b..34d0f0a4d146ef3be5f53d7df49aca009769c651 100644 (file)
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
-<HTML>\r
-<HEAD>\r
-<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
-<!-- Sitemap 1.0 -->\r
-</HEAD><BODY>\r
-<OBJECT type="text/site properties">\r
-       <param name="Category" value="Concepts">\r
-       <param name="CategoryDesc" value="Authentication, authorization and related concepts.">\r
-       <param name="Category" value="Usage">\r
-       <param name="CategoryDesc" value="Usage instructions for Network Identity Manager">\r
-       <param name="Window Styles" value="0x800025">\r
-</OBJECT>\r
-<UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Welcome to Network Identity Manager">\r
-               <param name="Local" value="html\welcome.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="How do I ...">\r
-               <param name="Local" value="html\howdoi.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="About NetIDMgr">\r
-               <param name="Local" value="html\about_netidmgr.htm">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Reporting bugs">\r
-                       <param name="Local" value="html\bugs.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="License agreement">\r
-                       <param name="Local" value="html\copyright.htm">\r
-                       </OBJECT>\r
-       </UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Concepts">\r
-               <param name="Local" value="html\concepts.htm">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Identities">\r
-                       <param name="Local" value="html\concept_identity.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Identity Provider">\r
-                       <param name="Local" value="html\concept_ident_pro.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Credentials Provider">\r
-                       <param name="Local" value="html\concept_cred_pro.htm">\r
-                       </OBJECT>\r
-       </UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Using NetIDMgr">\r
-               <param name="Local" value="html\using.htm">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Starting">\r
-                       <param name="Local" value="html\use_start.htm">\r
-                       </OBJECT>\r
-                <LI> <OBJECT type="text/sitemap">\r
-                        <param name="Name" value="Notification icon">\r
-                        <param name="Local" value="html\use_icon.htm">\r
-                        </OBJECT>\r
-\r
-                <LI> <OBJECT type="text/sitemap">\r
-                        <param name="Name" value="Managing the credentials view layout">\r
-                        <param name="Local" value="html\use_layout.htm">\r
-                        </OBJECT>\r
-\r
-                <LI> <OBJECT type="text/sitemap">\r
-                        <param name="Name" value="Configuring NetIDMgr and identities">\r
-                        <param name="Local" value="html\use_config.htm">\r
-                        </OBJECT>\r
-       </UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Menus and Toolbars">\r
-               <param name="Local" value="html\menu_all.htm">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="File Menu">\r
-                       <param name="Local" value="html\menu_file.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Credential menu">\r
-                       <param name="Local" value="html\menu_credential.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="View Menu">\r
-                       <param name="Local" value="html\menu_view.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Options Menu">\r
-                       <param name="Local" value="html\menu_options.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Help Menu">\r
-                       <param name="Local" value="html\menu_help.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Standard Toolbar">\r
-                       <param name="Local" value="html\tb_standard.htm">\r
-                       </OBJECT>\r
-       </UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Actions">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="New Credentials">\r
-                       <param name="Local" value="html\act_new_creds.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Renew Credentials">\r
-                       <param name="Local" value="html\act_renew_creds.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Destroy Credentials">\r
-                       <param name="Local" value="html\act_destroy_creds.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Set As Default">\r
-                       <param name="Local" value="html\act_set_default.htm">\r
-                       </OBJECT>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Change Password">\r
-                       <param name="Local" value="html\act_chpw.htm">\r
-                       </OBJECT>\r
-       </UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Windows and dialogs">\r
-               </OBJECT>\r
-       <UL>\r
-               <LI> <OBJECT type="text/sitemap">\r
-                       <param name="Name" value="Main Window">\r
-                       <param name="Local" value="html\wnd_main.htm">\r
-                       </OBJECT>\r
-       </UL>\r
-</UL>\r
-</BODY></HTML>\r
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+       <param name="Category" value="Concepts">
+       <param name="CategoryDesc" value="Authentication, authorization and related concepts.">
+       <param name="Category" value="Usage">
+       <param name="CategoryDesc" value="Usage instructions for Network Identity Manager">
+       <param name="Window Styles" value="0x800025">
+</OBJECT>
+<UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Welcome to Network Identity Manager">
+               <param name="Local" value="html\welcome.htm">
+               </OBJECT>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="How do I ...">
+               <param name="Local" value="html\howdoi.htm">
+               </OBJECT>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="About NetIDMgr">
+               <param name="Local" value="html\about_netidmgr.htm">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Reporting bugs">
+                       <param name="Local" value="html\bugs.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="License agreement">
+                       <param name="Local" value="html\copyright.htm">
+                       </OBJECT>
+       </UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Concepts">
+               <param name="Local" value="html\concepts.htm">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Identities">
+                       <param name="Local" value="html\concept_identity.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Identity Provider">
+                       <param name="Local" value="html\concept_ident_pro.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Credentials Provider">
+                       <param name="Local" value="html\concept_cred_pro.htm">
+                       </OBJECT>
+       </UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Using NetIDMgr">
+               <param name="Local" value="html\using.htm">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Starting">
+                       <param name="Local" value="html\use_start.htm">
+                       </OBJECT>
+                <LI> <OBJECT type="text/sitemap">
+                        <param name="Name" value="Notification icon">
+                        <param name="Local" value="html\use_icon.htm">
+                        </OBJECT>
+
+                <LI> <OBJECT type="text/sitemap">
+                        <param name="Name" value="Managing the credentials view layout">
+                        <param name="Local" value="html\use_layout.htm">
+                        </OBJECT>
+
+                <LI> <OBJECT type="text/sitemap">
+                        <param name="Name" value="Configuring NetIDMgr and identities">
+                        <param name="Local" value="html\use_config.htm">
+                        </OBJECT>
+       </UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Menus and Toolbars">
+               <param name="Local" value="html\menu_all.htm">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="File Menu">
+                       <param name="Local" value="html\menu_file.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Credential menu">
+                       <param name="Local" value="html\menu_credential.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="View Menu">
+                       <param name="Local" value="html\menu_view.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Options Menu">
+                       <param name="Local" value="html\menu_options.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Help Menu">
+                       <param name="Local" value="html\menu_help.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Standard Toolbar">
+                       <param name="Local" value="html\tb_standard.htm">
+                       </OBJECT>
+       </UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Actions">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="New Credentials">
+                       <param name="Local" value="html\act_new_creds.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Renew Credentials">
+                       <param name="Local" value="html\act_renew_creds.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Destroy Credentials">
+                       <param name="Local" value="html\act_destroy_creds.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Set As Default">
+                       <param name="Local" value="html\act_set_default.htm">
+                       </OBJECT>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Change Password">
+                       <param name="Local" value="html\act_chpw.htm">
+                       </OBJECT>
+       </UL>
+       <LI> <OBJECT type="text/sitemap">
+               <param name="Name" value="Windows and dialogs">
+               </OBJECT>
+       <UL>
+               <LI> <OBJECT type="text/sitemap">
+                       <param name="Name" value="Main Window">
+                       <param name="Local" value="html\wnd_main.htm">
+                       </OBJECT>
+       </UL>
+</UL>
+</BODY></HTML>
index 10d29625a3d51d75cd2758b6e44365b8ea510986..f16ae5395f570c737a14d37c631f995db20c90f3 100644 (file)
@@ -1,38 +1,38 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=include\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\khdefs.h      \\r
-       $(INCDIR)\kherror.h     \\r
-       $(INCDIR)\khlist.h      \\r
-       $(INCDIR)\khmsgtypes.h  \\r
-       $(INCDIR)\netidmgr.h\r
-\r
-all: $(INCFILES)\r
-\r
-clean::\r
-       if exist '..\obj' $(RM) $(INCFILES)\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=include
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\khdefs.h      \
+       $(INCDIR)\kherror.h     \
+       $(INCDIR)\khlist.h      \
+       $(INCDIR)\khmsgtypes.h  \
+       $(INCDIR)\netidmgr.h
+
+all: $(INCFILES)
+
+clean::
+       if exist '..\obj' $(RM) $(INCFILES)
index 98e9c25b4788b033c0e3269694e8efe3f67c1c77..b3d55292665c09b447ca0ce96d94f01b1609ea07 100644 (file)
@@ -1,50 +1,50 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=kconfig\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\kconfig.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\kconfigmain.obj \\r
-       $(OBJ)\api.obj\r
-\r
-all: mkdirs $(INCFILES) $(OBJFILES)\r
-\r
-clean::\r
-       if exist '..\obj' $(RM) $(INCFILES)\r
-# Tests\r
-\r
-test:: util_test\r
-\r
-util_test: $(OBJ)\utiltest.exe\r
-       $(OBJ)\utiltest.exe\r
-\r
-$(OBJ)\utiltest.exe: $(OBJ)\utiltest.obj\r
-       $(EXECONLINK) $(OBJFILES)\r
-\r
-$(OBJ)\utiltest.obj: test\utiltest.c\r
-       $(C2OBJ)\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=kconfig
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\kconfig.h
+
+OBJFILES= \
+       $(OBJ)\kconfigmain.obj \
+       $(OBJ)\api.obj
+
+all: mkdirs $(INCFILES) $(OBJFILES)
+
+clean::
+       if exist '..\obj' $(RM) $(INCFILES)
+# Tests
+
+test:: util_test
+
+util_test: $(OBJ)\utiltest.exe
+       $(OBJ)\utiltest.exe
+
+$(OBJ)\utiltest.exe: $(OBJ)\utiltest.obj
+       $(EXECONLINK) $(OBJFILES)
+
+$(OBJ)\utiltest.obj: test\utiltest.c
+       $(C2OBJ)
index 579e4544af2d11b9309b6028468a8c1d78cb556a..ad39e9eb4535d70cb4ad1a12675e08cff1e7a467 100644 (file)
@@ -1,52 +1,52 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=kcreddb\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\kcreddb.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\buf.obj \\r
-       $(OBJ)\attrib.obj \\r
-       $(OBJ)\credential.obj \\r
-       $(OBJ)\credset.obj \\r
-       $(OBJ)\credtype.obj \\r
-       $(OBJ)\identity.obj \\r
-       $(OBJ)\init.obj \\r
-       $(OBJ)\kcreddbmain.obj \\r
-       $(OBJ)\type.obj \\r
-       $(OBJ)\kcdbconfig.obj\r
-\r
-$(OBJ)\kcdbconfig.c: kcdbconfig.csv $(CONFDIR)\csvschema.cfg\r
-       $(CCSV) $** $@\r
-\r
-$(OBJ)\kcredres.res: lang\en_us\kcredres.rc\r
-       $(RC2RES)\r
-\r
-all: mkdirs $(INCFILES) $(OBJ)\kcredres.res $(OBJFILES)\r
-\r
-clean::\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=kcreddb
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\kcreddb.h
+
+OBJFILES= \
+       $(OBJ)\buf.obj \
+       $(OBJ)\attrib.obj \
+       $(OBJ)\credential.obj \
+       $(OBJ)\credset.obj \
+       $(OBJ)\credtype.obj \
+       $(OBJ)\identity.obj \
+       $(OBJ)\init.obj \
+       $(OBJ)\kcreddbmain.obj \
+       $(OBJ)\type.obj \
+       $(OBJ)\kcdbconfig.obj
+
+$(OBJ)\kcdbconfig.c: kcdbconfig.csv $(CONFDIR)\csvschema.cfg
+       $(CCSV) $** $@
+
+$(OBJ)\kcredres.res: lang\en_us\kcredres.rc
+       $(RC2RES)
+
+all: mkdirs $(INCFILES) $(OBJ)\kcredres.res $(OBJFILES)
+
+clean::
        if exist '..\obj' $(RM) $(INCFILES)
\ No newline at end of file
index bd1fc6f3306ede24c07bac5d8a0502009501ab8a..f4b52eea2850221e29e86572769e90233b031b6e 100644 (file)
@@ -1,15 +1,15 @@
-Name,Type,Value,Description\r
-KCDB,KC_SPACE,0,Khimaira Configuration DB\r
-  Identity,KC_SPACE,0,Configuration space for identities\r
-    _Schema,KC_SPACE,0,Schema for identities\r
-      Sticky,KC_INT32,0,Boolean. Is this a sticky identity?\r
-      Monitor,KC_INT32,1,Boolean. Enables monitoring the identity\r
-      WarnThreshold,KC_INT32,900,In seconds\r
-      AllowWarn,KC_INT32,1,Boolean. Allow warning.\r
-      CriticalThreshold,KC_INT32,60,In seconds\r
-      AllowCritical,KC_INT32,1,Boolean. Allow critical.\r
-      AutoRenewThreshold,KC_INT32,60,In seconds\r
-      AllowAutoRenew,KC_INT32,1,Boolean.\r
-    _Schema,KC_ENDSPACE,0,\r
-  Identity,KC_ENDSPACE,0,\r
-KCDB,KC_ENDSPACE,0,\r
+Name,Type,Value,Description
+KCDB,KC_SPACE,0,Khimaira Configuration DB
+  Identity,KC_SPACE,0,Configuration space for identities
+    _Schema,KC_SPACE,0,Schema for identities
+      Sticky,KC_INT32,0,Boolean. Is this a sticky identity?
+      Monitor,KC_INT32,1,Boolean. Enables monitoring the identity
+      WarnThreshold,KC_INT32,900,In seconds
+      AllowWarn,KC_INT32,1,Boolean. Allow warning.
+      CriticalThreshold,KC_INT32,60,In seconds
+      AllowCritical,KC_INT32,1,Boolean. Allow critical.
+      AutoRenewThreshold,KC_INT32,60,In seconds
+      AllowAutoRenew,KC_INT32,1,Boolean.
+    _Schema,KC_ENDSPACE,0,
+  Identity,KC_ENDSPACE,0,
+KCDB,KC_ENDSPACE,0,
index 4c221eeebaf2010fcf73d6e670e58307ede3429a..6dce395133f9d01bf0eaa168bb20e1dd478130be 100644 (file)
-// Microsoft Visual C++ generated resource script.\r
-//\r
-#include "..\..\langres.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "..\\..\\langres.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "..\\..\\langres.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_CREDDB              "Khimaira Credentials Database"\r
-    IDS_NAME                "Service Name"\r
-    IDS_IDENTITY            "Identity"\r
-    IDS_ISSUED              "Issued on"\r
-    IDS_EXPIRES             "Expires on"\r
-    IDS_TIMELEFT            "Time Remaining"\r
-    IDS_LOCATION            "Location"\r
-    IDS_PARENT              "Parent"\r
-    IDS_TYPE                "Type"\r
-    IDS_IVL_EXPIRED         "(Expired)"\r
-    IDS_IVL_D_H             "%I64u days %I64u hours"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_IVL_H_M             "%I64u hours %I64u mins"\r
-    IDS_IVL_M_S             "%I64u mins %I64u secs"\r
-    IDS_IVL_S               "%I64u seconds"\r
-    IDS_IVL_UNKNOWN         "(Unknown)"\r
-    IDS_LIFETIME            "Lifetime"\r
-    IDS_IVL_1D              "1 day"\r
-    IDS_IVL_1H              "1 hour"\r
-    IDS_IVL_1M              "1 minute"\r
-    IDS_IVL_1S              "1 second"\r
-    IDS_IVL_D               "%I64u days"\r
-    IDS_IVL_H               "%I64u hours"\r
-    IDS_IVL_M               "%I64u minutes"\r
-    IDS_IVL_S_SPEC          "s,sec,second,seconds,secs"\r
-    IDS_IVL_M_SPEC          "m,min,mins,minutes"\r
-    IDS_IVL_H_SPEC          "h,hrs,hours"\r
-    IDS_IVL_D_SPEC          "d,day,days,ds"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    128                     "w,wk,wks,weeks"\r
-    IDS_FLAGS               "Flags"\r
-    IDS_RENEW_TIMELEFT      "Renewable Time left"\r
-    IDS_RENEW_EXPIRES       "Renewable time expires"\r
-    IDS_RENEW_LIFETIME      "Renewable lifetime"\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\..\langres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\..\\langres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\..\\langres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_CREDDB              "Khimaira Credentials Database"
+    IDS_NAME                "Service Name"
+    IDS_IDENTITY            "Identity"
+    IDS_ISSUED              "Issued on"
+    IDS_EXPIRES             "Expires on"
+    IDS_TIMELEFT            "Time Remaining"
+    IDS_LOCATION            "Location"
+    IDS_PARENT              "Parent"
+    IDS_TYPE                "Type"
+    IDS_IVL_EXPIRED         "(Expired)"
+    IDS_IVL_D_H             "%I64u days %I64u hours"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_IVL_H_M             "%I64u hours %I64u mins"
+    IDS_IVL_M_S             "%I64u mins %I64u secs"
+    IDS_IVL_S               "%I64u seconds"
+    IDS_IVL_UNKNOWN         "(Unknown)"
+    IDS_LIFETIME            "Lifetime"
+    IDS_IVL_1D              "1 day"
+    IDS_IVL_1H              "1 hour"
+    IDS_IVL_1M              "1 minute"
+    IDS_IVL_1S              "1 second"
+    IDS_IVL_D               "%I64u days"
+    IDS_IVL_H               "%I64u hours"
+    IDS_IVL_M               "%I64u minutes"
+    IDS_IVL_S_SPEC          "s,sec,second,seconds,secs"
+    IDS_IVL_M_SPEC          "m,min,mins,minutes"
+    IDS_IVL_H_SPEC          "h,hrs,hours"
+    IDS_IVL_D_SPEC          "d,day,days,ds"
+END
+
+STRINGTABLE 
+BEGIN
+    128                     "w,wk,wks,weeks"
+    IDS_FLAGS               "Flags"
+    IDS_RENEW_TIMELEFT      "Renewable Time left"
+    IDS_RENEW_EXPIRES       "Renewable time expires"
+    IDS_RENEW_LIFETIME      "Renewable lifetime"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
index 26021d4654a0c4b09bd7c6f560fe2de99c3fd781..3ce6bbd7fcfb5273746bdd0b883a37a8be162399 100644 (file)
@@ -1,43 +1,43 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=kherr\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\kherr.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\kherrmain.obj \\r
-       $(OBJ)\kherr.obj\r
-\r
-LIBFILES=\r
-\r
-SDKLIBFILES= \\r
-       strsafe.lib\r
-\r
-all: mkdirs $(INCFILES) $(OBJFILES)\r
-\r
-clean::\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=kherr
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\kherr.h
+
+OBJFILES= \
+       $(OBJ)\kherrmain.obj \
+       $(OBJ)\kherr.obj
+
+LIBFILES=
+
+SDKLIBFILES= \
+       strsafe.lib
+
+all: mkdirs $(INCFILES) $(OBJFILES)
+
+clean::
        if exist '..\obj' $(RM) $(INCFILES)
\ No newline at end of file
index 6a3edfa855e6d132fc7caddd8e837895ba8013ad..b60d2066b0faec3509c40230cb07b1149e241de3 100644 (file)
@@ -1,54 +1,54 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=kmm\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\kmm.h \\r
-       $(INCDIR)\kplugin.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\kmmmain.obj \\r
-       $(OBJ)\kmm.obj \\r
-       $(OBJ)\kmm_plugin.obj \\r
-       $(OBJ)\kmm_module.obj \\r
-       $(OBJ)\kmm_reg.obj \\r
-       $(OBJ)\kmm_registrar.obj \\r
-       $(OBJ)\kmmconfig.obj\r
-\r
-MSGRESFILE=$(OBJ)\kmm_msgs.res\r
-\r
-$(OBJ)\kmmconfig.c: kmmconfig.csv $(CONFDIR)\csvschema.cfg\r
-       $(CCSV) $** $@\r
-\r
-$(MSGRESFILE): $(OBJ)\kmm_msgs.rc\r
-\r
-$(OBJ)\kmm_msgs.rc: lang\kmm_msgs.mc\r
-       $(MC2RC)\r
-\r
-all: mkdirs $(INCFILES) $(MSGRESFILE) $(OBJFILES)\r
-\r
-clean::\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=kmm
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\kmm.h \
+       $(INCDIR)\kplugin.h
+
+OBJFILES= \
+       $(OBJ)\kmmmain.obj \
+       $(OBJ)\kmm.obj \
+       $(OBJ)\kmm_plugin.obj \
+       $(OBJ)\kmm_module.obj \
+       $(OBJ)\kmm_reg.obj \
+       $(OBJ)\kmm_registrar.obj \
+       $(OBJ)\kmmconfig.obj
+
+MSGRESFILE=$(OBJ)\kmm_msgs.res
+
+$(OBJ)\kmmconfig.c: kmmconfig.csv $(CONFDIR)\csvschema.cfg
+       $(CCSV) $** $@
+
+$(MSGRESFILE): $(OBJ)\kmm_msgs.rc
+
+$(OBJ)\kmm_msgs.rc: lang\kmm_msgs.mc
+       $(MC2RC)
+
+all: mkdirs $(INCFILES) $(MSGRESFILE) $(OBJFILES)
+
+clean::
        if exist '..\obj' $(RM) $(INCFILES)
\ No newline at end of file
index 43bb48cdc94b3e90650be69b66fe1fca136fb543..dc812565ec29cf8894ae5fef3b7692359bbf83f1 100644 (file)
@@ -1,47 +1,47 @@
-Name,Type,Value,Description\r
-PluginManager,KC_SPACE,0,Plugin Manager Configuration\r
-  Plugins,KC_SPACE,0,Plugin Specific configuration\r
-    PluginMaxFailureCount,KC_INT32,3,Maximum number of failure counts before plugin is disabled\r
-    PluginFailureCountResetTime,KC_INT64,36000,Time after first failure at which the failure count is reset\r
-    _Schema,KC_SPACE,0,Plugin schema\r
-      Module,KC_STRING,<module name>,The name of the module that registered this plugin\r
-      Description,KC_STRING,<Description>,Description of the plugin\r
-      Dependencies,KC_STRING,<Dependencies>,Multi string of plugin names of plugins that this plugin depends on\r
-      Type,KC_INT32,0,The type of the plugin\r
-#      Flags,KC_INT32,0,Flags (Deprecated)\r
-      Disabled,KC_INT32,0,Plug-in is disabled (Boolean)\r
-      NoUnload,KC_INT32,0,Do not unload the plugin (Boolean)\r
-      FailureCount,KC_INT32,0,Number of failed loads\r
-      FailureTime,KC_INT64,0,FILETIME of first failure\r
-      FailureReason,KC_INT32,0,Reason for first failure.  One of the plugin status values.\r
-      Parameters,KC_SPACE,0,Plugin parameters.  The schema beyond this is plugin dependent.\r
-      Parameters,KC_ENDSPACE,0,\r
-    _Schema,KC_ENDSPACE,0,\r
-  Plugins,KC_ENDSPACE,0,\r
-  Modules,KC_SPACE,0,Module Specific configuration\r
-    ModuleMaxFailureCount,KC_INT32,3,Maximum number of failure counts before module is disabled\r
-    ModuleFailureCountResetTime,KC_INT64,72000,Time after first failure at which the failure count is reset\r
-    _Schema,KC_SPACE,0,Module schema\r
-      ImagePath,KC_STRING,<Path to the library binary>,Path to the DLL (including DLL name)\r
-#      Flags,KC_INT32,0,Flags (Deprecated)\r
-      Disabled,KC_INT32,0,Module is disabled (Boolean)\r
-      FailureCount,KC_INT32,0,Number of failed loads\r
-      FailureTime,KC_INT64,0,FILETIME of first failure\r
-      FailureReason,KC_INT32,0,Reason for last failure.  One of the module status values.\r
-      PluginList,KC_STRING,<plugins>,List of plugins implemented in the module\r
-    _Schema,KC_ENDSPACE,0,\r
-# The OpenAFS plug-in is installed separately.\r
-#    OpenAFS,KC_SPACE,0,OpenAFS Module\r
-#      ImagePath,KC_STRING,afscred.dll,\r
-#      PluginList,KC_STRING,AfsCred,\r
-#    OpenAFS,KC_ENDSPACE,0,\r
-    MITKrb5,KC_SPACE,0,MIT Kerberos V\r
-      ImagePath,KC_STRING,krb5cred.dll,\r
-      PluginList,KC_STRING,Krb5Cred,\r
-    MITKrb5,KC_ENDSPACE,0,\r
-    MITKrb4,KC_SPACE,0,MIT Kerberos IV\r
-      ImagePath,KC_STRING,krb4cred.dll,\r
-      PluginList,KC_STRING,Krb4Cred,\r
-    MITKrb4,KC_ENDSPACE,0,\r
-  Modules,KC_ENDSPACE,0,\r
-PluginManager,KC_ENDSPACE,0,\r
+Name,Type,Value,Description
+PluginManager,KC_SPACE,0,Plugin Manager Configuration
+  Plugins,KC_SPACE,0,Plugin Specific configuration
+    PluginMaxFailureCount,KC_INT32,3,Maximum number of failure counts before plugin is disabled
+    PluginFailureCountResetTime,KC_INT64,36000,Time after first failure at which the failure count is reset
+    _Schema,KC_SPACE,0,Plugin schema
+      Module,KC_STRING,<module name>,The name of the module that registered this plugin
+      Description,KC_STRING,<Description>,Description of the plugin
+      Dependencies,KC_STRING,<Dependencies>,Multi string of plugin names of plugins that this plugin depends on
+      Type,KC_INT32,0,The type of the plugin
+#      Flags,KC_INT32,0,Flags (Deprecated)
+      Disabled,KC_INT32,0,Plug-in is disabled (Boolean)
+      NoUnload,KC_INT32,0,Do not unload the plugin (Boolean)
+      FailureCount,KC_INT32,0,Number of failed loads
+      FailureTime,KC_INT64,0,FILETIME of first failure
+      FailureReason,KC_INT32,0,Reason for first failure.  One of the plugin status values.
+      Parameters,KC_SPACE,0,Plugin parameters.  The schema beyond this is plugin dependent.
+      Parameters,KC_ENDSPACE,0,
+    _Schema,KC_ENDSPACE,0,
+  Plugins,KC_ENDSPACE,0,
+  Modules,KC_SPACE,0,Module Specific configuration
+    ModuleMaxFailureCount,KC_INT32,3,Maximum number of failure counts before module is disabled
+    ModuleFailureCountResetTime,KC_INT64,72000,Time after first failure at which the failure count is reset
+    _Schema,KC_SPACE,0,Module schema
+      ImagePath,KC_STRING,<Path to the library binary>,Path to the DLL (including DLL name)
+#      Flags,KC_INT32,0,Flags (Deprecated)
+      Disabled,KC_INT32,0,Module is disabled (Boolean)
+      FailureCount,KC_INT32,0,Number of failed loads
+      FailureTime,KC_INT64,0,FILETIME of first failure
+      FailureReason,KC_INT32,0,Reason for last failure.  One of the module status values.
+      PluginList,KC_STRING,<plugins>,List of plugins implemented in the module
+    _Schema,KC_ENDSPACE,0,
+# The OpenAFS plug-in is installed separately.
+#    OpenAFS,KC_SPACE,0,OpenAFS Module
+#      ImagePath,KC_STRING,afscred.dll,
+#      PluginList,KC_STRING,AfsCred,
+#    OpenAFS,KC_ENDSPACE,0,
+    MITKrb5,KC_SPACE,0,MIT Kerberos V
+      ImagePath,KC_STRING,krb5cred.dll,
+      PluginList,KC_STRING,Krb5Cred,
+    MITKrb5,KC_ENDSPACE,0,
+    MITKrb4,KC_SPACE,0,MIT Kerberos IV
+      ImagePath,KC_STRING,krb4cred.dll,
+      PluginList,KC_STRING,Krb4Cred,
+    MITKrb4,KC_ENDSPACE,0,
+  Modules,KC_ENDSPACE,0,
+PluginManager,KC_ENDSPACE,0,
index a33c523ac79c580530ed1a97de666061b6465595..7d7b545c1d74d724ef6c85b66dd28d8b1a7820ef 100644 (file)
-; // ** kmm_msgs.mc \r
-\r
-; /* Since .mc files can contain strings from any language, we define\r
-; all our messages in one file in the /lang/ directory instead of\r
-; language specific subdirectories. */\r
-\r
-; /* The type is set to (wchar_t *) because that's what we will be\r
-; feeding kherr_report() function. */\r
-\r
-MessageIdTypedef=LPWSTR\r
-\r
-; /* Severity values as defined in the message definition file are\r
-; currently ignored. */\r
-\r
-SeverityNames=(\r
-        Success=0x0\r
-)\r
-\r
-LanguageNames=(\r
-        English=0x409:MSG_ENU\r
-)\r
-\r
-OutputBase=16\r
-\r
-; /* Actual messages start here */\r
-\r
-MessageId=1\r
-Severity=Success\r
-SymbolicName=MSG_INITIAL\r
-Language=English\r
-Initial placeholder message\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_LOAD_DEFAULT\r
-Language=English\r
-Load default modules\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_INIT_MODULE\r
-Language=English\r
-Initializing module [%1]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_GET_CONFIG\r
-Language=English\r
-Can't get configuration for modules\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_NOT_PREINIT\r
-Language=English\r
-Module is not in PREINIT state.  Current state=[%1!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_NOT_REGISTERED\r
-Language=English\r
-Module is not registered\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_DISABLED\r
-Language=English\r
-Module is disabled\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_MAX_FAIL\r
-Language=English\r
-Module has failed too many times\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_INVALID_MODULE\r
-Language=English\r
-The DLL containing the module was not of the correct format.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_INCOMPATIBLE\r
-Language=English \r
-The DLL containing the module was not compatible with this version of NetIDMgr.\r
-.\r
-\r
-Messageid=\r
-SymbolicName=MSG_IM_NOT_FOUND\r
-Language=English\r
-Module binary was not found.  Checked path [%1]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_NO_ENTRY\r
-Language=English\r
-Entry point not found.  Checked entry point [%1]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_INIT_FAIL\r
-Language=English\r
-Module initialization entry point returned failure code [%1!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_NO_PLUGINS\r
-Language=English\r
-No plugins were registerd by the module\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IM_MOD_STATE\r
-Language=English\r
-Module [%1] is in state [%2!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IMERR_TITLE\r
-Language=English\r
-Failed to load module %1!s!\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IMERR_SUGGEST\r
-Language=English\r
-The following information may help resolve this issue:\r
-\r
-%2!s!\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_TASK_DESC\r
-Language=English\r
-Initializing plugin [%1]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_GET_CONFIG\r
-Language=English\r
-Can't get configuration for plugins\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_NOT_REGISTERED\r
-Language=English\r
-The plugin is not registered\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_DISABLED\r
-Language=English\r
-The plugin is disabled\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_HOLD\r
-Language=English\r
-Placing plugin [%1] on hold\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_STATE\r
-Language=English\r
-Leaving plugin [%1] in state [%2!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_IP_EXITING\r
-Language=English\r
-The plugin [%1] is in error state [%2!d!].  Exiting plugin.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_NOT_FOUND\r
-Language=English\r
-Can't get file version information for path [%1!s!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_NO_TRANS\r
-Language=English\r
-Can't get version resource tranlations list for path [%1!s!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_NO_LOCAL\r
-Language=English\r
-The list of version translations were empty or did not contain a resource for the current user or system locale.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_RES_MISSING\r
-Language=English\r
-Required resource %1!s! missing\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_MOD_MISMATCH\r
-Language=English\r
-The module name specified in the resource is [%1!s!] while the module name as registered is [%2!s!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_RES_TOO_LONG\r
-Language=English\r
-The resource %1!s! is malformed or too long\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_RMI_API_MISMATCH\r
-Language=English\r
-The module was compile for API version %1!d!.  However the current API version is %2!d!.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_START\r
-Language=English\r
-Starting plugin [%1!s!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INVALID_CODE_PTR\r
-Language=English\r
-The plugin is no longer valid.  This maybe because the module containing the plugin was unloaded.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INIT_RV\r
-Language=English\r
-Initialization of the plugin returned code %1!d!.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INIT_FAIL\r
-Language=English\r
-Initialization of the %1!s! plugin failed.  The plugin will be unloaded and any functionality provided will not be available.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INIT_FAIL_S\r
-Language=English\r
-Plugin %1!s! failed to initialize\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INIT_FAIL_G\r
-Language=English\r
-Details for plugin:\r
-Description: %2!s!\r
-Module: %3!s!\r
-Support: %4!s!\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PB_INIT_DONE\r
-Language=English\r
-Plugin running\r
-.\r
+; // ** kmm_msgs.mc 
+
+; /* Since .mc files can contain strings from any language, we define
+; all our messages in one file in the /lang/ directory instead of
+; language specific subdirectories. */
+
+; /* The type is set to (wchar_t *) because that's what we will be
+; feeding kherr_report() function. */
+
+MessageIdTypedef=LPWSTR
+
+; /* Severity values as defined in the message definition file are
+; currently ignored. */
+
+SeverityNames=(
+        Success=0x0
+)
+
+LanguageNames=(
+        English=0x409:MSG_ENU
+)
+
+OutputBase=16
+
+; /* Actual messages start here */
+
+MessageId=1
+Severity=Success
+SymbolicName=MSG_INITIAL
+Language=English
+Initial placeholder message
+.
+
+MessageId=
+SymbolicName=MSG_LOAD_DEFAULT
+Language=English
+Load default modules
+.
+
+MessageId=
+SymbolicName=MSG_INIT_MODULE
+Language=English
+Initializing module [%1]
+.
+
+MessageId=
+SymbolicName=MSG_IM_GET_CONFIG
+Language=English
+Can't get configuration for modules
+.
+
+MessageId=
+SymbolicName=MSG_IM_NOT_PREINIT
+Language=English
+Module is not in PREINIT state.  Current state=[%1!d!]
+.
+
+MessageId=
+SymbolicName=MSG_IM_NOT_REGISTERED
+Language=English
+Module is not registered
+.
+
+MessageId=
+SymbolicName=MSG_IM_DISABLED
+Language=English
+Module is disabled
+.
+
+MessageId=
+SymbolicName=MSG_IM_MAX_FAIL
+Language=English
+Module has failed too many times
+.
+
+MessageId=
+SymbolicName=MSG_IM_INVALID_MODULE
+Language=English
+The DLL containing the module was not of the correct format.
+.
+
+MessageId=
+SymbolicName=MSG_IM_INCOMPATIBLE
+Language=English 
+The DLL containing the module was not compatible with this version of NetIDMgr.
+.
+
+Messageid=
+SymbolicName=MSG_IM_NOT_FOUND
+Language=English
+Module binary was not found.  Checked path [%1]
+.
+
+MessageId=
+SymbolicName=MSG_IM_NO_ENTRY
+Language=English
+Entry point not found.  Checked entry point [%1]
+.
+
+MessageId=
+SymbolicName=MSG_IM_INIT_FAIL
+Language=English
+Module initialization entry point returned failure code [%1!d!]
+.
+
+MessageId=
+SymbolicName=MSG_IM_NO_PLUGINS
+Language=English
+No plugins were registerd by the module
+.
+
+MessageId=
+SymbolicName=MSG_IM_MOD_STATE
+Language=English
+Module [%1] is in state [%2!d!]
+.
+
+MessageId=
+SymbolicName=MSG_IMERR_TITLE
+Language=English
+Failed to load module %1!s!
+.
+
+MessageId=
+SymbolicName=MSG_IMERR_SUGGEST
+Language=English
+The following information may help resolve this issue:
+
+%2!s!
+.
+
+MessageId=
+SymbolicName=MSG_IP_TASK_DESC
+Language=English
+Initializing plugin [%1]
+.
+
+MessageId=
+SymbolicName=MSG_IP_GET_CONFIG
+Language=English
+Can't get configuration for plugins
+.
+
+MessageId=
+SymbolicName=MSG_IP_NOT_REGISTERED
+Language=English
+The plugin is not registered
+.
+
+MessageId=
+SymbolicName=MSG_IP_DISABLED
+Language=English
+The plugin is disabled
+.
+
+MessageId=
+SymbolicName=MSG_IP_HOLD
+Language=English
+Placing plugin [%1] on hold
+.
+
+MessageId=
+SymbolicName=MSG_IP_STATE
+Language=English
+Leaving plugin [%1] in state [%2!d!]
+.
+
+MessageId=
+SymbolicName=MSG_IP_EXITING
+Language=English
+The plugin [%1] is in error state [%2!d!].  Exiting plugin.
+.
+
+MessageId=
+SymbolicName=MSG_RMI_NOT_FOUND
+Language=English
+Can't get file version information for path [%1!s!]
+.
+
+MessageId=
+SymbolicName=MSG_RMI_NO_TRANS
+Language=English
+Can't get version resource tranlations list for path [%1!s!]
+.
+
+MessageId=
+SymbolicName=MSG_RMI_NO_LOCAL
+Language=English
+The list of version translations were empty or did not contain a resource for the current user or system locale.
+.
+
+MessageId=
+SymbolicName=MSG_RMI_RES_MISSING
+Language=English
+Required resource %1!s! missing
+.
+
+MessageId=
+SymbolicName=MSG_RMI_MOD_MISMATCH
+Language=English
+The module name specified in the resource is [%1!s!] while the module name as registered is [%2!s!]
+.
+
+MessageId=
+SymbolicName=MSG_RMI_RES_TOO_LONG
+Language=English
+The resource %1!s! is malformed or too long
+.
+
+MessageId=
+SymbolicName=MSG_RMI_API_MISMATCH
+Language=English
+The module was compile for API version %1!d!.  However the current API version is %2!d!.
+.
+
+MessageId=
+SymbolicName=MSG_PB_START
+Language=English
+Starting plugin [%1!s!]
+.
+
+MessageId=
+SymbolicName=MSG_PB_INVALID_CODE_PTR
+Language=English
+The plugin is no longer valid.  This maybe because the module containing the plugin was unloaded.
+.
+
+MessageId=
+SymbolicName=MSG_PB_INIT_RV
+Language=English
+Initialization of the plugin returned code %1!d!.
+.
+
+MessageId=
+SymbolicName=MSG_PB_INIT_FAIL
+Language=English
+Initialization of the %1!s! plugin failed.  The plugin will be unloaded and any functionality provided will not be available.
+.
+
+MessageId=
+SymbolicName=MSG_PB_INIT_FAIL_S
+Language=English
+Plugin %1!s! failed to initialize
+.
+
+MessageId=
+SymbolicName=MSG_PB_INIT_FAIL_G
+Language=English
+Details for plugin:
+Description: %2!s!
+Module: %3!s!
+Support: %4!s!
+.
+
+MessageId=
+SymbolicName=MSG_PB_INIT_DONE
+Language=English
+Plugin running
+.
index 20f65b1a6929b50c58323382d13a842b048e98b4..3d86d4dd3feb65bdde8dac9827f69c62b7dda00f 100644 (file)
@@ -1,48 +1,48 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=kmq\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\kmq.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\kmqmain.obj \\r
-       $(OBJ)\init.obj \\r
-       $(OBJ)\msgtype.obj \\r
-       $(OBJ)\consumer.obj \\r
-       $(OBJ)\publisher.obj \\r
-       $(OBJ)\kmqconfig.obj\r
-\r
-SDKLIBFILES=\\r
-       strsafe.lib\r
-\r
-$(OBJ)\kmqconfig.c: kmqconfig.csv $(CONFDIR)\csvschema.cfg\r
-       $(CCSV) $** $@\r
-\r
-all: mkdirs $(INCFILES) $(OBJFILES)\r
-\r
-clean::\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=kmq
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\kmq.h
+
+OBJFILES= \
+       $(OBJ)\kmqmain.obj \
+       $(OBJ)\init.obj \
+       $(OBJ)\msgtype.obj \
+       $(OBJ)\consumer.obj \
+       $(OBJ)\publisher.obj \
+       $(OBJ)\kmqconfig.obj
+
+SDKLIBFILES=\
+       strsafe.lib
+
+$(OBJ)\kmqconfig.c: kmqconfig.csv $(CONFDIR)\csvschema.cfg
+       $(CCSV) $** $@
+
+all: mkdirs $(INCFILES) $(OBJFILES)
+
+clean::
        if exist '..\obj' $(RM) $(INCFILES)
\ No newline at end of file
index c6d5ca451cb7324c49cbf9131c6a3d1b926ce765..317baa60e7d10d7dc7aa6877fd607840843b3494 100644 (file)
@@ -1,5 +1,5 @@
-Name,Type,Value,Description\r
-KMQ,KC_SPACE,0,Options for the credentials window\r
-  QueueDeadTimeout,KC_INT32,12000,\r
-  CallDeadTimeout,KC_INT32,8000,\r
-KMQ,KC_ENDSPACE,0,\r
+Name,Type,Value,Description
+KMQ,KC_SPACE,0,Options for the credentials window
+  QueueDeadTimeout,KC_INT32,12000,
+  CallDeadTimeout,KC_INT32,8000,
+KMQ,KC_ENDSPACE,0,
index 1f600b6b3b1256c08e3ee7a6286d0981b016b099..b4e0a9e72850c624d3a17223a617530017e65d3d 100644 (file)
@@ -1,74 +1,74 @@
-/*\r
- * Copyright (c) 2004 Massachusetts Institute of Technology\r
- *\r
- * Permission is hereby granted, free of charge, to any person\r
- * obtaining a copy of this software and associated documentation\r
- * files (the "Software"), to deal in the Software without\r
- * restriction, including without limitation the rights to use, copy,\r
- * modify, merge, publish, distribute, sublicense, and/or sell copies\r
- * of the Software, and to permit persons to whom the Software is\r
- * furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- */\r
-\r
-/* $Id$ */\r
-\r
-#include<afxres.h>\r
-#include<netidmgr_intver.h>\r
-\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif\r
-\r
-1 VERSIONINFO\r
- FILEVERSION KH_VERSION_LIST\r
- PRODUCTVERSION KH_VERSION_LIST\r
- FILEFLAGSMASK 0x17L\r
- FILEFLAGS KH_VER_FILEFLAGS\r
- FILEOS KH_VER_FILEOS\r
- FILETYPE KH_VER_FILETYPEDLL\r
- FILESUBTYPE 0x0L\r
-BEGIN\r
-    BLOCK "StringFileInfo"\r
-    BEGIN\r
-        BLOCK "040904b0"\r
-        BEGIN\r
-            VALUE "CompanyName", KH_VERSTR_COMPANY_1033\r
-            VALUE "FileDescription", "Network Identity Manager API"\r
-            VALUE "FileVersion", KH_VERSTR_VERSION_1033\r
-            VALUE "InternalName", "nidmgr32"\r
-            VALUE "LegalCopyright", KH_VERSTR_COPYRIGHT_1033\r
-            VALUE "OriginalFilename", "nidmgr32.dll"\r
-            VALUE "ProductName", "Network Identity Manager"\r
-            VALUE "ProductVersion", KH_VERSTR_PRODUCT_1033\r
-#ifdef KH_VERSTR_COMMENT_1033\r
-            VALUE "Comments",     KH_VERSTR_COMMENT_1033\r
-#endif\r
-#ifdef KH_VERSTR_PRIVATE_1033\r
-            VALUE "PrivateBuild", KH_VERSTR_PRIVATE_1033\r
-#endif\r
-#ifdef KH_VERSTR_SPECIAL_1033\r
-            VALUE "SpecialBuild", KH_VERSTR_SPECIAL_1033\r
-#endif\r
-        END\r
-    END\r
-\r
-/* Language independent */\r
-    BLOCK "VarFileInfo"\r
-    BEGIN\r
-        VALUE "Translation", 0x409, 1200\r
-    END\r
-\r
-END\r
+/*
+ * Copyright (c) 2004 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/* $Id$ */
+
+#include<afxres.h>
+#include<netidmgr_intver.h>
+
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif
+
+1 VERSIONINFO
+ FILEVERSION KH_VERSION_LIST
+ PRODUCTVERSION KH_VERSION_LIST
+ FILEFLAGSMASK 0x17L
+ FILEFLAGS KH_VER_FILEFLAGS
+ FILEOS KH_VER_FILEOS
+ FILETYPE KH_VER_FILETYPEDLL
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", KH_VERSTR_COMPANY_1033
+            VALUE "FileDescription", "Network Identity Manager API"
+            VALUE "FileVersion", KH_VERSTR_VERSION_1033
+            VALUE "InternalName", "nidmgr32"
+            VALUE "LegalCopyright", KH_VERSTR_COPYRIGHT_1033
+            VALUE "OriginalFilename", "nidmgr32.dll"
+            VALUE "ProductName", "Network Identity Manager"
+            VALUE "ProductVersion", KH_VERSTR_PRODUCT_1033
+#ifdef KH_VERSTR_COMMENT_1033
+            VALUE "Comments",     KH_VERSTR_COMMENT_1033
+#endif
+#ifdef KH_VERSTR_PRIVATE_1033
+            VALUE "PrivateBuild", KH_VERSTR_PRIVATE_1033
+#endif
+#ifdef KH_VERSTR_SPECIAL_1033
+            VALUE "SpecialBuild", KH_VERSTR_SPECIAL_1033
+#endif
+        END
+    END
+
+/* Language independent */
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+
+END
index b4085d13feda8f9c560492bcc53d29eb3eaf848f..1f347ceef0bf857424ffd5fb873ea0c1a36b644d 100644 (file)
@@ -1,43 +1,43 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=plugins\common\r
-!include <../../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\krb5common.h \\r
-       $(INCDIR)\dynimport.h\r
-\r
-OBJFILES= \\r
-       $(LIBDIR)\krb5common.obj \\r
-       $(LIBDIR)\dynimport.obj\r
-\r
-all: mkdirs $(INCFILES) $(OBJFILES)\r
-\r
-clean::\r
-       if exist "$(INCDIR)" $(RM) $(INCFILES)\r
-       if exist "$(LIBDIR)" $(RM) $(OBJFILES)\r
-\r
-{}.c{$(LIBDIR)}.obj:\r
-       $(C2OBJ)\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=plugins\common
+!include <../../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\krb5common.h \
+       $(INCDIR)\dynimport.h
+
+OBJFILES= \
+       $(LIBDIR)\krb5common.obj \
+       $(LIBDIR)\dynimport.obj
+
+all: mkdirs $(INCFILES) $(OBJFILES)
+
+clean::
+       if exist "$(INCDIR)" $(RM) $(INCFILES)
+       if exist "$(LIBDIR)" $(RM) $(OBJFILES)
+
+{}.c{$(LIBDIR)}.obj:
+       $(C2OBJ)
index 3d95b40b34fa87b454de43d0ddafaebc84cbae82..3d791214b7e3ef93d8f2ac709a906fdc83abb93b 100644 (file)
@@ -1,17 +1,17 @@
-Name,Type,Value,Description\r
-Krb4Cred,KC_SPACE,0,"Kerberos IV Credentials Provider"\r
-  Module,KC_STRING,"MITKrb4",\r
-  Description,KC_STRING,"Kerberos IV Credentials Provider",\r
-  Dependencies,KC_STRING,Krb5Cred,\r
-  Type,KC_INT32,1,\r
-  Flags,KC_INT32,0,\r
-  Parameters,KC_SPACE,0,Parameters for KrbCred\r
-    Krb4NewCreds,KC_INT32,1,Obtain Kerberos 4 tickets (Boolean)\r
-    Krb4Method,KC_INT32,0,Method for acquiring K4 tix. 0-Auto;1-Password;2-K524\r
-    CreateMissingConfig,KC_INT32,0,Create missing configuration files\r
-    DefaultLifetime,KC_INT32,36000,Default ticket lifetime\r
-    MaxLifetime,KC_INT32,86400,Maximum lifetime\r
-    MinLifetime,KC_INT32,60,Minimum lifetime\r
-    TktString,KC_STRING,,Ticket string.  Use default if NULL\r
-  Parameters,KC_ENDSPACE,0,\r
-Krb4Cred,KC_ENDSPACE,0,\r
+Name,Type,Value,Description
+Krb4Cred,KC_SPACE,0,"Kerberos IV Credentials Provider"
+  Module,KC_STRING,"MITKrb4",
+  Description,KC_STRING,"Kerberos IV Credentials Provider",
+  Dependencies,KC_STRING,Krb5Cred,
+  Type,KC_INT32,1,
+  Flags,KC_INT32,0,
+  Parameters,KC_SPACE,0,Parameters for KrbCred
+    Krb4NewCreds,KC_INT32,1,Obtain Kerberos 4 tickets (Boolean)
+    Krb4Method,KC_INT32,0,Method for acquiring K4 tix. 0-Auto;1-Password;2-K524
+    CreateMissingConfig,KC_INT32,0,Create missing configuration files
+    DefaultLifetime,KC_INT32,36000,Default ticket lifetime
+    MaxLifetime,KC_INT32,86400,Maximum lifetime
+    MinLifetime,KC_INT32,60,Minimum lifetime
+    TktString,KC_STRING,,Ticket string.  Use default if NULL
+  Parameters,KC_ENDSPACE,0,
+Krb4Cred,KC_ENDSPACE,0,
index 12c3903f5ef978342f509e7a34e3d857e3320d2a..1c011ab9cd25c5723de5b7875f5450dd8da54f79 100644 (file)
-// Microsoft Visual C++ generated resource script.\r
-//\r
-#include "..\..\langres.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "..\\..\\langres.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_NC_KRB4 DIALOGEX 0, 0, 300, 166\r
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "Kerberos v4 Ticket Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11\r
-    CONTROL         "Obtain Kerberos v4 credentials",IDC_NCK4_OBTAIN,"Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,26,128,10\r
-    GROUPBOX        "Obtain Kerberos v4 credentials using",IDC_STATIC,7,43,286,72,WS_GROUP\r
-    CONTROL         "Automatically determine method",IDC_NCK4_AUTO,"Button",BS_AUTORADIOBUTTON,22,59,119,10\r
-    CONTROL         "Kerberos v5 to v4 translation",IDC_NCK4_K524,"Button",BS_AUTORADIOBUTTON,22,76,109,10\r
-    CONTROL         "Password",IDC_NCK4_PWD,"Button",BS_AUTORADIOBUTTON,22,93,47,10\r
-END\r
-\r
-IDD_CFG_KRB4 DIALOGEX 0, 0, 255, 182\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    LTEXT           "Credential cache location",IDC_CFG_LBL_CACHE,7,10,67,8\r
-    EDITTEXT        IDC_CFG_CACHE,83,7,165,14,ES_AUTOHSCROLL\r
-    LTEXT           "Config file path",IDC_CFG_LBL_CFGFILE,7,30,50,8\r
-    EDITTEXT        IDC_CFG_CFGPATH,83,27,165,14,ES_AUTOHSCROLL | ES_READONLY\r
-    PUSHBUTTON      "Browse...",IDC_CFG_CFGBROW,200,95,48,14,NOT WS_VISIBLE\r
-    LTEXT           "Realm file path",IDC_CFG_LBL_RLMPATH,7,50,48,8\r
-    EDITTEXT        IDC_CFG_RLMPATH,83,47,165,14,ES_AUTOHSCROLL | ES_READONLY\r
-    PUSHBUTTON      "Browse...",IDC_CFG_RLMBROW,200,127,48,14,NOT WS_VISIBLE\r
-END\r
-\r
-IDD_CFG_IDS_KRB4 DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "Obtain Kerberos v4 credentials",IDC_CFG_GETTIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,221,17\r
-    LTEXT           "Note that, if enabled, Kerberos v4 credentials will be acquired during initial credential acquisition and during credential renewals.\n\nHowever, currently Kerberos v4 credentials can only be obtained for the default identity.",IDC_STATIC,7,91,221,53,SS_SUNKEN\r
-END\r
-\r
-IDD_CFG_ID_KRB4 DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "Obtain Kerberos v4 credentials for this identity",IDC_CFG_GETTIX,\r
-                    "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,7,165,10\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO \r
-BEGIN\r
-    IDD_NC_KRB4, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 293\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 159\r
-    END\r
-\r
-    IDD_CFG_KRB4, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 248\r
-        VERTGUIDE, 83\r
-        VERTGUIDE, 196\r
-        VERTGUIDE, 200\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 175\r
-    END\r
-\r
-    IDD_CFG_IDS_KRB4, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-\r
-    IDD_CFG_ID_KRB4, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_PLUGIN              ICON                    "..\\..\\images\\plugin.ico"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_PLUGIN_DESC         "Kerberos v4 Credentials Provider"\r
-    IDS_NC_K4_SHORT         "Kerberos v4"\r
-    IDS_ERR_REALM           "Could not resolve Kerberos v4 realm"\r
-    IDS_ERR_PRINCIPAL       "Invalid principal"\r
-    IDS_ERR_INVINST         "Invalid instance"\r
-    IDS_ERR_PWINTKT         "Could not obtain Kerberos v4 credentials"\r
-    IDS_CT_DISABLED         "<p><a id=""SwitchPanel"" param=""Krb4Cred""><b>Krb4</b></a><tab>: Disabled  (click <a id=""Krb4Cred:Enable"">here</a> to enable)</p>"\r
-    IDS_CT_TGTFOR           "<p><a id=""SwitchPanel"" param=""Krb4Cred""><b>Krb4</b></a><tab>: Credentials for realm %s</p>"\r
-    IDS_METHOD_AUTO         "Automatically determined method"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_KRB4_SHORT_DESC     "Kerberos v4"\r
-    IDS_KRB4_LONG_DESC      "Kerberos v4"\r
-    IDS_CFG_KRB4_LONG       "Kerberos v4 Configuration"\r
-    IDS_CFG_KRB4_SHORT      "Kerberos v4"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_METHOD_PWD          "Password"\r
-    IDS_METHOD_K524         "Kerberos v5 to v4 translation"\r
-    IDS_CFG_IDS_KRB4_SHORT  "Kerberos v4"\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
-\r
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\..\langres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\..\\langres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_NC_KRB4 DIALOGEX 0, 0, 300, 166
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "Kerberos v4 Ticket Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11
+    CONTROL         "Obtain Kerberos v4 credentials",IDC_NCK4_OBTAIN,"Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,26,128,10
+    GROUPBOX        "Obtain Kerberos v4 credentials using",IDC_STATIC,7,43,286,72,WS_GROUP
+    CONTROL         "Automatically determine method",IDC_NCK4_AUTO,"Button",BS_AUTORADIOBUTTON,22,59,119,10
+    CONTROL         "Kerberos v5 to v4 translation",IDC_NCK4_K524,"Button",BS_AUTORADIOBUTTON,22,76,109,10
+    CONTROL         "Password",IDC_NCK4_PWD,"Button",BS_AUTORADIOBUTTON,22,93,47,10
+END
+
+IDD_CFG_KRB4 DIALOGEX 0, 0, 255, 182
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    LTEXT           "Credential cache location",IDC_CFG_LBL_CACHE,7,10,67,8
+    EDITTEXT        IDC_CFG_CACHE,83,7,165,14,ES_AUTOHSCROLL
+    LTEXT           "Config file path",IDC_CFG_LBL_CFGFILE,7,30,50,8
+    EDITTEXT        IDC_CFG_CFGPATH,83,27,165,14,ES_AUTOHSCROLL | ES_READONLY
+    PUSHBUTTON      "Browse...",IDC_CFG_CFGBROW,200,95,48,14,NOT WS_VISIBLE
+    LTEXT           "Realm file path",IDC_CFG_LBL_RLMPATH,7,50,48,8
+    EDITTEXT        IDC_CFG_RLMPATH,83,47,165,14,ES_AUTOHSCROLL | ES_READONLY
+    PUSHBUTTON      "Browse...",IDC_CFG_RLMBROW,200,127,48,14,NOT WS_VISIBLE
+END
+
+IDD_CFG_IDS_KRB4 DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "Obtain Kerberos v4 credentials",IDC_CFG_GETTIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,221,17
+    LTEXT           "Note that, if enabled, Kerberos v4 credentials will be acquired during initial credential acquisition and during credential renewals.\n\nHowever, currently Kerberos v4 credentials can only be obtained for the default identity.",IDC_STATIC,7,91,221,53,SS_SUNKEN
+END
+
+IDD_CFG_ID_KRB4 DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "Obtain Kerberos v4 credentials for this identity",IDC_CFG_GETTIX,
+                    "Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,7,165,10
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO 
+BEGIN
+    IDD_NC_KRB4, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 293
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 159
+    END
+
+    IDD_CFG_KRB4, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 248
+        VERTGUIDE, 83
+        VERTGUIDE, 196
+        VERTGUIDE, 200
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 175
+    END
+
+    IDD_CFG_IDS_KRB4, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+
+    IDD_CFG_ID_KRB4, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_PLUGIN              ICON                    "..\\..\\images\\plugin.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_PLUGIN_DESC         "Kerberos v4 Credentials Provider"
+    IDS_NC_K4_SHORT         "Kerberos v4"
+    IDS_ERR_REALM           "Could not resolve Kerberos v4 realm"
+    IDS_ERR_PRINCIPAL       "Invalid principal"
+    IDS_ERR_INVINST         "Invalid instance"
+    IDS_ERR_PWINTKT         "Could not obtain Kerberos v4 credentials"
+    IDS_CT_DISABLED         "<p><a id=""SwitchPanel"" param=""Krb4Cred""><b>Krb4</b></a><tab>: Disabled  (click <a id=""Krb4Cred:Enable"">here</a> to enable)</p>"
+    IDS_CT_TGTFOR           "<p><a id=""SwitchPanel"" param=""Krb4Cred""><b>Krb4</b></a><tab>: Credentials for realm %s</p>"
+    IDS_METHOD_AUTO         "Automatically determined method"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_KRB4_SHORT_DESC     "Kerberos v4"
+    IDS_KRB4_LONG_DESC      "Kerberos v4"
+    IDS_CFG_KRB4_LONG       "Kerberos v4 Configuration"
+    IDS_CFG_KRB4_SHORT      "Kerberos v4"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_METHOD_PWD          "Password"
+    IDS_METHOD_K524         "Kerberos v5 to v4 translation"
+    IDS_CFG_IDS_KRB4_SHORT  "Kerberos v4"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
+
index 9fa410f2fd605dc3b653f1b01e1a2e25ddb384d7..74fe5090583d972c3d9e7d030537009fed216908 100644 (file)
@@ -1,57 +1,57 @@
-; // ** krb5_msgs.mc\r
-\r
-; /* Since .mc files can contain strings from any language, we define\r
-; all our messages in one file in the /lang/ directory instead of\r
-; language specific subdirectories. */\r
-\r
-; /* The type is set to (wchar_t *) because that's what we will be\r
-; feeding kherr_report() function. */\r
-\r
-; // MessageIdTypedef=LPWSTR\r
-\r
-; /* Severity values as defined in the message definition file are\r
-; currently ignored. */\r
-\r
-SeverityNames=(\r
-        Success=0x0\r
-)\r
-\r
-LanguageNames=(\r
-        English=0x409:MSG_ENU\r
-)\r
-\r
-OutputBase=16\r
-\r
-; /* Actual messages start here */\r
-\r
-MessageId=1\r
-Severity=Success\r
-SymbolicName=MSG_INITIAL\r
-Language=English\r
-Initial placeholder message\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_K4_NEW_CREDS\r
-Language=English\r
-Getting new Krb4 credentials for [%1!s!] using method [%2!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_K4_RENEW_CREDS\r
-Language=English\r
-Renewing Krb4 credentials for [%1!s!] using method [%2!d!]\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_K4_TRY_K524\r
-Language=English\r
-Trying Krb524 ...\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_K4_TRY_PASSWORD\r
-Language=English\r
-Trying Password ...\r
-.\r
-\r
+; // ** krb5_msgs.mc
+
+; /* Since .mc files can contain strings from any language, we define
+; all our messages in one file in the /lang/ directory instead of
+; language specific subdirectories. */
+
+; /* The type is set to (wchar_t *) because that's what we will be
+; feeding kherr_report() function. */
+
+; // MessageIdTypedef=LPWSTR
+
+; /* Severity values as defined in the message definition file are
+; currently ignored. */
+
+SeverityNames=(
+        Success=0x0
+)
+
+LanguageNames=(
+        English=0x409:MSG_ENU
+)
+
+OutputBase=16
+
+; /* Actual messages start here */
+
+MessageId=1
+Severity=Success
+SymbolicName=MSG_INITIAL
+Language=English
+Initial placeholder message
+.
+
+MessageId=
+SymbolicName=MSG_K4_NEW_CREDS
+Language=English
+Getting new Krb4 credentials for [%1!s!] using method [%2!d!]
+.
+
+MessageId=
+SymbolicName=MSG_K4_RENEW_CREDS
+Language=English
+Renewing Krb4 credentials for [%1!s!] using method [%2!d!]
+.
+
+MessageId=
+SymbolicName=MSG_K4_TRY_K524
+Language=English
+Trying Krb524 ...
+.
+
+MessageId=
+SymbolicName=MSG_K4_TRY_PASSWORD
+Language=English
+Trying Password ...
+.
+
index 929e0d09dd8a84bef120443e1af503c5fa06c514..d0e074f86e25a0d53b71be0e33cb61799cc45583 100644 (file)
@@ -1,89 +1,89 @@
-/* Copyright (c) 2004 Massachusetts Institute of Technology\r
- *\r
- * Permission is hereby granted, free of charge, to any person\r
- * obtaining a copy of this software and associated documentation\r
- * files (the "Software"), to deal in the Software without\r
- * restriction, including without limitation the rights to use, copy,\r
- * modify, merge, publish, distribute, sublicense, and/or sell copies\r
- * of the Software, and to permit persons to whom the Software is\r
- * furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- *\r
- */\r
-\r
-/* $Id$ */\r
-\r
-#include<netidmgr_intver.h>\r
-\r
-#ifndef LANGVER\r
-\r
-#define STR_FILEDESC "Kerberos v4 Plugin for Network Identity Manager"\r
-#define STR_INTNAME  "krb4cred"\r
-#define STR_ORIGNAME "krb4cred.dll"\r
-\r
-#else\r
-\r
-#ifdef LANG_en_us\r
-\r
-#define STR_FILEDESC "English(US) language resources for the Keberos 4 plugin"\r
-#define STR_INTNAME  "krb4cred_en_us"\r
-#define STR_ORIGNAME "krb4cred_en_us.dll"\r
-\r
-#else\r
-\r
-#error Unknown langugae\r
-\r
-#endif\r
-\r
-#endif\r
-\r
-1 VERSIONINFO \r
-        FILEVERSION     KH_VERSION_LIST\r
-        PRODUCTVERSION  KH_VERSION_LIST\r
-        FILEFLAGSMASK   KH_VER_FILEFLAGMASK\r
-        FILEFLAGS       KH_VER_FILEFLAGS\r
-        FILEOS          KH_VER_FILEOS\r
-        FILETYPE        KH_VER_FILETYPEDLL\r
-        FILESUBTYPE     0\r
-  {\r
-\r
-    BLOCK "StringFileInfo"\r
-    {\r
-      BLOCK "040904b0"\r
-      {\r
-        VALUE "CompanyName",     KH_VERSTR_COMPANY_1033\r
-        VALUE "FileDescription", STR_FILEDESC\r
-        VALUE "FileVersion",     KH_VERSTR_VERSION_1033\r
-        VALUE "InternalName",    STR_INTNAME\r
-        VALUE "LegalCopyright",  KH_VERSTR_COPYRIGHT_1033\r
-        VALUE "OriginalFilename", STR_ORIGNAME\r
-        VALUE "ProductName",     "Network Identity Manager"\r
-        VALUE "ProductVersion",  KH_VERSTR_PRODUCT_1033\r
-#ifdef KH_VERSTR_COMMENT_1033\r
-        VALUE "Comment", KH_VERSTR_COMMENT_1033\r
-#endif\r
-#ifndef LANGVER\r
-        VALUE NIMV_MODULE,       "MITKrb4"\r
-        VALUE NIMV_PLUGINS,      "Krb4Cred"\r
-        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI\r
-        VALUE NIMV_SUPPORT,      "http://web.mit.edu/kerberos"\r
-#endif\r
-      }\r
-    }\r
-\r
-    BLOCK "VarFileInfo"\r
-    {\r
-        VALUE "Translation", 0x409, 1200\r
-    }\r
-  }\r
+/* Copyright (c) 2004 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+/* $Id$ */
+
+#include<netidmgr_intver.h>
+
+#ifndef LANGVER
+
+#define STR_FILEDESC "Kerberos v4 Plugin for Network Identity Manager"
+#define STR_INTNAME  "krb4cred"
+#define STR_ORIGNAME "krb4cred.dll"
+
+#else
+
+#ifdef LANG_en_us
+
+#define STR_FILEDESC "English(US) language resources for the Keberos 4 plugin"
+#define STR_INTNAME  "krb4cred_en_us"
+#define STR_ORIGNAME "krb4cred_en_us.dll"
+
+#else
+
+#error Unknown langugae
+
+#endif
+
+#endif
+
+1 VERSIONINFO 
+        FILEVERSION     KH_VERSION_LIST
+        PRODUCTVERSION  KH_VERSION_LIST
+        FILEFLAGSMASK   KH_VER_FILEFLAGMASK
+        FILEFLAGS       KH_VER_FILEFLAGS
+        FILEOS          KH_VER_FILEOS
+        FILETYPE        KH_VER_FILETYPEDLL
+        FILESUBTYPE     0
+  {
+
+    BLOCK "StringFileInfo"
+    {
+      BLOCK "040904b0"
+      {
+        VALUE "CompanyName",     KH_VERSTR_COMPANY_1033
+        VALUE "FileDescription", STR_FILEDESC
+        VALUE "FileVersion",     KH_VERSTR_VERSION_1033
+        VALUE "InternalName",    STR_INTNAME
+        VALUE "LegalCopyright",  KH_VERSTR_COPYRIGHT_1033
+        VALUE "OriginalFilename", STR_ORIGNAME
+        VALUE "ProductName",     "Network Identity Manager"
+        VALUE "ProductVersion",  KH_VERSTR_PRODUCT_1033
+#ifdef KH_VERSTR_COMMENT_1033
+        VALUE "Comment", KH_VERSTR_COMMENT_1033
+#endif
+#ifndef LANGVER
+        VALUE NIMV_MODULE,       "MITKrb4"
+        VALUE NIMV_PLUGINS,      "Krb4Cred"
+        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI
+        VALUE NIMV_SUPPORT,      "http://web.mit.edu/kerberos"
+#endif
+      }
+    }
+
+    BLOCK "VarFileInfo"
+    {
+        VALUE "Translation", 0x409, 1200
+    }
+  }
index cb4a860d914c37c8387eafae282fe48d84f5f750..3bb30ea777b1ac0683b4389a176916838916148d 100644 (file)
@@ -1,45 +1,45 @@
-Name,Type,Value,Description\r
-Krb5Cred,KC_SPACE,0,Kerberos V Credentials Provider\r
-  Module,KC_STRING,MITKrb5,\r
-  Description,KC_STRING,Kerberos V Credentials Provider,\r
-  Type,KC_INT32,1,\r
-  Flags,KC_INT32,0,\r
-  Parameters,KC_SPACE,0,Parameters for KrbCred\r
-    CreateMissingConfig,KC_INT32,0,Create missing configuration files\r
-    MsLsaImport,KC_INT32,1,Automatically import MSLSA credentials: 0-never 1-always 2-if principle matches\r
-    MsLsaList,KC_INT32,1,Include MSLSA in the credentials list\r
-    FileCCList,KC_STRING,,List of file CCaches to include in listing\r
-    AutoRenewTickets,KC_INT32,1,Automatically renew expiring tickets\r
-    DefaultLifetime,KC_INT32,36000,Default ticket lifetime\r
-    MaxLifetime,KC_INT32,86400,Maximum lifetime\r
-    MinLifetime,KC_INT32,60,Minimum lifetime\r
-    Forwardable,KC_INT32,1,Obtain forwardable tickets (boolean)\r
-    Proxiable,KC_INT32,0,Obtain proxiable tickets (boolean)\r
-    Addressless,KC_INT32,1,Obtain addressless tickets (boolean)\r
-    PublicIP,KC_INT32,0,Additional public IP address to use (int32)\r
-    Renewable,KC_INT32,1,Obtain renewable tickets (boolean)\r
-    DefaultRenewLifetime,KC_INT32,604800,Default renewable lifetime\r
-    MaxRenewLifetime,KC_INT32,2592000,Maximum renewable lifetime\r
-    MinRenewLifetime,KC_INT32,60,Maximum renewable lifetime\r
-    UseFullRealmList,KC_INT32,0,Use the full list of realms in the New Creds dialog\r
-    LRURealms,KC_STRING,,\r
-    LRUPrincipals,KC_STRING,,\r
-    LastDefaultIdent,KC_STRING,,Last known default identity\r
-    PromptCacheLifetime,KC_INT32,172800,Lifetime of the prompt cache in seconds\r
-    DefaultCCName,KC_STRING,,Default CC name (only per identity)\r
-    DefaultToFileCache,KC_INT32,0,"If no DefaultCCName is specified for an identity, use a generated FILE: cache instead of an API: cache"\r
-    PromptCache,KC_SPACE,0,Cache of prompts (only per identity)\r
-      Name,KC_STRING,,\r
-      Banner,KC_STRING,,\r
-      PromptCount,KC_INT32,0,\r
-      ExpiresOn,KC_INT64,0,FILETIME of when the prompt cache is set to expire\r
-      (n),KC_SPACE,0,Parameters for each prompt\r
-        Prompt,KC_STRING,,\r
-        Type,KC_INT32,0,\r
-        Flags,KC_INT32,0,\r
-      (n),KC_ENDSPACE,0,\r
-    PromptCache,KC_ENDSPACE,0,\r
-    Realms,KC_SPACE,0,Realm specific configuration (same schema as per identity config)\r
-    Realms,KC_ENDSPACE,0,\r
-  Parameters,KC_ENDSPACE,0,\r
-Krb5Cred,KC_ENDSPACE,0,\r
+Name,Type,Value,Description
+Krb5Cred,KC_SPACE,0,Kerberos V Credentials Provider
+  Module,KC_STRING,MITKrb5,
+  Description,KC_STRING,Kerberos V Credentials Provider,
+  Type,KC_INT32,1,
+  Flags,KC_INT32,0,
+  Parameters,KC_SPACE,0,Parameters for KrbCred
+    CreateMissingConfig,KC_INT32,0,Create missing configuration files
+    MsLsaImport,KC_INT32,1,Automatically import MSLSA credentials: 0-never 1-always 2-if principle matches
+    MsLsaList,KC_INT32,1,Include MSLSA in the credentials list
+    FileCCList,KC_STRING,,List of file CCaches to include in listing
+    AutoRenewTickets,KC_INT32,1,Automatically renew expiring tickets
+    DefaultLifetime,KC_INT32,36000,Default ticket lifetime
+    MaxLifetime,KC_INT32,86400,Maximum lifetime
+    MinLifetime,KC_INT32,60,Minimum lifetime
+    Forwardable,KC_INT32,1,Obtain forwardable tickets (boolean)
+    Proxiable,KC_INT32,0,Obtain proxiable tickets (boolean)
+    Addressless,KC_INT32,1,Obtain addressless tickets (boolean)
+    PublicIP,KC_INT32,0,Additional public IP address to use (int32)
+    Renewable,KC_INT32,1,Obtain renewable tickets (boolean)
+    DefaultRenewLifetime,KC_INT32,604800,Default renewable lifetime
+    MaxRenewLifetime,KC_INT32,2592000,Maximum renewable lifetime
+    MinRenewLifetime,KC_INT32,60,Maximum renewable lifetime
+    UseFullRealmList,KC_INT32,0,Use the full list of realms in the New Creds dialog
+    LRURealms,KC_STRING,,
+    LRUPrincipals,KC_STRING,,
+    LastDefaultIdent,KC_STRING,,Last known default identity
+    PromptCacheLifetime,KC_INT32,172800,Lifetime of the prompt cache in seconds
+    DefaultCCName,KC_STRING,,Default CC name (only per identity)
+    DefaultToFileCache,KC_INT32,0,"If no DefaultCCName is specified for an identity, use a generated FILE: cache instead of an API: cache"
+    PromptCache,KC_SPACE,0,Cache of prompts (only per identity)
+      Name,KC_STRING,,
+      Banner,KC_STRING,,
+      PromptCount,KC_INT32,0,
+      ExpiresOn,KC_INT64,0,FILETIME of when the prompt cache is set to expire
+      (n),KC_SPACE,0,Parameters for each prompt
+        Prompt,KC_STRING,,
+        Type,KC_INT32,0,
+        Flags,KC_INT32,0,
+      (n),KC_ENDSPACE,0,
+    PromptCache,KC_ENDSPACE,0,
+    Realms,KC_SPACE,0,Realm specific configuration (same schema as per identity config)
+    Realms,KC_ENDSPACE,0,
+  Parameters,KC_ENDSPACE,0,
+Krb5Cred,KC_ENDSPACE,0,
index 67492dadf1e97ce05af50aa78250b95df0819460..bcf837587fbada53f12f9af9ea6378cb4ba7d71d 100644 (file)
-// Microsoft Visual C++ generated resource script.\r
-//\r
-#include "..\..\langres.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "..\\..\\langres.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_NC_KRB5 DIALOGEX 0, 0, 300, 166\r
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "Kerberos v5 Credential Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11\r
-    LTEXT           "Realm",IDC_STATIC,7,25,52,13\r
-    COMBOBOX        IDC_NCK5_REALM,60,25,233,51,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Specify &additional realms ...",IDC_NCK5_ADD_REALMS,181,43,112,16,BS_NOTIFY | NOT WS_VISIBLE | WS_DISABLED\r
-    LTEXT           "&Lifetime",IDC_STATIC,7,67,61,12\r
-    EDITTEXT        IDC_NCK5_LIFETIME_EDIT,85,67,107,12,ES_AUTOHSCROLL\r
-    CONTROL         "&Renewable for",IDC_NCK5_RENEWABLE,"Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,87,64,12\r
-    EDITTEXT        IDC_NCK5_RENEW_EDIT,85,87,108,12,ES_AUTOHSCROLL\r
-    CONTROL         "Can be &forwarded to other machines",IDC_NCK5_FORWARDABLE,\r
-                    "Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,107,132,12\r
-    CONTROL         "Addressless",IDC_NCK5_ADDRESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,128,54,10\r
-    LTEXT           "Additional IP address",IDC_STATIC,118,129,68,8,NOT WS_VISIBLE\r
-    CONTROL         "",IDC_NCK5_PUBLICIP,"SysIPAddress32",NOT WS_VISIBLE | WS_TABSTOP,193,125,100,15\r
-END\r
-\r
-IDD_PP_KRB5C DIALOGEX 0, 0, 235, 156\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-CAPTION "Kerberos v5"\r
-FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "Name",IDC_STATIC,7,7,19,8\r
-    LTEXT           "Valid till",IDC_STATIC,7,39,24,8\r
-    LTEXT           "Renewable till",IDC_STATIC,7,55,45,12\r
-    LTEXT           "Issued on",IDC_STATIC,7,23,32,8\r
-    LTEXT           "Credential flags",IDC_STATIC,7,75,51,8\r
-    EDITTEXT        IDC_PPK5_NAME,72,7,156,12,ES_AUTOHSCROLL | ES_READONLY\r
-    EDITTEXT        IDC_PPK5_ISSUE,72,23,156,12,ES_AUTOHSCROLL | ES_READONLY\r
-    EDITTEXT        IDC_PPK5_VALID,72,39,156,12,ES_AUTOHSCROLL | ES_READONLY\r
-    EDITTEXT        IDC_PPK5_RENEW,72,55,156,12,ES_AUTOHSCROLL | ES_READONLY\r
-    LISTBOX         IDC_PPK5_FLAGS,72,74,156,75,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
-END\r
-\r
-IDD_PP_KRB5 DIALOGEX 0, 0, 235, 156\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-CAPTION "Kerberos v5"\r
-FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "Default realm",IDC_STATIC,7,7,44,8\r
-    LTEXT           "Default lifetime",IDC_STATIC,7,22,49,8\r
-    LTEXT           "Minimum lifetime",IDC_STATIC,7,37,52,8\r
-    LTEXT           "Maximum lifetime",IDC_STATIC,7,52,55,8\r
-    LTEXT           "Renewable lifetime",IDC_STATIC,7,67,61,8\r
-    LTEXT           "Min. Renewable lifetime",IDC_STATIC,7,82,76,8\r
-    LTEXT           "Max. Renewable lifetime",IDC_STATIC,7,97,79,8\r
-    GROUPBOX        "Default credential flags",IDC_STATIC,7,113,221,36\r
-    CONTROL         "Proxiable",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,129,45,10\r
-    CONTROL         "Renewable",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,129,51,10\r
-    CONTROL         "Forwardable",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,129,56,10\r
-    LTEXT           "ATHENA.MIT.EDU",IDC_STATIC,95,7,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "10 hours",IDC_STATIC,95,22,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "1 minute",IDC_STATIC,95,37,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "7 days",IDC_STATIC,95,52,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "7 days",IDC_STATIC,95,67,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "1 minute",IDC_STATIC,95,82,133,11,0,WS_EX_CLIENTEDGE\r
-    LTEXT           "21 days",IDC_STATIC,95,97,133,11,0,WS_EX_CLIENTEDGE\r
-END\r
-\r
-IDD_CONFIG DIALOGEX 0, 0, 255, 182\r
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    LTEXT           "Default Realm",IDC_CFG_LBL_REALM,13,9,46,8\r
-    COMBOBOX        IDC_CFG_DEFREALM,76,7,166,51,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Include all configured realms in New Credentials realm list",IDC_CFG_INCREALMS,\r
-                    "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,76,26,166,22\r
-    PUSHBUTTON      "Configure Realms ...",IDC_CFG_CFGREALMS,76,46,84,14,NOT WS_VISIBLE | WS_DISABLED\r
-    GROUPBOX        "Configuration File",IDC_CFG_CFGFILEGRP,7,59,241,47\r
-    LTEXT           "Location",IDC_CFG_LBL_CFGFILE,13,74,28,8\r
-    EDITTEXT        IDC_CFG_CFGFILE,76,71,166,14,ES_AUTOHSCROLL | ES_READONLY\r
-    PUSHBUTTON      "Browse...",IDC_CFG_BROWSE,145,89,44,14,NOT WS_VISIBLE\r
-    CONTROL         "Create file if missing",IDC_CFG_CREATECONFIG,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,76,93,80,10\r
-    PUSHBUTTON      "Load into realm editor ...",IDC_CFG_BROWSE2,26,89,100,14,NOT WS_VISIBLE\r
-    GROUPBOX        "Microsoft Windows® Options",IDC_CFG_WINGRP,7,110,241,65\r
-    LTEXT           "Hostname",IDC_CFG_LBL_HOSTNAME,13,123,33,8\r
-    EDITTEXT        IDC_CFG_HOSTNAME,76,120,166,14,ES_AUTOHSCROLL | ES_READONLY\r
-    LTEXT           "Domain",IDC_CFG_LBL_DOMAIN,13,141,24,8\r
-    EDITTEXT        IDC_CFG_DOMAIN,76,138,166,14,ES_AUTOHSCROLL | ES_READONLY\r
-    LTEXT           "Import credentials",IDC_LBL_IMPORT,13,158,45,8\r
-    COMBOBOX        IDC_CFG_IMPORT,76,156,166,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
-END\r
-\r
-IDD_CFG_REALMS DIALOGEX 0, 0, 255, 182\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "",IDC_CFG_REALMS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_TABSTOP,7,19,81,148\r
-    GROUPBOX        "Kerberos v5 Servers",IDC_CFG_SERVERSGRP,93,7,155,91\r
-    GROUPBOX        "Domain to Realm mappings",IDC_CFG_DOMAINGRP,93,101,155,74\r
-    CONTROL         "",IDC_CFG_KDC,"SysListView32",LVS_REPORT | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_TABSTOP,99,19,143,72\r
-    CONTROL         "",IDC_CFG_DMAP,"SysListView32",LVS_REPORT | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_TABSTOP,99,111,143,56\r
-END\r
-\r
-IDD_CFG_IDS_TAB DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    LTEXT           "Ticket &lifetime",IDC_CFG_LBL_DEFLIFE,7,10,44,8\r
-    EDITTEXT        IDC_CFG_DEFLIFE,94,7,134,14,ES_AUTOHSCROLL\r
-    LTEXT           "Ticket re&newable lifetime",IDC_CFG_LBL_DEFRLIFE,7,29,80,8\r
-    EDITTEXT        IDC_CFG_DEFRLIFE,94,26,134,14,ES_AUTOHSCROLL\r
-    CONTROL         "&Renewable",IDC_CFG_RENEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,47,51,10\r
-    CONTROL         "&Forwardable",IDC_CFG_FORWARD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,47,56,10\r
-    CONTROL         "&Addressless",IDC_CFG_ADDRESSLESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,63,54,10\r
-    GROUPBOX        "Credential lifetime range",IDC_CFG_LIFEGRP,7,79,221,31\r
-    LTEXT           "From",IDC_STATIC,13,93,17,8\r
-    EDITTEXT        IDC_CFG_LRNG_MIN,38,90,79,14,ES_AUTOHSCROLL\r
-    LTEXT           "To",IDC_STATIC,125,93,9,8\r
-    EDITTEXT        IDC_CFG_LRNG_MAX,143,90,79,14,ES_AUTOHSCROLL\r
-    GROUPBOX        "Credential renewable lifetime range",IDC_STATIC,7,113,221,31\r
-    LTEXT           "From",IDC_STATIC,13,128,17,8\r
-    EDITTEXT        IDC_CFG_RLRNG_MIN,38,125,79,14,ES_AUTOHSCROLL\r
-    LTEXT           "To",IDC_STATIC,125,128,9,8\r
-    EDITTEXT        IDC_CFG_RLRNG_MAX,143,125,79,14,ES_AUTOHSCROLL\r
-END\r
-\r
-IDD_CFG_ID_TAB DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    LTEXT           "Credential lifetime",IDC_CFG_LBL_DEFLIFE,7,10,58,8\r
-    EDITTEXT        IDC_CFG_DEFLIFE,91,7,137,14,ES_AUTOHSCROLL\r
-    CONTROL         "Renewable for",IDC_CFG_RENEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,41,63,10\r
-    EDITTEXT        IDC_CFG_DEFRLIFE,91,39,137,14,ES_AUTOHSCROLL\r
-    CONTROL         "Can be forwarded to other machines",IDC_CFG_FORWARD,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,59,133,10\r
-    CONTROL         "Addressless",IDC_CFG_ADDRESSLESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,77,54,10\r
-    LTEXT           "Additional IP address",IDC_STATIC,91,78,68,8,NOT WS_VISIBLE\r
-    CONTROL         "",IDC_CFG_PUBLICIP,"SysIPAddress32",NOT WS_VISIBLE | WS_TABSTOP,128,89,100,15\r
-    LTEXT           "Credential cache",IDC_STATIC,7,132,58,8\r
-    EDITTEXT        IDC_CFG_CCACHE,91,130,137,14,ES_AUTOHSCROLL\r
-END\r
-\r
-IDD_NC_KRB5_PASSWORD DIALOGEX 0, 0, 300, 166\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "Kerberos v5 Change Password Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11\r
-    LTEXT           "Realm",IDC_STATIC,7,25,52,13\r
-    COMBOBOX        IDC_NCK5_REALM,60,25,233,51,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Specify &additional realms ...",IDC_NCK5_ADD_REALMS,181,43,112,16,BS_NOTIFY | WS_DISABLED\r
-END\r
-\r
-IDD_CFG_CACHES DIALOGEX 0, 0, 255, 182\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-EXSTYLE WS_EX_CONTROLPARENT\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    GROUPBOX        "File-based Credential Caches",IDC_CFG_FCGRP,7,26,241,149\r
-    CONTROL         "",IDC_CFG_FCLIST,"SysListView32",LVS_REPORT | LVS_SORTASCENDING | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,13,37,229,97\r
-    EDITTEXT        IDC_CFG_FCNAME,13,139,173,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "&Browse ...",IDC_CFG_BROWSE,192,139,50,14\r
-    PUSHBUTTON      "Add",IDC_CFG_ADD,13,156,50,14\r
-    PUSHBUTTON      "Remove Selected",IDC_CFG_REMOVE,88,156,80,14\r
-    CONTROL         "Include all API: credentials caches",IDC_CFG_INCAPI,\r
-                    "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,123,7,125,10\r
-    CONTROL         "Include Windows LSA cache (MSLSA:)",IDC_CFG_INCMSLSA,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,7,136,10\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO \r
-BEGIN\r
-    IDD_NC_KRB5, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 293\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 159\r
-    END\r
-\r
-    IDD_PP_KRB5C, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 149\r
-    END\r
-\r
-    IDD_PP_KRB5, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 149\r
-    END\r
-\r
-    IDD_CONFIG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 248\r
-        VERTGUIDE, 13\r
-        VERTGUIDE, 76\r
-        VERTGUIDE, 242\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 175\r
-    END\r
-\r
-    IDD_CFG_REALMS, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 248\r
-        VERTGUIDE, 93\r
-        VERTGUIDE, 99\r
-        VERTGUIDE, 242\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 175\r
-        HORZGUIDE, 19\r
-        HORZGUIDE, 167\r
-    END\r
-\r
-    IDD_CFG_IDS_TAB, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        VERTGUIDE, 13\r
-        VERTGUIDE, 94\r
-        VERTGUIDE, 222\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-\r
-    IDD_CFG_ID_TAB, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        VERTGUIDE, 91\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-\r
-    IDD_NC_KRB5_PASSWORD, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 293\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 159\r
-    END\r
-\r
-    IDD_CFG_CACHES, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 248\r
-        VERTGUIDE, 7\r
-        VERTGUIDE, 13\r
-        VERTGUIDE, 242\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 175\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_PLUGIN              ICON                    "..\\..\\images\\krb5plugin.ico"\r
-IDI_DELETED             ICON                    "..\\..\\images\\deleted.ico"\r
-IDI_NEW                 ICON                    "..\\..\\images\\new.ico"\r
-IDI_NORMAL              ICON                    "..\\..\\images\\normal.ico"\r
-IDI_MODIFIED            ICON                    "..\\..\\images\\modified.ico"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_UNK_ADDR_FMT        "Unknown address type %d"\r
-    IDS_KRB5_CREDTEXT_0     "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: Tickets for realm %s</p>"\r
-    IDS_KRB5_CCNAME_SHORT_DESC "Kerberos v5 CCache"\r
-    IDS_KEY_ENCTYPE_SHORT_DESC "Session EncType"\r
-    IDS_TKT_ENCTYPE_SHORT_DESC "Service EncType"\r
-    IDS_KEY_ENCTYPE_LONG_DESC "Session Key Encryption Type"\r
-    IDS_TKT_ENCTYPE_LONG_DESC "Service Encryption Type"\r
-    IDS_ADDR_LIST_SHORT_DESC "Addresses"\r
-    IDS_ADDR_LIST_LONG_DESC "Address List"\r
-    IDS_ETYPE_NULL          "NULL"\r
-    IDS_ETYPE_DES_CBC_CRC   "DES-CBC-CRC"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_ETYPE_DES_CBC_MD4   "DES-CBC-MD4"\r
-    IDS_ETYPE_DES_CBC_MD5   "DES-CBC-MD5"\r
-    IDS_ETYPE_DES_CBC_RAW   "DES-CBC-RAW"\r
-    IDS_ETYPE_DES3_CBC_SHA  "DES3-CBC-SHA"\r
-    IDS_ETYPE_DES3_CBC_RAW  "DES3-CBC-RAW"\r
-    IDS_ETYPE_DES_HMAC_SHA1 "DES-HMAC-SHA1"\r
-    IDS_ETYPE_DES3_CBC_SHA1 "DES3-CBC-SHA1"\r
-    IDS_ETYPE_AES128_CTS_HMAC_SHA1_96 "AES128_CTS-HMAC-SHA1_96"\r
-    IDS_ETYPE_AES256_CTS_HMAC_SHA1_96 "AES256_CTS-HMAC-SHA1_96"\r
-    IDS_ETYPE_ARCFOUR_HMAC  "RC4-HMAC-NT"\r
-    IDS_ETYPE_ARCFOUR_HMAC_EXP "RC4-HMAC-NT-EXP"\r
-    IDS_ETYPE_UNKNOWN       "(Unknown)"\r
-    IDS_ETYPE_LOCAL_DES3_HMAC_SHA1 "LOCAL-DES3-HMAC-SHA1"\r
-    IDS_ETYPE_LOCAL_RC4_MD4 "LOCAL-RC4-MD4"\r
-    IDS_KRB5_SHORT_DESC     "Kerberos v5 credentials"\r
-    IDS_KRB5_LONG_DESC      "Kerberos v5 credentials"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_KRB4_SHORT_DESC     "Kerberos v4"\r
-    IDS_KRB4_LONG_DESC      "Kerberos v4 credentials"\r
-    IDS_KRB5_FLAGS_SHORT_DESC "Kerberos v5 Flags"\r
-    IDS_RENEW_TILL_SHORT_DESC "Renew Till"\r
-    IDS_RENEW_TILL_LONG_DESC "Renewable Till"\r
-    IDS_RENEW_FOR_SHORT_DESC "Renew for"\r
-    IDS_RENEW_FOR_LONG_DESC "Renewable for"\r
-    IDS_KRB5_CCNAME_LONG_DESC "Kerberos v5 Primary Credentials Cache"\r
-    IDS_NC_USERNAME         "Username"\r
-    IDS_NC_REALM            "Realm"\r
-    IDS_KRB5_WARNING        "Kerberos v5 Warning"\r
-    IDS_K5ERR_NAME_EXPIRED  "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: The selected principal name has expired.</p><p><tab>  Please contact your system administrator.</p>"\r
-    IDS_K5ERR_KEY_EXPIRED   "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: The password for the selected identity has expired.</p><p><tab>  Click <a id=""Krb5Cred:!Passwd"">here</a> to change the password</p>"\r
-    IDS_KRB5_WARN_FMT       "Kerberos v5: %s\n\n%s"\r
-    IDS_K5ERR_FMT           "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tag>: %s</p>"\r
-    IDS_K5CFG_SHORT_DESC    "Kerberos v5"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_K5CFG_LONG_DESC     "Kerberos v5 Configuration"\r
-    IDS_K5RLM_SHORT_DESC    "Realms"\r
-    IDS_K5RLM_LONG_DESC     "Kerberos Realm Configuration"\r
-    IDS_K5CFG_IDS_SHORT_DESC "Kerberos v5"\r
-    IDS_K5CFG_IDS_LONG_DESC "Kerberos v5 options for all identities"\r
-    IDS_K5CFG_ID_SHORT_DESC "Kerberos v5"\r
-    IDS_K5CFG_ID_LONG_DESC  "Kerberos v5 options for this identity"\r
-    IDS_PLUGIN_DESC         "Kerberos v5 Credentials Provider"\r
-    IDS_NC_PWD_BANNER       "Changing Kerberos v5 Password"\r
-    IDS_NC_PWD_PWD          "Current Password"\r
-    IDS_NC_PWD_NPWD         "New Password"\r
-    IDS_NC_PWD_NPWD_AGAIN   "New Password again"\r
-    IDS_KRB5_CREDTEXT_P0    "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: Changing password for %s</p>"\r
-    IDS_K5CFG_IMPORT_OPTIONS "Never,Always,Only when the principal matches"\r
-    IDS_IDENTPRO_DESC       "Kerberos v5 Identity Provider"\r
-    IDS_K5CCC_SHORT_DESC    "Credential Caches"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_K5CCC_LONG_DESC     "Kerberos v5 Credential Caches"\r
-    IDS_CFG_FCTITLE         "File based Credential Caches"\r
-    IDS_CFG_FCN_WARNING     "Warning:"\r
-    IDS_CFG_FCN_W_NOTFOUND  "The credentials cache you specified does not exist."\r
-    IDS_CFG_FCN_W_RELATIVE  "The path you specified not an absolute path."\r
-    IDS_CFG_FCOPENTITLE     "Select a credential cache to add"\r
-    IDS_UNAVAILABLE         "(Not available)"\r
-    IDS_FLG_FORWARDABLE     "Forwardable"\r
-    IDS_FLG_FORWARDED       "Forwarded"\r
-    IDS_FLG_PROXIABLE       "Proxiable"\r
-    IDS_FLG_PROXY           "Proxy"\r
-    IDS_FLG_MAY_POSTDATE    "May postdate"\r
-    IDS_FLG_POSTDATED       "Postdated"\r
-    IDS_FLG_INVALID         "Invalid"\r
-    IDS_FLG_RENEWABLE       "Renewable"\r
-    IDS_FLG_INITIAL         "Initial"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_FLG_PRE_AUTH        "Pre-authenticated"\r
-    IDS_FLG_HW_AUTH         "Hardware authentication"\r
-    IDS_FLG_TRANSIT_POL     "Transit policy checked"\r
-    IDS_FLG_OK_DELEGATE     "Approved for delegation"\r
-    IDS_FLG_ANONYMOUS       "Anonymous"\r
-    IDS_K5ERR_CANTWRITEPROFILE \r
-                            "The Kerberos v5 profile file could not be written"\r
-    IDS_K5ERR_PROFNOWRITE   "The file %s could not be opened as a profile file for writing."\r
-    IDS_K5ERR_PROFUSETEMP   "The file %s could not be opened for writing.  The current changes will be saved to %s temporarily."\r
-    IDS_K5ERR_PROFSUGGEST   "This may be due to not having privileges to modify the configuration file.  Please contact your system administrator to resolve the issue."\r
-    IDS_CFG_RE_REALMS       "Kerberos Realms"\r
-    IDS_CFG_RE_KDCS         "Kerberos Servers"\r
-    IDS_CFG_RE_DMAPS        "Domain mappings"\r
-    IDS_CFG_RE_KDCS_R       "Kerberos Servers for %s"\r
-    IDS_CFG_RE_DMAPS_R      "Domains that map to %s"\r
-    IDS_CFG_RE_HEAD_SVR     "Server"\r
-    IDS_CFG_RE_HEAD_ADMIN   "Admin"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_CFG_RE_HEAD_MASTER  "Master"\r
-    IDS_CFG_RE_HEAD_DOMAIN  "Domain"\r
-    IDS_CFG_RE_NEWREALM     "<New realm...>"\r
-    IDS_YES                 "Yes"\r
-    IDS_NO                  "No"\r
-    IDS_CFG_RE_NEWSERVER    "<New server...>"\r
-    IDS_CFG_RE_NEWDMAP      "<New domain mapping...>"\r
-    IDS_KRB5_NC_NAME        "Kerberos v5"\r
-    IDS_NCERR_IDENT_TOO_LONG "The identity name is too long."\r
-    IDS_NCERR_IDENT_INVALID "The identity name is invalid."\r
-    IDS_NCERR_IDENT_UNKNOWN "An unknown error occurred while validating the identity name."\r
-    IDS_CFG_RE_ARNUT        "Can't add new realm %s"\r
-    IDS_CFG_RE_ARNUM        "The new realm name %s can't be added because there is already a realm with the same name listed.  Please type another name."\r
-    IDS_CFG_RE_ASNUT        "Can't add new server %s for realm %s"\r
-    IDS_CFG_RE_ASNUM        "There already is a server named %s for realm %s. The new server can not be added."\r
-    IDS_CFG_RE_DMNUT        "Can't add new domain map %s for realm %s"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_CFG_RE_DMNUM        "There already is a domain named %s mapping to realm %s.  The new domain map could not be added."\r
-    IDS_CFG_RE_MNR          "&Add new realm"\r
-    IDS_CFG_RE_MDR          "&Remove realm"\r
-    IDS_CFG_RE_MNK          "&Add new server"\r
-    IDS_CFG_RE_MDK          "&Remove server"\r
-    IDS_CFG_RE_MAK          "Toggle a&dmin server"\r
-    IDS_CFG_RE_MMK          "Toggle &master KDC"\r
-    IDS_CFG_RE_MND          "&Add new domain mapping"\r
-    IDS_CFG_RE_MDD          "&Remove domain mapping"\r
-    IDS_KVNO_SHORT_DESC     "Kvno"\r
-    IDS_KVNO_LONG_DESC      "Key version number"\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
-\r
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\..\langres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\..\\langres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_NC_KRB5 DIALOGEX 0, 0, 300, 166
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "Kerberos v5 Credential Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11
+    LTEXT           "Realm",IDC_STATIC,7,25,52,13
+    COMBOBOX        IDC_NCK5_REALM,60,25,233,51,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Specify &additional realms ...",IDC_NCK5_ADD_REALMS,181,43,112,16,BS_NOTIFY | NOT WS_VISIBLE | WS_DISABLED
+    LTEXT           "&Lifetime",IDC_STATIC,7,67,61,12
+    EDITTEXT        IDC_NCK5_LIFETIME_EDIT,85,67,107,12,ES_AUTOHSCROLL
+    CONTROL         "&Renewable for",IDC_NCK5_RENEWABLE,"Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,87,64,12
+    EDITTEXT        IDC_NCK5_RENEW_EDIT,85,87,108,12,ES_AUTOHSCROLL
+    CONTROL         "Can be &forwarded to other machines",IDC_NCK5_FORWARDABLE,
+                    "Button",BS_AUTOCHECKBOX | BS_NOTIFY | WS_TABSTOP,7,107,132,12
+    CONTROL         "Addressless",IDC_NCK5_ADDRESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,128,54,10
+    LTEXT           "Additional IP address",IDC_STATIC,118,129,68,8,NOT WS_VISIBLE
+    CONTROL         "",IDC_NCK5_PUBLICIP,"SysIPAddress32",NOT WS_VISIBLE | WS_TABSTOP,193,125,100,15
+END
+
+IDD_PP_KRB5C DIALOGEX 0, 0, 235, 156
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Kerberos v5"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    LTEXT           "Name",IDC_STATIC,7,7,19,8
+    LTEXT           "Valid till",IDC_STATIC,7,39,24,8
+    LTEXT           "Renewable till",IDC_STATIC,7,55,45,12
+    LTEXT           "Issued on",IDC_STATIC,7,23,32,8
+    LTEXT           "Credential flags",IDC_STATIC,7,75,51,8
+    EDITTEXT        IDC_PPK5_NAME,72,7,156,12,ES_AUTOHSCROLL | ES_READONLY
+    EDITTEXT        IDC_PPK5_ISSUE,72,23,156,12,ES_AUTOHSCROLL | ES_READONLY
+    EDITTEXT        IDC_PPK5_VALID,72,39,156,12,ES_AUTOHSCROLL | ES_READONLY
+    EDITTEXT        IDC_PPK5_RENEW,72,55,156,12,ES_AUTOHSCROLL | ES_READONLY
+    LISTBOX         IDC_PPK5_FLAGS,72,74,156,75,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+END
+
+IDD_PP_KRB5 DIALOGEX 0, 0, 235, 156
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Kerberos v5"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    LTEXT           "Default realm",IDC_STATIC,7,7,44,8
+    LTEXT           "Default lifetime",IDC_STATIC,7,22,49,8
+    LTEXT           "Minimum lifetime",IDC_STATIC,7,37,52,8
+    LTEXT           "Maximum lifetime",IDC_STATIC,7,52,55,8
+    LTEXT           "Renewable lifetime",IDC_STATIC,7,67,61,8
+    LTEXT           "Min. Renewable lifetime",IDC_STATIC,7,82,76,8
+    LTEXT           "Max. Renewable lifetime",IDC_STATIC,7,97,79,8
+    GROUPBOX        "Default credential flags",IDC_STATIC,7,113,221,36
+    CONTROL         "Proxiable",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,129,45,10
+    CONTROL         "Renewable",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,129,51,10
+    CONTROL         "Forwardable",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,129,56,10
+    LTEXT           "ATHENA.MIT.EDU",IDC_STATIC,95,7,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "10 hours",IDC_STATIC,95,22,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "1 minute",IDC_STATIC,95,37,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "7 days",IDC_STATIC,95,52,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "7 days",IDC_STATIC,95,67,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "1 minute",IDC_STATIC,95,82,133,11,0,WS_EX_CLIENTEDGE
+    LTEXT           "21 days",IDC_STATIC,95,97,133,11,0,WS_EX_CLIENTEDGE
+END
+
+IDD_CONFIG DIALOGEX 0, 0, 255, 182
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    LTEXT           "Default Realm",IDC_CFG_LBL_REALM,13,9,46,8
+    COMBOBOX        IDC_CFG_DEFREALM,76,7,166,51,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    CONTROL         "Include all configured realms in New Credentials realm list",IDC_CFG_INCREALMS,
+                    "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,76,26,166,22
+    PUSHBUTTON      "Configure Realms ...",IDC_CFG_CFGREALMS,76,46,84,14,NOT WS_VISIBLE | WS_DISABLED
+    GROUPBOX        "Configuration File",IDC_CFG_CFGFILEGRP,7,59,241,47
+    LTEXT           "Location",IDC_CFG_LBL_CFGFILE,13,74,28,8
+    EDITTEXT        IDC_CFG_CFGFILE,76,71,166,14,ES_AUTOHSCROLL | ES_READONLY
+    PUSHBUTTON      "Browse...",IDC_CFG_BROWSE,145,89,44,14,NOT WS_VISIBLE
+    CONTROL         "Create file if missing",IDC_CFG_CREATECONFIG,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,76,93,80,10
+    PUSHBUTTON      "Load into realm editor ...",IDC_CFG_BROWSE2,26,89,100,14,NOT WS_VISIBLE
+    GROUPBOX        "Microsoft Windows® Options",IDC_CFG_WINGRP,7,110,241,65
+    LTEXT           "Hostname",IDC_CFG_LBL_HOSTNAME,13,123,33,8
+    EDITTEXT        IDC_CFG_HOSTNAME,76,120,166,14,ES_AUTOHSCROLL | ES_READONLY
+    LTEXT           "Domain",IDC_CFG_LBL_DOMAIN,13,141,24,8
+    EDITTEXT        IDC_CFG_DOMAIN,76,138,166,14,ES_AUTOHSCROLL | ES_READONLY
+    LTEXT           "Import credentials",IDC_LBL_IMPORT,13,158,45,8
+    COMBOBOX        IDC_CFG_IMPORT,76,156,166,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+END
+
+IDD_CFG_REALMS DIALOGEX 0, 0, 255, 182
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "",IDC_CFG_REALMS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_EDITLABELS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_TABSTOP,7,19,81,148
+    GROUPBOX        "Kerberos v5 Servers",IDC_CFG_SERVERSGRP,93,7,155,91
+    GROUPBOX        "Domain to Realm mappings",IDC_CFG_DOMAINGRP,93,101,155,74
+    CONTROL         "",IDC_CFG_KDC,"SysListView32",LVS_REPORT | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_TABSTOP,99,19,143,72
+    CONTROL         "",IDC_CFG_DMAP,"SysListView32",LVS_REPORT | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_TABSTOP,99,111,143,56
+END
+
+IDD_CFG_IDS_TAB DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    LTEXT           "Ticket &lifetime",IDC_CFG_LBL_DEFLIFE,7,10,44,8
+    EDITTEXT        IDC_CFG_DEFLIFE,94,7,134,14,ES_AUTOHSCROLL
+    LTEXT           "Ticket re&newable lifetime",IDC_CFG_LBL_DEFRLIFE,7,29,80,8
+    EDITTEXT        IDC_CFG_DEFRLIFE,94,26,134,14,ES_AUTOHSCROLL
+    CONTROL         "&Renewable",IDC_CFG_RENEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,47,51,10
+    CONTROL         "&Forwardable",IDC_CFG_FORWARD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,47,56,10
+    CONTROL         "&Addressless",IDC_CFG_ADDRESSLESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,63,54,10
+    GROUPBOX        "Credential lifetime range",IDC_CFG_LIFEGRP,7,79,221,31
+    LTEXT           "From",IDC_STATIC,13,93,17,8
+    EDITTEXT        IDC_CFG_LRNG_MIN,38,90,79,14,ES_AUTOHSCROLL
+    LTEXT           "To",IDC_STATIC,125,93,9,8
+    EDITTEXT        IDC_CFG_LRNG_MAX,143,90,79,14,ES_AUTOHSCROLL
+    GROUPBOX        "Credential renewable lifetime range",IDC_STATIC,7,113,221,31
+    LTEXT           "From",IDC_STATIC,13,128,17,8
+    EDITTEXT        IDC_CFG_RLRNG_MIN,38,125,79,14,ES_AUTOHSCROLL
+    LTEXT           "To",IDC_STATIC,125,128,9,8
+    EDITTEXT        IDC_CFG_RLRNG_MAX,143,125,79,14,ES_AUTOHSCROLL
+END
+
+IDD_CFG_ID_TAB DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    LTEXT           "Credential lifetime",IDC_CFG_LBL_DEFLIFE,7,10,58,8
+    EDITTEXT        IDC_CFG_DEFLIFE,91,7,137,14,ES_AUTOHSCROLL
+    CONTROL         "Renewable for",IDC_CFG_RENEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,41,63,10
+    EDITTEXT        IDC_CFG_DEFRLIFE,91,39,137,14,ES_AUTOHSCROLL
+    CONTROL         "Can be forwarded to other machines",IDC_CFG_FORWARD,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,59,133,10
+    CONTROL         "Addressless",IDC_CFG_ADDRESSLESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,77,54,10
+    LTEXT           "Additional IP address",IDC_STATIC,91,78,68,8,NOT WS_VISIBLE
+    CONTROL         "",IDC_CFG_PUBLICIP,"SysIPAddress32",NOT WS_VISIBLE | WS_TABSTOP,128,89,100,15
+    LTEXT           "Credential cache",IDC_STATIC,7,132,58,8
+    EDITTEXT        IDC_CFG_CCACHE,91,130,137,14,ES_AUTOHSCROLL
+END
+
+IDD_NC_KRB5_PASSWORD DIALOGEX 0, 0, 300, 166
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "Kerberos v5 Change Password Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11
+    LTEXT           "Realm",IDC_STATIC,7,25,52,13
+    COMBOBOX        IDC_NCK5_REALM,60,25,233,51,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Specify &additional realms ...",IDC_NCK5_ADD_REALMS,181,43,112,16,BS_NOTIFY | WS_DISABLED
+END
+
+IDD_CFG_CACHES DIALOGEX 0, 0, 255, 182
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    GROUPBOX        "File-based Credential Caches",IDC_CFG_FCGRP,7,26,241,149
+    CONTROL         "",IDC_CFG_FCLIST,"SysListView32",LVS_REPORT | LVS_SORTASCENDING | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,13,37,229,97
+    EDITTEXT        IDC_CFG_FCNAME,13,139,173,14,ES_AUTOHSCROLL
+    PUSHBUTTON      "&Browse ...",IDC_CFG_BROWSE,192,139,50,14
+    PUSHBUTTON      "Add",IDC_CFG_ADD,13,156,50,14
+    PUSHBUTTON      "Remove Selected",IDC_CFG_REMOVE,88,156,80,14
+    CONTROL         "Include all API: credentials caches",IDC_CFG_INCAPI,
+                    "Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,123,7,125,10
+    CONTROL         "Include Windows LSA cache (MSLSA:)",IDC_CFG_INCMSLSA,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,7,136,10
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO 
+BEGIN
+    IDD_NC_KRB5, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 293
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 159
+    END
+
+    IDD_PP_KRB5C, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 149
+    END
+
+    IDD_PP_KRB5, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 149
+    END
+
+    IDD_CONFIG, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 248
+        VERTGUIDE, 13
+        VERTGUIDE, 76
+        VERTGUIDE, 242
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 175
+    END
+
+    IDD_CFG_REALMS, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 248
+        VERTGUIDE, 93
+        VERTGUIDE, 99
+        VERTGUIDE, 242
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 175
+        HORZGUIDE, 19
+        HORZGUIDE, 167
+    END
+
+    IDD_CFG_IDS_TAB, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        VERTGUIDE, 13
+        VERTGUIDE, 94
+        VERTGUIDE, 222
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+
+    IDD_CFG_ID_TAB, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        VERTGUIDE, 91
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+
+    IDD_NC_KRB5_PASSWORD, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 293
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 159
+    END
+
+    IDD_CFG_CACHES, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 248
+        VERTGUIDE, 7
+        VERTGUIDE, 13
+        VERTGUIDE, 242
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 175
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_PLUGIN              ICON                    "..\\..\\images\\krb5plugin.ico"
+IDI_DELETED             ICON                    "..\\..\\images\\deleted.ico"
+IDI_NEW                 ICON                    "..\\..\\images\\new.ico"
+IDI_NORMAL              ICON                    "..\\..\\images\\normal.ico"
+IDI_MODIFIED            ICON                    "..\\..\\images\\modified.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_UNK_ADDR_FMT        "Unknown address type %d"
+    IDS_KRB5_CREDTEXT_0     "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: Tickets for realm %s</p>"
+    IDS_KRB5_CCNAME_SHORT_DESC "Kerberos v5 CCache"
+    IDS_KEY_ENCTYPE_SHORT_DESC "Session EncType"
+    IDS_TKT_ENCTYPE_SHORT_DESC "Service EncType"
+    IDS_KEY_ENCTYPE_LONG_DESC "Session Key Encryption Type"
+    IDS_TKT_ENCTYPE_LONG_DESC "Service Encryption Type"
+    IDS_ADDR_LIST_SHORT_DESC "Addresses"
+    IDS_ADDR_LIST_LONG_DESC "Address List"
+    IDS_ETYPE_NULL          "NULL"
+    IDS_ETYPE_DES_CBC_CRC   "DES-CBC-CRC"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_ETYPE_DES_CBC_MD4   "DES-CBC-MD4"
+    IDS_ETYPE_DES_CBC_MD5   "DES-CBC-MD5"
+    IDS_ETYPE_DES_CBC_RAW   "DES-CBC-RAW"
+    IDS_ETYPE_DES3_CBC_SHA  "DES3-CBC-SHA"
+    IDS_ETYPE_DES3_CBC_RAW  "DES3-CBC-RAW"
+    IDS_ETYPE_DES_HMAC_SHA1 "DES-HMAC-SHA1"
+    IDS_ETYPE_DES3_CBC_SHA1 "DES3-CBC-SHA1"
+    IDS_ETYPE_AES128_CTS_HMAC_SHA1_96 "AES128_CTS-HMAC-SHA1_96"
+    IDS_ETYPE_AES256_CTS_HMAC_SHA1_96 "AES256_CTS-HMAC-SHA1_96"
+    IDS_ETYPE_ARCFOUR_HMAC  "RC4-HMAC-NT"
+    IDS_ETYPE_ARCFOUR_HMAC_EXP "RC4-HMAC-NT-EXP"
+    IDS_ETYPE_UNKNOWN       "(Unknown)"
+    IDS_ETYPE_LOCAL_DES3_HMAC_SHA1 "LOCAL-DES3-HMAC-SHA1"
+    IDS_ETYPE_LOCAL_RC4_MD4 "LOCAL-RC4-MD4"
+    IDS_KRB5_SHORT_DESC     "Kerberos v5 credentials"
+    IDS_KRB5_LONG_DESC      "Kerberos v5 credentials"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_KRB4_SHORT_DESC     "Kerberos v4"
+    IDS_KRB4_LONG_DESC      "Kerberos v4 credentials"
+    IDS_KRB5_FLAGS_SHORT_DESC "Kerberos v5 Flags"
+    IDS_RENEW_TILL_SHORT_DESC "Renew Till"
+    IDS_RENEW_TILL_LONG_DESC "Renewable Till"
+    IDS_RENEW_FOR_SHORT_DESC "Renew for"
+    IDS_RENEW_FOR_LONG_DESC "Renewable for"
+    IDS_KRB5_CCNAME_LONG_DESC "Kerberos v5 Primary Credentials Cache"
+    IDS_NC_USERNAME         "Username"
+    IDS_NC_REALM            "Realm"
+    IDS_KRB5_WARNING        "Kerberos v5 Warning"
+    IDS_K5ERR_NAME_EXPIRED  "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: The selected principal name has expired.</p><p><tab>  Please contact your system administrator.</p>"
+    IDS_K5ERR_KEY_EXPIRED   "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: The password for the selected identity has expired.</p><p><tab>  Click <a id=""Krb5Cred:!Passwd"">here</a> to change the password</p>"
+    IDS_KRB5_WARN_FMT       "Kerberos v5: %s\n\n%s"
+    IDS_K5ERR_FMT           "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tag>: %s</p>"
+    IDS_K5CFG_SHORT_DESC    "Kerberos v5"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_K5CFG_LONG_DESC     "Kerberos v5 Configuration"
+    IDS_K5RLM_SHORT_DESC    "Realms"
+    IDS_K5RLM_LONG_DESC     "Kerberos Realm Configuration"
+    IDS_K5CFG_IDS_SHORT_DESC "Kerberos v5"
+    IDS_K5CFG_IDS_LONG_DESC "Kerberos v5 options for all identities"
+    IDS_K5CFG_ID_SHORT_DESC "Kerberos v5"
+    IDS_K5CFG_ID_LONG_DESC  "Kerberos v5 options for this identity"
+    IDS_PLUGIN_DESC         "Kerberos v5 Credentials Provider"
+    IDS_NC_PWD_BANNER       "Changing Kerberos v5 Password"
+    IDS_NC_PWD_PWD          "Current Password"
+    IDS_NC_PWD_NPWD         "New Password"
+    IDS_NC_PWD_NPWD_AGAIN   "New Password again"
+    IDS_KRB5_CREDTEXT_P0    "<p><a id=""SwitchPanel"" param=""Krb5Cred""><b>Krb5</b></a><tab>: Changing password for %s</p>"
+    IDS_K5CFG_IMPORT_OPTIONS "Never,Always,Only when the principal matches"
+    IDS_IDENTPRO_DESC       "Kerberos v5 Identity Provider"
+    IDS_K5CCC_SHORT_DESC    "Credential Caches"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_K5CCC_LONG_DESC     "Kerberos v5 Credential Caches"
+    IDS_CFG_FCTITLE         "File based Credential Caches"
+    IDS_CFG_FCN_WARNING     "Warning:"
+    IDS_CFG_FCN_W_NOTFOUND  "The credentials cache you specified does not exist."
+    IDS_CFG_FCN_W_RELATIVE  "The path you specified not an absolute path."
+    IDS_CFG_FCOPENTITLE     "Select a credential cache to add"
+    IDS_UNAVAILABLE         "(Not available)"
+    IDS_FLG_FORWARDABLE     "Forwardable"
+    IDS_FLG_FORWARDED       "Forwarded"
+    IDS_FLG_PROXIABLE       "Proxiable"
+    IDS_FLG_PROXY           "Proxy"
+    IDS_FLG_MAY_POSTDATE    "May postdate"
+    IDS_FLG_POSTDATED       "Postdated"
+    IDS_FLG_INVALID         "Invalid"
+    IDS_FLG_RENEWABLE       "Renewable"
+    IDS_FLG_INITIAL         "Initial"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_FLG_PRE_AUTH        "Pre-authenticated"
+    IDS_FLG_HW_AUTH         "Hardware authentication"
+    IDS_FLG_TRANSIT_POL     "Transit policy checked"
+    IDS_FLG_OK_DELEGATE     "Approved for delegation"
+    IDS_FLG_ANONYMOUS       "Anonymous"
+    IDS_K5ERR_CANTWRITEPROFILE 
+                            "The Kerberos v5 profile file could not be written"
+    IDS_K5ERR_PROFNOWRITE   "The file %s could not be opened as a profile file for writing."
+    IDS_K5ERR_PROFUSETEMP   "The file %s could not be opened for writing.  The current changes will be saved to %s temporarily."
+    IDS_K5ERR_PROFSUGGEST   "This may be due to not having privileges to modify the configuration file.  Please contact your system administrator to resolve the issue."
+    IDS_CFG_RE_REALMS       "Kerberos Realms"
+    IDS_CFG_RE_KDCS         "Kerberos Servers"
+    IDS_CFG_RE_DMAPS        "Domain mappings"
+    IDS_CFG_RE_KDCS_R       "Kerberos Servers for %s"
+    IDS_CFG_RE_DMAPS_R      "Domains that map to %s"
+    IDS_CFG_RE_HEAD_SVR     "Server"
+    IDS_CFG_RE_HEAD_ADMIN   "Admin"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_CFG_RE_HEAD_MASTER  "Master"
+    IDS_CFG_RE_HEAD_DOMAIN  "Domain"
+    IDS_CFG_RE_NEWREALM     "<New realm...>"
+    IDS_YES                 "Yes"
+    IDS_NO                  "No"
+    IDS_CFG_RE_NEWSERVER    "<New server...>"
+    IDS_CFG_RE_NEWDMAP      "<New domain mapping...>"
+    IDS_KRB5_NC_NAME        "Kerberos v5"
+    IDS_NCERR_IDENT_TOO_LONG "The identity name is too long."
+    IDS_NCERR_IDENT_INVALID "The identity name is invalid."
+    IDS_NCERR_IDENT_UNKNOWN "An unknown error occurred while validating the identity name."
+    IDS_CFG_RE_ARNUT        "Can't add new realm %s"
+    IDS_CFG_RE_ARNUM        "The new realm name %s can't be added because there is already a realm with the same name listed.  Please type another name."
+    IDS_CFG_RE_ASNUT        "Can't add new server %s for realm %s"
+    IDS_CFG_RE_ASNUM        "There already is a server named %s for realm %s. The new server can not be added."
+    IDS_CFG_RE_DMNUT        "Can't add new domain map %s for realm %s"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_CFG_RE_DMNUM        "There already is a domain named %s mapping to realm %s.  The new domain map could not be added."
+    IDS_CFG_RE_MNR          "&Add new realm"
+    IDS_CFG_RE_MDR          "&Remove realm"
+    IDS_CFG_RE_MNK          "&Add new server"
+    IDS_CFG_RE_MDK          "&Remove server"
+    IDS_CFG_RE_MAK          "Toggle a&dmin server"
+    IDS_CFG_RE_MMK          "Toggle &master KDC"
+    IDS_CFG_RE_MND          "&Add new domain mapping"
+    IDS_CFG_RE_MDD          "&Remove domain mapping"
+    IDS_KVNO_SHORT_DESC     "Kvno"
+    IDS_KVNO_LONG_DESC      "Key version number"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
+
index cadc66626774a443d4030fb7ae6d74eabdc5f8e2..1e9869972e1d788a216672dbce74ba1694752352 100644 (file)
-; // ** krb5_msgs.mc \r
-\r
-; /* Since .mc files can contain strings from any language, we define\r
-; all our messages in one file in the /lang/ directory instead of\r
-; language specific subdirectories. */\r
-\r
-; /* The type is set to (wchar_t *) because that's what we will be\r
-; feeding kherr_report() function. */\r
-\r
-; // MessageIdTypedef=LPWSTR\r
-\r
-; /* Severity values as defined in the message definition file are\r
-; currently ignored. */\r
-\r
-SeverityNames=(\r
-        Success=0x0\r
-)\r
-\r
-LanguageNames=(\r
-        English=0x409:MSG_ENU\r
-)\r
-\r
-OutputBase=16\r
-\r
-; /* Actual messages start here */\r
-\r
-MessageId=1\r
-Severity=Success\r
-SymbolicName=MSG_INITIAL\r
-Language=English\r
-Initial placeholder message\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_CTX_INITAL_CREDS\r
-Language=English\r
-Obtaining initial Krb5 credentials\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_CTX_RENEW_CREDS\r
-Language=English\r
-Renewing Krb5 credentials\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_UNKNOWN\r
-Language=English\r
-An unknown error has occurred.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_PR_UNKNOWN\r
-Language=English\r
-You have entered an unknown username/instance/realm combination.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_TKFIL\r
-Language=English\r
-The tickets could not be accessed from the memory location where they were stored.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_TKFIL\r
-Language=English\r
-This may be due to a problem with the memory where your tickets are stored.  Restarting your computer might be worth a try.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_CLOCKSKEW\r
-Language=English\r
-Your computer's clock is out of sync with the Kerberos server.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_CLOCKSKEW\r
-Language=English\r
-Synchronize your clock withe the Kerberos server.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_KDC_CONTACT\r
-Language=English\r
-Cannot contact the Kerberos server for the requested realm.\r
-.\r
\r
-MessageId=\r
-SymbolicName=MSG_ERR_INSECURE_PW\r
-Language=English\r
-You have entered an insecure or weak password.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_NO_IDENTITY\r
-Language=English\r
-There were no identities for which to renew credentials.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_CTX_PASSWD\r
-Language=English\r
-Changing Kerberos 5 Password\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_UNKNOWN\r
-Language=English\r
-Unknown error\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_NOT_SAME\r
-Language=English\r
-The new passwords are not the same.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_S_NOT_SAME\r
-Language=English\r
-The new password is asked for twice to protect against a mistake when setting the new password.  Both instances of the new password must be the same.  Please correct this and try again.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_SAME\r
-Language=English\r
-The new and the old passwords are the same.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_S_SAME\r
-Language=English\r
-Please type a new password to continue.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_NO_IDENTITY\r
-Language=English\r
-There are no identities selected.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_PWD_S_NO_IDENTITY\r
-Language=English\r
-Please select an identity to change the password.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_INTEGRITY\r
-Language=English\r
-This is commonly caused by an incorrect password.  Please verify that the password is correct and note that passwords are case sensitive.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_CTX_DESTROY_CREDS\r
-Language=English\r
-Destroying Krb5 tickets\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_NETDOWN\r
-Language=English\r
-A network connection is unavailable\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_NETRETRY\r
-Language=English\r
-Please check your network connection or contact your network administrator for assistance.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_TEMPDOWN\r
-Language=English\r
-A temporary network error caused the operation to fail\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_TEMPDOWN\r
-Language=English\r
-Please try again in a few minutes\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_NOHOST\r
-Language=English\r
-A server could not be reached\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_ERR_S_NOHOST\r
-Language=English\r
-This can be caused by the server being unavailable, network errors, or improper configuration.  Please try again or contact your administrator for assistance.\r
-.\r
-\r
-MessageId=\r
-SymbolicName=MSG_\r
-Language=English\r
-.\r
+; // ** krb5_msgs.mc 
+
+; /* Since .mc files can contain strings from any language, we define
+; all our messages in one file in the /lang/ directory instead of
+; language specific subdirectories. */
+
+; /* The type is set to (wchar_t *) because that's what we will be
+; feeding kherr_report() function. */
+
+; // MessageIdTypedef=LPWSTR
+
+; /* Severity values as defined in the message definition file are
+; currently ignored. */
+
+SeverityNames=(
+        Success=0x0
+)
+
+LanguageNames=(
+        English=0x409:MSG_ENU
+)
+
+OutputBase=16
+
+; /* Actual messages start here */
+
+MessageId=1
+Severity=Success
+SymbolicName=MSG_INITIAL
+Language=English
+Initial placeholder message
+.
+
+MessageId=
+SymbolicName=MSG_CTX_INITAL_CREDS
+Language=English
+Obtaining initial Krb5 credentials
+.
+
+MessageId=
+SymbolicName=MSG_CTX_RENEW_CREDS
+Language=English
+Renewing Krb5 credentials
+.
+
+MessageId=
+SymbolicName=MSG_ERR_UNKNOWN
+Language=English
+An unknown error has occurred.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_PR_UNKNOWN
+Language=English
+You have entered an unknown username/instance/realm combination.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_TKFIL
+Language=English
+The tickets could not be accessed from the memory location where they were stored.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_TKFIL
+Language=English
+This may be due to a problem with the memory where your tickets are stored.  Restarting your computer might be worth a try.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_CLOCKSKEW
+Language=English
+Your computer's clock is out of sync with the Kerberos server.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_CLOCKSKEW
+Language=English
+Synchronize your clock withe the Kerberos server.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_KDC_CONTACT
+Language=English
+Cannot contact the Kerberos server for the requested realm.
+.
+MessageId=
+SymbolicName=MSG_ERR_INSECURE_PW
+Language=English
+You have entered an insecure or weak password.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_NO_IDENTITY
+Language=English
+There were no identities for which to renew credentials.
+.
+
+MessageId=
+SymbolicName=MSG_CTX_PASSWD
+Language=English
+Changing Kerberos 5 Password
+.
+
+MessageId=
+SymbolicName=MSG_PWD_UNKNOWN
+Language=English
+Unknown error
+.
+
+MessageId=
+SymbolicName=MSG_PWD_NOT_SAME
+Language=English
+The new passwords are not the same.
+.
+
+MessageId=
+SymbolicName=MSG_PWD_S_NOT_SAME
+Language=English
+The new password is asked for twice to protect against a mistake when setting the new password.  Both instances of the new password must be the same.  Please correct this and try again.
+.
+
+MessageId=
+SymbolicName=MSG_PWD_SAME
+Language=English
+The new and the old passwords are the same.
+.
+
+MessageId=
+SymbolicName=MSG_PWD_S_SAME
+Language=English
+Please type a new password to continue.
+.
+
+MessageId=
+SymbolicName=MSG_PWD_NO_IDENTITY
+Language=English
+There are no identities selected.
+.
+
+MessageId=
+SymbolicName=MSG_PWD_S_NO_IDENTITY
+Language=English
+Please select an identity to change the password.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_INTEGRITY
+Language=English
+This is commonly caused by an incorrect password.  Please verify that the password is correct and note that passwords are case sensitive.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_CTX_DESTROY_CREDS
+Language=English
+Destroying Krb5 tickets
+.
+
+MessageId=
+SymbolicName=MSG_ERR_NETDOWN
+Language=English
+A network connection is unavailable
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_NETRETRY
+Language=English
+Please check your network connection or contact your network administrator for assistance.
+.
+
+MessageId=
+SymbolicName=MSG_ERR_TEMPDOWN
+Language=English
+A temporary network error caused the operation to fail
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_TEMPDOWN
+Language=English
+Please try again in a few minutes
+.
+
+MessageId=
+SymbolicName=MSG_ERR_NOHOST
+Language=English
+A server could not be reached
+.
+
+MessageId=
+SymbolicName=MSG_ERR_S_NOHOST
+Language=English
+This can be caused by the server being unavailable, network errors, or improper configuration.  Please try again or contact your administrator for assistance.
+.
+
+MessageId=
+SymbolicName=MSG_
+Language=English
+.
index 135b08e25f68d70e4c54b9797b32673c0f75abe0..c894dff6318facf848214d3d5b3ff2713610e653 100644 (file)
@@ -1,88 +1,88 @@
-/* Copyright (c) 2004 Massachusetts Institute of Technology\r
- *\r
- * Permission is hereby granted, free of charge, to any person\r
- * obtaining a copy of this software and associated documentation\r
- * files (the "Software"), to deal in the Software without\r
- * restriction, including without limitation the rights to use, copy,\r
- * modify, merge, publish, distribute, sublicense, and/or sell copies\r
- * of the Software, and to permit persons to whom the Software is\r
- * furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- *\r
- */\r
-\r
-/* $Id$ */\r
-\r
-#include<netidmgr_intver.h>\r
-\r
-#ifndef LANGVER\r
-\r
-#define STR_FILEDESC "Kerberos v5 Plugin for Network Identity Manager"\r
-#define STR_INTNAME  "krb5cred"\r
-#define STR_ORIGNAME "krb5cred.dll"\r
-\r
-#else\r
-\r
-#ifdef LANG_en_us\r
-\r
-#define STR_FILEDESC "English(US) language resources for the Keberos 5 plugin"\r
-#define STR_INTNAME  "krb5cred_en_us"\r
-#define STR_ORIGNAME "krb5cred_en_us.dll"\r
-\r
-#else\r
-\r
-#error Unknown langugae\r
-\r
-#endif\r
-\r
-#endif\r
-\r
-1 VERSIONINFO \r
-        FILEVERSION     KH_VERSION_LIST\r
-        PRODUCTVERSION  KH_VERSION_LIST\r
-        FILEFLAGSMASK   KH_VER_FILEFLAGMASK\r
-        FILEFLAGS       KH_VER_FILEFLAGS\r
-        FILEOS          KH_VER_FILEOS\r
-        FILETYPE        KH_VER_FILETYPEDLL\r
-        FILESUBTYPE     0\r
-  {\r
-    BLOCK "StringFileInfo"\r
-    {\r
-      BLOCK "040904b0"\r
-      {\r
-        VALUE "CompanyName",     KH_VERSTR_COMPANY_1033\r
-        VALUE "FileDescription", STR_FILEDESC\r
-        VALUE "FileVersion",     KH_VERSTR_VERSION_1033\r
-        VALUE "InternalName",    STR_INTNAME\r
-        VALUE "LegalCopyright",  KH_VERSTR_COPYRIGHT_1033\r
-        VALUE "OriginalFilename", STR_ORIGNAME\r
-        VALUE "ProductName",     "Network Identity Manager"\r
-        VALUE "ProductVersion",  KH_VERSTR_PRODUCT_1033\r
-#ifdef KH_VERSTR_COMMENT_1033\r
-        VALUE "Comment", KH_VERSTR_COMMENT_1033\r
-#endif\r
-#ifndef LANGVER\r
-        VALUE NIMV_MODULE,       "MITKrb5"\r
-        VALUE NIMV_PLUGINS,      "Krb5Cred,Krb5Ident"\r
-        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI\r
-        VALUE NIMV_SUPPORT,      "http://web.mit.edu/kerberos"\r
-#endif\r
-      }\r
-    }\r
-\r
-    BLOCK "VarFileInfo"\r
-    {\r
-        VALUE "Translation", 0x409, 0x4b0\r
-    }\r
-  }\r
+/* Copyright (c) 2004 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+/* $Id$ */
+
+#include<netidmgr_intver.h>
+
+#ifndef LANGVER
+
+#define STR_FILEDESC "Kerberos v5 Plugin for Network Identity Manager"
+#define STR_INTNAME  "krb5cred"
+#define STR_ORIGNAME "krb5cred.dll"
+
+#else
+
+#ifdef LANG_en_us
+
+#define STR_FILEDESC "English(US) language resources for the Keberos 5 plugin"
+#define STR_INTNAME  "krb5cred_en_us"
+#define STR_ORIGNAME "krb5cred_en_us.dll"
+
+#else
+
+#error Unknown langugae
+
+#endif
+
+#endif
+
+1 VERSIONINFO 
+        FILEVERSION     KH_VERSION_LIST
+        PRODUCTVERSION  KH_VERSION_LIST
+        FILEFLAGSMASK   KH_VER_FILEFLAGMASK
+        FILEFLAGS       KH_VER_FILEFLAGS
+        FILEOS          KH_VER_FILEOS
+        FILETYPE        KH_VER_FILETYPEDLL
+        FILESUBTYPE     0
+  {
+    BLOCK "StringFileInfo"
+    {
+      BLOCK "040904b0"
+      {
+        VALUE "CompanyName",     KH_VERSTR_COMPANY_1033
+        VALUE "FileDescription", STR_FILEDESC
+        VALUE "FileVersion",     KH_VERSTR_VERSION_1033
+        VALUE "InternalName",    STR_INTNAME
+        VALUE "LegalCopyright",  KH_VERSTR_COPYRIGHT_1033
+        VALUE "OriginalFilename", STR_ORIGNAME
+        VALUE "ProductName",     "Network Identity Manager"
+        VALUE "ProductVersion",  KH_VERSTR_PRODUCT_1033
+#ifdef KH_VERSTR_COMMENT_1033
+        VALUE "Comment", KH_VERSTR_COMMENT_1033
+#endif
+#ifndef LANGVER
+        VALUE NIMV_MODULE,       "MITKrb5"
+        VALUE NIMV_PLUGINS,      "Krb5Cred,Krb5Ident"
+        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI
+        VALUE NIMV_SUPPORT,      "http://web.mit.edu/kerberos"
+#endif
+      }
+    }
+
+    BLOCK "VarFileInfo"
+    {
+        VALUE "Translation", 0x409, 0x4b0
+    }
+  }
index b9400105a712d2205cce1ed46fca9ea5105ab88f..898c614ca44c521c3c67c067a608d8e8d741f93c 100644 (file)
-#\r
-# Copyright (c) 2006 Secure Endpoints Inc.\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-# Environment variables\r
-# ---------------------\r
-#\r
-# Before running the makefile, set the environment variable KFWSDKDIR\r
-# to the directory containing the Kerberos for Windows SDK version 3.1\r
-# or later.  The path should not end in a backslash.\r
-\r
-# Configuration settings\r
-# ----------------------\r
-\r
-# Declare a few things about our plug-in.\r
-\r
-# TODO: Change the plug-in name\r
-PLUGINNAME=MyPlugin\r
-\r
-# TODO: Change the module name\r
-MODULENAME=MyModule\r
-\r
-# TODO: Change the credtype name\r
-CREDTYPENAME=MyCred\r
-\r
-# TODO: Change this as appropriate\r
-DLLBASENAME=myplugin\r
-\r
-# Version info\r
-\r
-# TODO: Change the version numbers\r
-VERMAJOR=0\r
-VERMINOR=1\r
-VERAUX  =0\r
-VERPATCH=0\r
-\r
-# Leave these as-is\r
-VERLIST=$(VERMAJOR).$(VERMINOR).$(VERAUX).$(VERPATCH)\r
-VERLISTC=$(VERMAJOR),$(VERMINOR),$(VERAUX),$(VERPATCH)\r
-\r
-# Various checks\r
-\r
-!ifndef MSSDK\r
-! error Platform SDK environment variables not set.\r
-!endif\r
-\r
-!ifndef KFWSDKDIR\r
-! error KFWSDKDIR environment variable not set.\r
-!endif\r
-\r
-# Directories\r
-\r
-BUILDROOT=.\r
-\r
-!ifdef NODEBUG\r
-BUILDTYPE=release\r
-!else\r
-BUILDTYPE=debug\r
-!endif\r
-\r
-!ifndef CPU\r
-!error Environment variable 'CPU' is not defined.\r
-!endif\r
-\r
-DEST=$(BUILDROOT)\dest\$(CPU)_$(BUILDTYPE)\r
-OBJ=$(BUILDROOT)\obj\$(CPU)_$(BUILDTYPE)\r
-\r
-!ifndef NIDMRAWDIRS\r
-KFWINCDIR=$(KFWSDKDIR)\inc\r
-NIDMINCDIR=$(KFWINCDIR)\netidmgr\r
-NIDMLIBDIR=$(KFWSDKDIR)\lib\$(CPU)\r
-!else\r
-NIDMINCDIR=$(KFWSDKDIR)\inc\r
-NIDMLIBDIR=$(KFWSDKDIR)\r
-!endif\r
-\r
-# Win32.mak\r
-\r
-!include <Win32.Mak>\r
-\r
-# Program macros\r
-\r
-CD=cd\r
-RM=del /q\r
-MKDIR=mkdir\r
-RMDIR=rmdir\r
-ECHO=echo\r
-CP=copy /y\r
-LINK=link\r
-MC=mc\r
-\r
-# Lots more macros\r
-\r
-incflags = -I"$(NIDMINCDIR)" -I"$(OBJ)" -I.\r
-rincflags = /i "$(NIDMINCDIR)" /i "$(OBJ)" /i .\r
-\r
-ldebug = $(ldebug) /DEBUG\r
-cdebug = $(cdebug) -Os -Zi\r
-\r
-cdefines = $(cdefines) -DUNICODE -D_UNICODE\r
-\r
-C2OBJ=$(CC) $(cdebug) $(cflags) $(incflags) $(cdefines) /Fo"$@" /c $**\r
-\r
-DLLGUILINK=$(LINK) /NOLOGO $(ldebug) $(dlllflags) $(guilibsmt) /OUT:"$@" /IMPLIB:$(DEST)\$(@B).lib $**\r
-\r
-DLLRESLINK=$(LINK) /NOLOGO /DLL /NOENTRY /MACHINE:$(PROCESSOR_ARCHITECTURE) /OUT:"$@" $**\r
-\r
-RC2RES=$(RC) $(RFLAGS) $(rincflags) /fo "$@" $**\r
-\r
-MC2RC=$(MC) $(MCFLAGS) -h "$(OBJ)\" -m 1024 -r "$(OBJ)\" -x "$(OBJ)\" $**\r
-\r
-{}.c{$(OBJ)}.obj:\r
-       $(C2OBJ)\r
-\r
-{$(OBJ)}.c{$(OBJ)}.obj:\r
-       $(C2OBJ)\r
-\r
-{}.rc{$(OBJ)}.res:\r
-       $(RC2RES)\r
-\r
-mkdirs::\r
-!if !exist($(DEST))\r
-       $(MKDIR) "$(DEST)"\r
-!endif\r
-!if !exist($(OBJ))\r
-       $(MKDIR) "$(OBJ)"\r
-!endif\r
-\r
-clean::\r
-       $(RM) "$(OBJ)\*.*"\r
-       $(RM) "$(DEST)\*.*"\r
-\r
-.SUFFIXES: .h\r
-\r
-#\r
-# Manifest handling\r
-#\r
-# Starting with Visual Studio 8, the C compiler and the linker\r
-# generate manifests so that the applications will link with the\r
-# correct side-by-side DLLs at run-time.  These are required for\r
-# correct operation under Windows XP.  We also have custom manifests\r
-# which need to be merged with the manifests that VS creates.\r
-#\r
-# The syntax for invoking the _VC_MANIFEST_EMBED_foo macro is:\r
-# $(_VC_MANIFEST_EMBED_???) <any additional manifests that need to be merged in>\r
-#\r
-\r
-!ifndef MT\r
-MT=mt.exe -nologo\r
-!endif\r
-\r
-_VC_MANIFEST_EMBED_EXE= \\r
-if exist "$@.manifest" $(MT) -outputresource:"$@";1 -manifest "$@.manifest"\r
-\r
-_VC_MANIFEST_EMBED_DLL=$(_VC_MANIFEST_EMBED_EXE)\r
-\r
-# Note that if you are merging manifests, then the VS generated\r
-# manifest should be cleaned up after calling _VC_MANIFEST_EMBED_???.\r
-# This ensures that even if the DLL or EXE is executed in-place, the\r
-# embedded manifest will be used.  Otherwise the $@.manifest file will\r
-# be used.\r
-_VC_MANIFEST_CLEAN= \\r
-if exist "$@.manifest" $(RM) "$@.manifest"\r
-\r
-# End of manifest handling\r
-\r
-\r
-# Now for the actual build stuff\r
-\r
-DLL=$(DEST)\$(DLLBASENAME).dll\r
-\r
-LIBFILES= \\r
-       "$(NIDMLIBDIR)\nidmgr32.lib"\r
-\r
-OBJFILES= \\r
-       $(OBJ)\credacq.obj      \\r
-       $(OBJ)\credtype.obj     \\r
-       $(OBJ)\main.obj         \\r
-       $(OBJ)\plugin.obj       \\r
-       $(OBJ)\proppage.obj     \\r
-       $(OBJ)\config_main.obj  \\r
-       $(OBJ)\config_id.obj    \\r
-       $(OBJ)\config_ids.obj\r
-\r
-DLLRESFILE=$(OBJ)\version.res\r
-\r
-CONFIGHEADER=$(OBJ)\credacq_config.h\r
-\r
-all: mkdirs $(CONFIGHEADER) $(DLL) lang\r
-\r
-$(CONFIGHEADER): Makefile\r
-       $(CP) << "$@"\r
-/* This is a generated file.  Do not modify directly. */\r
-\r
-#pragma once\r
-\r
-#define MYPLUGIN_DLLBASE "$(DLLBASENAME)"\r
-\r
-#define MYPLUGIN_NAME "$(PLUGINNAME)"\r
-\r
-#define MYMODULE_NAME "$(MODULENAME)"\r
-\r
-#define MYCREDTYPE_NAME "$(CREDTYPENAME)"\r
-\r
-#define VERSION_MAJOR $(VERMAJOR)\r
-#define VERSION_MINOR $(VERMINOR)\r
-#define VERSION_AUX   $(VERAUX)\r
-#define VERSION_PATCH $(VERPATCH)\r
-\r
-#define VERSION_LIST  $(VERLIST)\r
-#define VERSION_LISTC $(VERLISTC)\r
-#define VERSION_STRING "$(VERLIST)"\r
-\r
-<<\r
-\r
-clean::\r
-       $(RM) $(CONFIGHEADER)\r
-\r
-$(DLL): $(OBJFILES) $(DLLRESFILE)\r
-       $(DLLGUILINK) $(LIBFILES)\r
-       $(_VC_MANIFEST_EMBED_DLL)\r
-       $(_VC_MANIFEST_CLEAN)\r
-\r
-clean::\r
-       $(RM) $(DLL)\r
-\r
-# Language specific resources\r
-\r
-# (repeat the following block as needed, redefining LANG for each\r
-# supported language)\r
-\r
-# English-US\r
-LANG=en_us\r
-\r
-LANGDLL=$(DEST)\$(DLLBASENAME)_$(LANG).dll\r
-\r
-lang:: $(LANGDLL)\r
-\r
-$(LANGDLL): $(OBJ)\langres_$(LANG).res $(OBJ)\version_$(LANG).res\r
-       $(DLLRESLINK)\r
-       $(_VC_MANIFEST_EMBED_DLL)\r
-       $(_VC_MANIFEST_CLEAN)\r
-\r
-clean::\r
-       $(RM) $(LANGDLL)\r
-\r
-$(OBJ)\version_$(LANG).res: version.rc\r
-       $(RC) $(RFLAGS) $(rincflags) /d LANGRES /d LANG_$(LANG) /fo $@ $**\r
-\r
-clean::\r
-       $(RM) $(OBJ)\version_$(LANG).res\r
-\r
-$(OBJ)\langres_$(LANG).res: lang\$(LANG)\langres.rc\r
-       $(RC2RES)\r
-\r
-clean::\r
-       $(RM) $(OBJ)\langres_$(LANG).res\r
-\r
-# /English-US\r
+#
+# Copyright (c) 2006 Secure Endpoints Inc.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+# Environment variables
+# ---------------------
+#
+# Before running the makefile, set the environment variable KFWSDKDIR
+# to the directory containing the Kerberos for Windows SDK version 3.1
+# or later.  The path should not end in a backslash.
+
+# Configuration settings
+# ----------------------
+
+# Declare a few things about our plug-in.
+
+# TODO: Change the plug-in name
+PLUGINNAME=MyPlugin
+
+# TODO: Change the module name
+MODULENAME=MyModule
+
+# TODO: Change the credtype name
+CREDTYPENAME=MyCred
+
+# TODO: Change this as appropriate
+DLLBASENAME=myplugin
+
+# Version info
+
+# TODO: Change the version numbers
+VERMAJOR=0
+VERMINOR=1
+VERAUX  =0
+VERPATCH=0
+
+# Leave these as-is
+VERLIST=$(VERMAJOR).$(VERMINOR).$(VERAUX).$(VERPATCH)
+VERLISTC=$(VERMAJOR),$(VERMINOR),$(VERAUX),$(VERPATCH)
+
+# Various checks
+
+!ifndef MSSDK
+! error Platform SDK environment variables not set.
+!endif
+
+!ifndef KFWSDKDIR
+! error KFWSDKDIR environment variable not set.
+!endif
+
+# Directories
+
+BUILDROOT=.
+
+!ifdef NODEBUG
+BUILDTYPE=release
+!else
+BUILDTYPE=debug
+!endif
+
+!ifndef CPU
+!error Environment variable 'CPU' is not defined.
+!endif
+
+DEST=$(BUILDROOT)\dest\$(CPU)_$(BUILDTYPE)
+OBJ=$(BUILDROOT)\obj\$(CPU)_$(BUILDTYPE)
+
+!ifndef NIDMRAWDIRS
+KFWINCDIR=$(KFWSDKDIR)\inc
+NIDMINCDIR=$(KFWINCDIR)\netidmgr
+NIDMLIBDIR=$(KFWSDKDIR)\lib\$(CPU)
+!else
+NIDMINCDIR=$(KFWSDKDIR)\inc
+NIDMLIBDIR=$(KFWSDKDIR)
+!endif
+
+# Win32.mak
+
+!include <Win32.Mak>
+
+# Program macros
+
+CD=cd
+RM=del /q
+MKDIR=mkdir
+RMDIR=rmdir
+ECHO=echo
+CP=copy /y
+LINK=link
+MC=mc
+
+# Lots more macros
+
+incflags = -I"$(NIDMINCDIR)" -I"$(OBJ)" -I.
+rincflags = /i "$(NIDMINCDIR)" /i "$(OBJ)" /i .
+
+ldebug = $(ldebug) /DEBUG
+cdebug = $(cdebug) -Os -Zi
+
+cdefines = $(cdefines) -DUNICODE -D_UNICODE
+
+C2OBJ=$(CC) $(cdebug) $(cflags) $(incflags) $(cdefines) /Fo"$@" /c $**
+
+DLLGUILINK=$(LINK) /NOLOGO $(ldebug) $(dlllflags) $(guilibsmt) /OUT:"$@" /IMPLIB:$(DEST)\$(@B).lib $**
+
+DLLRESLINK=$(LINK) /NOLOGO /DLL /NOENTRY /MACHINE:$(PROCESSOR_ARCHITECTURE) /OUT:"$@" $**
+
+RC2RES=$(RC) $(RFLAGS) $(rincflags) /fo "$@" $**
+
+MC2RC=$(MC) $(MCFLAGS) -h "$(OBJ)\" -m 1024 -r "$(OBJ)\" -x "$(OBJ)\" $**
+
+{}.c{$(OBJ)}.obj:
+       $(C2OBJ)
+
+{$(OBJ)}.c{$(OBJ)}.obj:
+       $(C2OBJ)
+
+{}.rc{$(OBJ)}.res:
+       $(RC2RES)
+
+mkdirs::
+!if !exist($(DEST))
+       $(MKDIR) "$(DEST)"
+!endif
+!if !exist($(OBJ))
+       $(MKDIR) "$(OBJ)"
+!endif
+
+clean::
+       $(RM) "$(OBJ)\*.*"
+       $(RM) "$(DEST)\*.*"
+
+.SUFFIXES: .h
+
+#
+# Manifest handling
+#
+# Starting with Visual Studio 8, the C compiler and the linker
+# generate manifests so that the applications will link with the
+# correct side-by-side DLLs at run-time.  These are required for
+# correct operation under Windows XP.  We also have custom manifests
+# which need to be merged with the manifests that VS creates.
+#
+# The syntax for invoking the _VC_MANIFEST_EMBED_foo macro is:
+# $(_VC_MANIFEST_EMBED_???) <any additional manifests that need to be merged in>
+#
+
+!ifndef MT
+MT=mt.exe -nologo
+!endif
+
+_VC_MANIFEST_EMBED_EXE= \
+if exist "$@.manifest" $(MT) -outputresource:"$@";1 -manifest "$@.manifest"
+
+_VC_MANIFEST_EMBED_DLL=$(_VC_MANIFEST_EMBED_EXE)
+
+# Note that if you are merging manifests, then the VS generated
+# manifest should be cleaned up after calling _VC_MANIFEST_EMBED_???.
+# This ensures that even if the DLL or EXE is executed in-place, the
+# embedded manifest will be used.  Otherwise the $@.manifest file will
+# be used.
+_VC_MANIFEST_CLEAN= \
+if exist "$@.manifest" $(RM) "$@.manifest"
+
+# End of manifest handling
+
+
+# Now for the actual build stuff
+
+DLL=$(DEST)\$(DLLBASENAME).dll
+
+LIBFILES= \
+       "$(NIDMLIBDIR)\nidmgr32.lib"
+
+OBJFILES= \
+       $(OBJ)\credacq.obj      \
+       $(OBJ)\credtype.obj     \
+       $(OBJ)\main.obj         \
+       $(OBJ)\plugin.obj       \
+       $(OBJ)\proppage.obj     \
+       $(OBJ)\config_main.obj  \
+       $(OBJ)\config_id.obj    \
+       $(OBJ)\config_ids.obj
+
+DLLRESFILE=$(OBJ)\version.res
+
+CONFIGHEADER=$(OBJ)\credacq_config.h
+
+all: mkdirs $(CONFIGHEADER) $(DLL) lang
+
+$(CONFIGHEADER): Makefile
+       $(CP) << "$@"
+/* This is a generated file.  Do not modify directly. */
+
+#pragma once
+
+#define MYPLUGIN_DLLBASE "$(DLLBASENAME)"
+
+#define MYPLUGIN_NAME "$(PLUGINNAME)"
+
+#define MYMODULE_NAME "$(MODULENAME)"
+
+#define MYCREDTYPE_NAME "$(CREDTYPENAME)"
+
+#define VERSION_MAJOR $(VERMAJOR)
+#define VERSION_MINOR $(VERMINOR)
+#define VERSION_AUX   $(VERAUX)
+#define VERSION_PATCH $(VERPATCH)
+
+#define VERSION_LIST  $(VERLIST)
+#define VERSION_LISTC $(VERLISTC)
+#define VERSION_STRING "$(VERLIST)"
+
+<<
+
+clean::
+       $(RM) $(CONFIGHEADER)
+
+$(DLL): $(OBJFILES) $(DLLRESFILE)
+       $(DLLGUILINK) $(LIBFILES)
+       $(_VC_MANIFEST_EMBED_DLL)
+       $(_VC_MANIFEST_CLEAN)
+
+clean::
+       $(RM) $(DLL)
+
+# Language specific resources
+
+# (repeat the following block as needed, redefining LANG for each
+# supported language)
+
+# English-US
+LANG=en_us
+
+LANGDLL=$(DEST)\$(DLLBASENAME)_$(LANG).dll
+
+lang:: $(LANGDLL)
+
+$(LANGDLL): $(OBJ)\langres_$(LANG).res $(OBJ)\version_$(LANG).res
+       $(DLLRESLINK)
+       $(_VC_MANIFEST_EMBED_DLL)
+       $(_VC_MANIFEST_CLEAN)
+
+clean::
+       $(RM) $(LANGDLL)
+
+$(OBJ)\version_$(LANG).res: version.rc
+       $(RC) $(RFLAGS) $(rincflags) /d LANGRES /d LANG_$(LANG) /fo $@ $**
+
+clean::
+       $(RM) $(OBJ)\version_$(LANG).res
+
+$(OBJ)\langres_$(LANG).res: lang\$(LANG)\langres.rc
+       $(RC2RES)
+
+clean::
+       $(RM) $(OBJ)\langres_$(LANG).res
+
+# /English-US
index f091143c8168e834c7ba1ba6ebced066909af57f..2ecf88188ee69ad222e2a28d1f9eb9c90a7624b5 100644 (file)
-\r
-  Network Identity Manager\r
-\r
-        Credentials Provider Plug-in Template\r
-\r
-------------------------------------------------------------------\r
-\r
-        CONTENTS\r
-\r
-        1.  INTRODUCTION\r
-        2.  COPYRIGHT AND LICENSE\r
-        3.  ROADMAP OF THE TEMPLATE\r
-        4.  BUILD REQUIREMENTS\r
-        5.  BUILDING\r
-        6.  RUNNING THE PLUG-IN\r
-        7.  KNOWN ISSUES\r
-        8.  SUPPORT / BUG REPORTS\r
-\r
-------------------------------------------------------------------\r
-\r
-1.      INTRODUCTION\r
-\r
-    This directory and subdirectories contain a plug-in template for\r
-    creating a credentials provider plug-in for Network Identity\r
-    Manager.  A credentials manager plug-in provides knowledge of a\r
-    specifc credentials type to the NetIDMgr application and manages\r
-    those credentials on behalf of NetIDMgr.\r
-\r
-    This version of the template adheres to the following version\r
-    constraints:\r
-\r
-        Network Identity Manager API version : 5\r
-\r
-    (This API version corresponds to the MIT Kerberos for Windows\r
-    version 3.1).\r
-\r
-    The source files in this template can be used to build the plug-in\r
-    DLL and the US English resource DLL for the plug-in.  In its\r
-    current form, the plug-in doesn't do any credentials management.\r
-    However, it implements a number of stub functions that can be\r
-    filled in to perform the necessary credentials management\r
-    operations.\r
-\r
-------------------------------------------------------------------\r
-\r
-2.      COPYRIGHT AND LICENSE\r
-\r
-    Copyright (c) 2006 Secure Endpoints Inc.\r
-\r
-    Permission is hereby granted, free of charge, to any person\r
-    obtaining a copy of this software and associated documentation\r
-    files (the "Software"), to deal in the Software without\r
-    restriction, including without limitation the rights to use, copy,\r
-    modify, merge, publish, distribute, sublicense, and/or sell copies\r
-    of the Software, and to permit persons to whom the Software is\r
-    furnished to do so, subject to the following conditions:\r
-\r
-    The above copyright notice and this permission notice shall be\r
-    included in all copies or substantial portions of the Software.\r
-\r
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r
-    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r
-    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
-    DEALINGS IN THE SOFTWARE.\r
-\r
-------------------------------------------------------------------\r
-\r
-3.      ROADMAP OF THE TEMPLATE\r
-\r
-    The template consists of the following files and directories:\r
-\r
-    .\README\r
-\r
-        This file.\r
-\r
-    .\Makefile\r
-\r
-        The primary (and only) Makefile used by 'nmake' to build the\r
-        plug-in.  In addition to providing build directives, it also\r
-        contains a set of macros which defines the names and version\r
-        information that is used throughout the plug-in code.\r
-\r
-        Look for the 'Configuration Settings' section of the Makefile\r
-        for the macros.  If you are basing a plug-in on this template,\r
-        you will want to change these macros.  These macros will be\r
-        used to generate 'credacq_config.h', a header file included by\r
-        'credprov.h' so that the values of the macros can be used in C\r
-        code.\r
-\r
-    .\credprov.h\r
-\r
-        The main header file for all the C source files in the\r
-        plug-in.\r
-\r
-    .\main.c\r
-\r
-        Provides the entry points for the module.\r
-\r
-    .\plugin.c\r
-\r
-        Provides the message processing functions and support routines\r
-        for implementing the plug-in.  Note that some of the message\r
-        processing routines have been moved to other sources files\r
-        based on their use.\r
-\r
-    .\credtype.c\r
-\r
-        Functions for handling our credentials type.\r
-\r
-    .\credacq.c\r
-\r
-        Handlers for the credentials acquisition messages including\r
-        handling the user interface for the new credentials dialogs.\r
-\r
-    .\proppage.c\r
-\r
-        Dialog procedures and support code for displaying property\r
-        sheets for credentials that belong to our credentials type.\r
-\r
-    .\config_main.c\r
-\r
-        Dialog procedures and support code for providing the general\r
-        configuration panel for this plug-in.\r
-\r
-    .\config_id.c\r
-\r
-        Dialog procedures and support code for providing per-identity\r
-        configuration for this plug-in.\r
-\r
-    .\config_ids.c\r
-\r
-        Dialog procedures and support code for providing configuration\r
-        for defaults across all identities.\r
-\r
-    .\version.rc\r
-\r
-        Version information for the plug-in as well as all the\r
-        language resource DLLs.\r
-\r
-    .\langres.h\r
-\r
-        Declarations for the language resources (see below).  In its\r
-        current form, it was generated via Visual Studio while editing\r
-        the language resouces file.\r
-\r
-    .\images\plugin.ico\r
-\r
-        A generic plug-in icon.\r
-\r
-    .\lang\en_us\langres.rc\r
-\r
-        US-English language resources.  This will be used to create\r
-        the language resource DLL.\r
-\r
-------------------------------------------------------------------\r
-\r
-4.      BUILD REQUIREMENTS\r
-\r
-    Microsoft(R) Platform SDK (Windows Server 2003 or later)\r
-\r
-        (http://www.microsoft.com/msdownload/platformsdk/sdkupdate/)\r
-\r
-    Microsoft(R) Visual C++ (Visual Studio 2003 or later)\r
-\r
-        Although not tested, the template should build using the\r
-        Microsoft Visual C++ toolkit.\r
-\r
-    MIT Kerberos for Windows (version 3.1 or later) SDK\r
-\r
-        At the current time, version 3.1 is still in beta.  However,\r
-        the template will not work with the 3.0 SDK due to a number of\r
-        changes that were made to the NetIDMgr API between 3.0 and\r
-        3.1.\r
-\r
-------------------------------------------------------------------\r
-\r
-5.      BUILDING\r
-\r
-    The build process is fairly starightforward.  The source is set up\r
-    to build using 'nmake', a build tool distributed with the Platform\r
-    SDK as well as with Visual Studio.\r
-\r
-    1.  Open a command prompt with a suitable build environment.\r
-\r
-        From a plain command prompt, you can set up a debug build\r
-        environment targetting Windows XP (32-bit) with:\r
-\r
-        > "%PROGRAMFILES%\Microsoft Platform SDK\SetEnv.Cmd" /XP32 /DEBUG\r
-\r
-    2.  Set the environment variable KFWSDKDIR to point to the root of\r
-        the Kerberos for Windows 3.1 SDK.  (i.e. %KFWSDKDIR%\inc\r
-        should be the include directory of the SDK)\r
-\r
-        > SET KFWSDKDIR=%PROGRAMFILES%\MIT\Kerberos\r
-\r
-    3.  Start the build:\r
-\r
-        > NMAKE all\r
-\r
-        The build target 'all' builds the plug-in and the language\r
-        resources.  There is an additional build target 'clean' which\r
-        removes the temporary files and the binaries generated during\r
-        the build.\r
-\r
-        Assuming everything goes well, the plug-in binaries should be\r
-        created under a subdirectory under 'dest'.  The name of the\r
-        subdirectory reflects the target architecture and the build\r
-        type ('debug' or 'release').\r
-\r
-------------------------------------------------------------------\r
-\r
-6.      RUNNING THE PLUG-IN\r
-\r
-    Once the binaries for the plug-in have been built, you need to\r
-    register the plug-in with NetIDMgr by adding a registry value as\r
-    follows:\r
-\r
-    [HKEY_CURRENT_USER\Software\MIT\NetIDMgr\PluginManager\Modules\<Module name>]\r
-       "ImagePath"="<path>"\r
-\r
-    The <path> should be the full path to the plug-in DLL.\r
-\r
-    <Module name> is the name of the module that you built.  The\r
-    default value specified in the template is 'MyModule'.  This is\r
-    the value of the macro 'MODULENAME' defined in the 'Makefile'.\r
-\r
-    Once this is done, you need to restart NetIDMgr so that it will\r
-    pick up the new plug-in.\r
-\r
-------------------------------------------------------------------\r
-\r
-7.      KNOWN ISSUES\r
-\r
-    1.  With the current MIT Kerberos for Windows 3.1 beta, NetIDMgr\r
-        will fail to load the plug-in when tries to load the plug-in\r
-        for the first time.  Restarting NetIDMgr will fix the problem.\r
-        This will be fixed in a future beta and the final release of\r
-        KfW 3.1\r
-\r
-------------------------------------------------------------------\r
-\r
-8.      SUPPORT / BUG REPORTS\r
-\r
-    Problems should be sent to netidmgr@secure-endpoints.com\r
-\r
-------------------------------------------------------------------\r
+
+  Network Identity Manager
+
+        Credentials Provider Plug-in Template
+
+------------------------------------------------------------------
+
+        CONTENTS
+
+        1.  INTRODUCTION
+        2.  COPYRIGHT AND LICENSE
+        3.  ROADMAP OF THE TEMPLATE
+        4.  BUILD REQUIREMENTS
+        5.  BUILDING
+        6.  RUNNING THE PLUG-IN
+        7.  KNOWN ISSUES
+        8.  SUPPORT / BUG REPORTS
+
+------------------------------------------------------------------
+
+1.      INTRODUCTION
+
+    This directory and subdirectories contain a plug-in template for
+    creating a credentials provider plug-in for Network Identity
+    Manager.  A credentials manager plug-in provides knowledge of a
+    specifc credentials type to the NetIDMgr application and manages
+    those credentials on behalf of NetIDMgr.
+
+    This version of the template adheres to the following version
+    constraints:
+
+        Network Identity Manager API version : 5
+
+    (This API version corresponds to the MIT Kerberos for Windows
+    version 3.1).
+
+    The source files in this template can be used to build the plug-in
+    DLL and the US English resource DLL for the plug-in.  In its
+    current form, the plug-in doesn't do any credentials management.
+    However, it implements a number of stub functions that can be
+    filled in to perform the necessary credentials management
+    operations.
+
+------------------------------------------------------------------
+
+2.      COPYRIGHT AND LICENSE
+
+    Copyright (c) 2006 Secure Endpoints Inc.
+
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------
+
+3.      ROADMAP OF THE TEMPLATE
+
+    The template consists of the following files and directories:
+
+    .\README
+
+        This file.
+
+    .\Makefile
+
+        The primary (and only) Makefile used by 'nmake' to build the
+        plug-in.  In addition to providing build directives, it also
+        contains a set of macros which defines the names and version
+        information that is used throughout the plug-in code.
+
+        Look for the 'Configuration Settings' section of the Makefile
+        for the macros.  If you are basing a plug-in on this template,
+        you will want to change these macros.  These macros will be
+        used to generate 'credacq_config.h', a header file included by
+        'credprov.h' so that the values of the macros can be used in C
+        code.
+
+    .\credprov.h
+
+        The main header file for all the C source files in the
+        plug-in.
+
+    .\main.c
+
+        Provides the entry points for the module.
+
+    .\plugin.c
+
+        Provides the message processing functions and support routines
+        for implementing the plug-in.  Note that some of the message
+        processing routines have been moved to other sources files
+        based on their use.
+
+    .\credtype.c
+
+        Functions for handling our credentials type.
+
+    .\credacq.c
+
+        Handlers for the credentials acquisition messages including
+        handling the user interface for the new credentials dialogs.
+
+    .\proppage.c
+
+        Dialog procedures and support code for displaying property
+        sheets for credentials that belong to our credentials type.
+
+    .\config_main.c
+
+        Dialog procedures and support code for providing the general
+        configuration panel for this plug-in.
+
+    .\config_id.c
+
+        Dialog procedures and support code for providing per-identity
+        configuration for this plug-in.
+
+    .\config_ids.c
+
+        Dialog procedures and support code for providing configuration
+        for defaults across all identities.
+
+    .\version.rc
+
+        Version information for the plug-in as well as all the
+        language resource DLLs.
+
+    .\langres.h
+
+        Declarations for the language resources (see below).  In its
+        current form, it was generated via Visual Studio while editing
+        the language resouces file.
+
+    .\images\plugin.ico
+
+        A generic plug-in icon.
+
+    .\lang\en_us\langres.rc
+
+        US-English language resources.  This will be used to create
+        the language resource DLL.
+
+------------------------------------------------------------------
+
+4.      BUILD REQUIREMENTS
+
+    Microsoft(R) Platform SDK (Windows Server 2003 or later)
+
+        (http://www.microsoft.com/msdownload/platformsdk/sdkupdate/)
+
+    Microsoft(R) Visual C++ (Visual Studio 2003 or later)
+
+        Although not tested, the template should build using the
+        Microsoft Visual C++ toolkit.
+
+    MIT Kerberos for Windows (version 3.1 or later) SDK
+
+        At the current time, version 3.1 is still in beta.  However,
+        the template will not work with the 3.0 SDK due to a number of
+        changes that were made to the NetIDMgr API between 3.0 and
+        3.1.
+
+------------------------------------------------------------------
+
+5.      BUILDING
+
+    The build process is fairly starightforward.  The source is set up
+    to build using 'nmake', a build tool distributed with the Platform
+    SDK as well as with Visual Studio.
+
+    1.  Open a command prompt with a suitable build environment.
+
+        From a plain command prompt, you can set up a debug build
+        environment targetting Windows XP (32-bit) with:
+
+        > "%PROGRAMFILES%\Microsoft Platform SDK\SetEnv.Cmd" /XP32 /DEBUG
+
+    2.  Set the environment variable KFWSDKDIR to point to the root of
+        the Kerberos for Windows 3.1 SDK.  (i.e. %KFWSDKDIR%\inc
+        should be the include directory of the SDK)
+
+        > SET KFWSDKDIR=%PROGRAMFILES%\MIT\Kerberos
+
+    3.  Start the build:
+
+        > NMAKE all
+
+        The build target 'all' builds the plug-in and the language
+        resources.  There is an additional build target 'clean' which
+        removes the temporary files and the binaries generated during
+        the build.
+
+        Assuming everything goes well, the plug-in binaries should be
+        created under a subdirectory under 'dest'.  The name of the
+        subdirectory reflects the target architecture and the build
+        type ('debug' or 'release').
+
+------------------------------------------------------------------
+
+6.      RUNNING THE PLUG-IN
+
+    Once the binaries for the plug-in have been built, you need to
+    register the plug-in with NetIDMgr by adding a registry value as
+    follows:
+
+    [HKEY_CURRENT_USER\Software\MIT\NetIDMgr\PluginManager\Modules\<Module name>]
+       "ImagePath"="<path>"
+
+    The <path> should be the full path to the plug-in DLL.
+
+    <Module name> is the name of the module that you built.  The
+    default value specified in the template is 'MyModule'.  This is
+    the value of the macro 'MODULENAME' defined in the 'Makefile'.
+
+    Once this is done, you need to restart NetIDMgr so that it will
+    pick up the new plug-in.
+
+------------------------------------------------------------------
+
+7.      KNOWN ISSUES
+
+    1.  With the current MIT Kerberos for Windows 3.1 beta, NetIDMgr
+        will fail to load the plug-in when tries to load the plug-in
+        for the first time.  Restarting NetIDMgr will fix the problem.
+        This will be fixed in a future beta and the final release of
+        KfW 3.1
+
+------------------------------------------------------------------
+
+8.      SUPPORT / BUG REPORTS
+
+    Problems should be sent to netidmgr@secure-endpoints.com
+
+------------------------------------------------------------------
index 7e3702792485eecd4aced6cac0d329d5bb70e515..ebffa5410f6d5ca6e5230e4c64a9d0e567961f44 100644 (file)
-// Microsoft Visual C++ generated resource script.\r
-//\r
-#include "..\..\langres.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#include "afxres.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE \r
-BEGIN\r
-    "..\\..\\langres.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE \r
-BEGIN\r
-    "#include ""afxres.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_PLUGIN              ICON                    "..\\..\\images\\plugin.ico"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_PP_CRED DIALOGEX 0, 0, 235, 156\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-CAPTION "Property Page"\r
-FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "TODO: layout property page",IDC_STATIC,60,73,110,8\r
-END\r
-\r
-IDD_PP_IDENT DIALOGEX 0, 0, 235, 156\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-CAPTION "Property Page"\r
-FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-BEGIN\r
-    LTEXT           "TODO: layout property page",IDC_STATIC,60,73,106,8\r
-END\r
-\r
-IDD_NEW_CREDS DIALOGEX 0, 0, 300, 166\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-    CONTROL         "My Cred Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11\r
-END\r
-\r
-IDD_CONFIG DIALOGEX 0, 0, 255, 182\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-END\r
-\r
-IDD_CONFIG_ID DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-END\r
-\r
-IDD_CONFIG_IDS DIALOGEX 0, 0, 235, 151\r
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU\r
-FONT 8, "MS Shell Dlg", 400, 0, 0x1\r
-BEGIN\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO \r
-BEGIN\r
-    IDD_PP_CRED, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 149\r
-    END\r
-\r
-    IDD_PP_IDENT, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 149\r
-    END\r
-\r
-    IDD_NEW_CREDS, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 293\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 159\r
-    END\r
-\r
-    IDD_CONFIG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 248\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 175\r
-    END\r
-\r
-    IDD_CONFIG_ID, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-\r
-    IDD_CONFIG_IDS, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 228\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 144\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_PLUGIN_DESC         "My Credentials Provider Plugin"\r
-    IDS_CT_SHORT_DESC       "My Cred"\r
-    IDS_CT_LONG_DESC        "My Credential"\r
-END\r
-\r
-STRINGTABLE \r
-BEGIN\r
-    IDS_NC_CT_TEMPLATE      "<p><a id=""SwitchPanel"" param=""MyCred""><b>My Cred</b></a><tab>: %s</p>"\r
-    IDS_NC_CT_TEMPLATE_NL   "<p><tab>   %s</p>"\r
-    IDS_GEN_NONE            "(none)"\r
-    IDS_CFG_SHORT_DESC      "My Creds"\r
-    IDS_CFG_LONG_DESC       "My Creds Options"\r
-    IDS_CFG_IDS_SHORT_DESC  "My Creds"\r
-    IDS_CFG_IDS_LONG_DESC   "My Creds Options for all identities"\r
-    IDS_CFG_ID_SHORT_DESC   "My Creds"\r
-    IDS_CFG_ID_LONG_DESC    "My Creds Options for this identity"\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\..\langres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "..\\..\\langres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_PLUGIN              ICON                    "..\\..\\images\\plugin.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_PP_CRED DIALOGEX 0, 0, 235, 156
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Property Page"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    LTEXT           "TODO: layout property page",IDC_STATIC,60,73,110,8
+END
+
+IDD_PP_IDENT DIALOGEX 0, 0, 235, 156
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Property Page"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+    LTEXT           "TODO: layout property page",IDC_STATIC,60,73,106,8
+END
+
+IDD_NEW_CREDS DIALOGEX 0, 0, 300, 166
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+    CONTROL         "My Cred Options",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP,7,7,286,11
+END
+
+IDD_CONFIG DIALOGEX 0, 0, 255, 182
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+END
+
+IDD_CONFIG_ID DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+END
+
+IDD_CONFIG_IDS DIALOGEX 0, 0, 235, 151
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO 
+BEGIN
+    IDD_PP_CRED, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 149
+    END
+
+    IDD_PP_IDENT, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 149
+    END
+
+    IDD_NEW_CREDS, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 293
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 159
+    END
+
+    IDD_CONFIG, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 248
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 175
+    END
+
+    IDD_CONFIG_ID, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+
+    IDD_CONFIG_IDS, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 228
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 144
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE 
+BEGIN
+    IDS_PLUGIN_DESC         "My Credentials Provider Plugin"
+    IDS_CT_SHORT_DESC       "My Cred"
+    IDS_CT_LONG_DESC        "My Credential"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_NC_CT_TEMPLATE      "<p><a id=""SwitchPanel"" param=""MyCred""><b>My Cred</b></a><tab>: %s</p>"
+    IDS_NC_CT_TEMPLATE_NL   "<p><tab>   %s</p>"
+    IDS_GEN_NONE            "(none)"
+    IDS_CFG_SHORT_DESC      "My Creds"
+    IDS_CFG_LONG_DESC       "My Creds Options"
+    IDS_CFG_IDS_SHORT_DESC  "My Creds"
+    IDS_CFG_IDS_LONG_DESC   "My Creds Options for all identities"
+    IDS_CFG_ID_SHORT_DESC   "My Creds"
+    IDS_CFG_ID_LONG_DESC    "My Creds Options for this identity"
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
index c27766761d776579d8b4d5222fab1b45f7cf1e42..47b032c4fe19b689888678d164933619fed1e305 100644 (file)
@@ -1,94 +1,94 @@
-/* Copyright (c) 2006 Secure Endpoints Inc.\r
- *\r
- * Permission is hereby granted, free of charge, to any person\r
- * obtaining a copy of this software and associated documentation\r
- * files (the "Software"), to deal in the Software without\r
- * restriction, including without limitation the rights to use, copy,\r
- * modify, merge, publish, distribute, sublicense, and/or sell copies\r
- * of the Software, and to permit persons to whom the Software is\r
- * furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be\r
- * included in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- *\r
- */\r
-\r
-/* $Id$ */\r
-\r
-#include "credprov.h"\r
-#include<netidmgr_version.h>\r
-\r
-/* We use the same version.rc file for the main plugin DLL as well as\r
-   for the localized resource DLLs.*/\r
-\r
-#ifndef LANGVER\r
-\r
-#define STR_FILEDESC "My Credentials Provider Plugin for NetIDMgr"\r
-#define STR_INTNAME  MYPLUGIN_NAME\r
-#define STR_ORIGNAME MYPLUGIN_DLLBASE ".dll"\r
-\r
-#else\r
-\r
-#ifdef LANG_en_us\r
-\r
-#define STR_FILEDESC "English(US) language resources for My Credentials Provider"\r
-#define STR_INTNAME  MYPLUGIN_DLLBASE "_en_us"\r
-#define STR_ORIGNAME MYPLUGIN_DLLBASE "_en_us.dll"\r
-\r
-#else\r
-\r
-#error Unknown langugae\r
-\r
-#endif\r
-\r
-#endif\r
-\r
-1 VERSIONINFO \r
-        FILEVERSION     VERSION_LISTC\r
-        PRODUCTVERSION  VERSION_LISTC\r
-        FILEFLAGSMASK   KH_VER_FILEFLAGMASK\r
-        FILEFLAGS       KH_VER_FILEFLAGS\r
-        FILEOS          KH_VER_FILEOS\r
-        FILETYPE        KH_VER_FILETYPEDLL\r
-        FILESUBTYPE     0\r
-  {\r
-\r
-    BLOCK "StringFileInfo"\r
-    {\r
-      BLOCK "040904b0"\r
-      {\r
-        VALUE "CompanyName",     "My Company"\r
-        VALUE "FileDescription", "My Credentials Provider Plugin"\r
-        VALUE "FileVersion",     VERSION_STRING\r
-        VALUE "InternalName",    STR_INTNAME\r
-        VALUE "LegalCopyright",  "(C) 2006 My Company"\r
-        VALUE "OriginalFilename", STR_ORIGNAME\r
-        VALUE "ProductName",     "My Plugin Product"\r
-        VALUE "ProductVersion",  VERSION_STRING\r
-#ifndef LANGVER\r
-        VALUE NIMV_MODULE,       MYMODULE_NAME\r
-\r
-/* if more than one plugin is provided by this module, then all of\r
-   those plugins should be listed here separated by commas. */\r
-        VALUE NIMV_PLUGINS,      MYPLUGIN_NAME\r
-\r
-        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI\r
-        VALUE NIMV_SUPPORT,      "http://example.com/myplugin"\r
-#endif\r
-      }\r
-    }\r
-\r
-    BLOCK "VarFileInfo"\r
-    {\r
-        VALUE "Translation", 0x409, 1200\r
-    }\r
-  }\r
+/* Copyright (c) 2006 Secure Endpoints Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+/* $Id$ */
+
+#include "credprov.h"
+#include<netidmgr_version.h>
+
+/* We use the same version.rc file for the main plugin DLL as well as
+   for the localized resource DLLs.*/
+
+#ifndef LANGVER
+
+#define STR_FILEDESC "My Credentials Provider Plugin for NetIDMgr"
+#define STR_INTNAME  MYPLUGIN_NAME
+#define STR_ORIGNAME MYPLUGIN_DLLBASE ".dll"
+
+#else
+
+#ifdef LANG_en_us
+
+#define STR_FILEDESC "English(US) language resources for My Credentials Provider"
+#define STR_INTNAME  MYPLUGIN_DLLBASE "_en_us"
+#define STR_ORIGNAME MYPLUGIN_DLLBASE "_en_us.dll"
+
+#else
+
+#error Unknown langugae
+
+#endif
+
+#endif
+
+1 VERSIONINFO 
+        FILEVERSION     VERSION_LISTC
+        PRODUCTVERSION  VERSION_LISTC
+        FILEFLAGSMASK   KH_VER_FILEFLAGMASK
+        FILEFLAGS       KH_VER_FILEFLAGS
+        FILEOS          KH_VER_FILEOS
+        FILETYPE        KH_VER_FILETYPEDLL
+        FILESUBTYPE     0
+  {
+
+    BLOCK "StringFileInfo"
+    {
+      BLOCK "040904b0"
+      {
+        VALUE "CompanyName",     "My Company"
+        VALUE "FileDescription", "My Credentials Provider Plugin"
+        VALUE "FileVersion",     VERSION_STRING
+        VALUE "InternalName",    STR_INTNAME
+        VALUE "LegalCopyright",  "(C) 2006 My Company"
+        VALUE "OriginalFilename", STR_ORIGNAME
+        VALUE "ProductName",     "My Plugin Product"
+        VALUE "ProductVersion",  VERSION_STRING
+#ifndef LANGVER
+        VALUE NIMV_MODULE,       MYMODULE_NAME
+
+/* if more than one plugin is provided by this module, then all of
+   those plugins should be listed here separated by commas. */
+        VALUE NIMV_PLUGINS,      MYPLUGIN_NAME
+
+        VALUE NIMV_APIVER,       KH_VERSION_STRINGAPI
+        VALUE NIMV_SUPPORT,      "http://example.com/myplugin"
+#endif
+      }
+    }
+
+    BLOCK "VarFileInfo"
+    {
+        VALUE "Translation", 0x409, 1200
+    }
+  }
index 58a69a472337dd082d05ae1b827e5ecdbc228c2f..324ad5231a8159c4947c244ddf3fd5ad8766541a 100644 (file)
@@ -1,40 +1,40 @@
-\r
-#include<windows.h>\r
-#include<netidmgr_intver.h>\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Version\r
-//\r
-\r
-VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION    KH_VERSION_LIST\r
- PRODUCTVERSION KH_VERSION_LIST\r
- FILEFLAGSMASK  0x17L\r
- FILEFLAGS      KH_VER_FILEFLAGS\r
- FILEOS         KH_VER_FILEOS\r
- FILETYPE       0x0L\r
- FILESUBTYPE    0x0L\r
-BEGIN\r
-    BLOCK "StringFileInfo"\r
-    BEGIN\r
-        BLOCK "040904b0"\r
-        BEGIN\r
-            VALUE "CompanyName", KH_VERSTR_COMPANY_1033\r
-            VALUE "FileDescription", "Network Identity Manager"\r
-            VALUE "FileVersion", KH_VERSTR_VERSION_1033\r
-            VALUE "InternalName", "NetIDMgr"\r
-            VALUE "LegalCopyright", KH_VERSTR_COPYRIGHT_1033\r
-            VALUE "OriginalFilename", "netidmgr.exe"\r
-            VALUE "ProductName", "Network Identity Manager"\r
-            VALUE "ProductVersion", KH_VERSTR_PRODUCT_1033\r
-#ifdef KH_VERSTR_COMMENT_1033\r
-            VALUE "Comment", KH_VERSTR_COMMENT_1033\r
-#endif\r
-        END\r
-    END\r
-    BLOCK "VarFileInfo"\r
-    BEGIN\r
-        VALUE "Translation", 0x409, 1200\r
-    END\r
-END\r
+
+#include<windows.h>
+#include<netidmgr_intver.h>
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION    KH_VERSION_LIST
+ PRODUCTVERSION KH_VERSION_LIST
+ FILEFLAGSMASK  0x17L
+ FILEFLAGS      KH_VER_FILEFLAGS
+ FILEOS         KH_VER_FILEOS
+ FILETYPE       0x0L
+ FILESUBTYPE    0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", KH_VERSTR_COMPANY_1033
+            VALUE "FileDescription", "Network Identity Manager"
+            VALUE "FileVersion", KH_VERSTR_VERSION_1033
+            VALUE "InternalName", "NetIDMgr"
+            VALUE "LegalCopyright", KH_VERSTR_COPYRIGHT_1033
+            VALUE "OriginalFilename", "netidmgr.exe"
+            VALUE "ProductName", "Network Identity Manager"
+            VALUE "ProductVersion", KH_VERSTR_PRODUCT_1033
+#ifdef KH_VERSTR_COMMENT_1033
+            VALUE "Comment", KH_VERSTR_COMMENT_1033
+#endif
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
index 8a16b8e8f827ac6ad07593e4de6f6c61425bd973..ca90069db57cb8a7a6800ded50743032352f88d9 100644 (file)
Binary files a/src/windows/identity/ui/lang/en_us/cmdline.rtf and b/src/windows/identity/ui/lang/en_us/cmdline.rtf differ
index f13a3ec1808e6c66856bce55ae5018c5bec1735c..d1cfb2dd220729c3e83a3b0f5a7dd7faa7669cb5 100644 (file)
@@ -1,29 +1,29 @@
-#\r
-\r
-die "Please specify input and output filenames" if($#ARGV != 1);\r
-\r
-open INF, '<', $ARGV[0] or die "Can't open input file";\r
-open OUF, '>', $ARGV[1] or die "Can't open output file";\r
-\r
-print OUF <<EOS;\r
-#include<khimaira.h>\r
-\r
-    khui_accel_def khui_accel_global[] = {\r
-EOS\r
-\r
-# skip first line\r
-    <INF>;\r
-\r
-while(<INF>) {\r
-    print OUF "{".$_."},\n";\r
-}\r
-\r
-print OUF <<EOS;\r
-};\r
-\r
-int khui_n_accel_global = sizeof(khui_accel_global) / sizeof(khui_accel_def);\r
-\r
-EOS\r
-\r
-close INF;\r
-close OUF;\r
+#
+
+die "Please specify input and output filenames" if($#ARGV != 1);
+
+open INF, '<', $ARGV[0] or die "Can't open input file";
+open OUF, '>', $ARGV[1] or die "Can't open output file";
+
+print OUF <<EOS;
+#include<khimaira.h>
+
+    khui_accel_def khui_accel_global[] = {
+EOS
+
+# skip first line
+    <INF>;
+
+while(<INF>) {
+    print OUF "{".$_."},\n";
+}
+
+print OUF <<EOS;
+};
+
+int khui_n_accel_global = sizeof(khui_accel_global) / sizeof(khui_accel_def);
+
+EOS
+
+close INF;
+close OUF;
index a83325b3a0464da555aee87b894812248e04333d..f99373588ad42b23539236df68489e7185f61565 100644 (file)
@@ -1,29 +1,29 @@
-#\r
-\r
-die "Please specify input and output filenames" if($#ARGV != 1);\r
-\r
-open INF, '<', $ARGV[0] or die "Can't open input file";\r
-open OUF, '>', $ARGV[1] or die "Can't open output file";\r
-\r
-print OUF <<EOS;\r
-#include<khimaira.h>\r
-\r
-    khui_action khui_actions[] = {\r
-EOS\r
-\r
-# skip first line\r
-    <INF>;\r
-\r
-while(<INF>) {\r
-    print OUF "{".$_."},\n";\r
-}\r
-\r
-print OUF <<EOS;\r
-};\r
-\r
-int khui_n_actions = sizeof(khui_actions) / sizeof(khui_action);\r
-\r
-EOS\r
-\r
-close INF;\r
-close OUF;\r
+#
+
+die "Please specify input and output filenames" if($#ARGV != 1);
+
+open INF, '<', $ARGV[0] or die "Can't open input file";
+open OUF, '>', $ARGV[1] or die "Can't open output file";
+
+print OUF <<EOS;
+#include<khimaira.h>
+
+    khui_action khui_actions[] = {
+EOS
+
+# skip first line
+    <INF>;
+
+while(<INF>) {
+    print OUF "{".$_."},\n";
+}
+
+print OUF <<EOS;
+};
+
+int khui_n_actions = sizeof(khui_actions) / sizeof(khui_action);
+
+EOS
+
+close INF;
+close OUF;
index 5e83258c4f113f43422c4694937065bc605f6190..3d77cce68a59771197868608113c129b8969bfe2 100644 (file)
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="MIT.NetIDMgr.UI"\r
-    type="win32"\r
-/>\r
-<description>Khimaira Credentials Manager</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+    version="1.0.0.0"
+    processorArchitecture="X86"
+    name="MIT.NetIDMgr.UI"
+    type="win32"
+/>
+<description>Khimaira Credentials Manager</description>
+<dependency>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.Windows.Common-Controls"
+            version="6.0.0.0"
+            processorArchitecture="X86"
+            publicKeyToken="6595b64144ccf1df"
+            language="*"
+        />
+    </dependentAssembly>
+</dependency>
+</assembly>
index 5e83258c4f113f43422c4694937065bc605f6190..3d77cce68a59771197868608113c129b8969bfe2 100644 (file)
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="MIT.NetIDMgr.UI"\r
-    type="win32"\r
-/>\r
-<description>Khimaira Credentials Manager</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+    version="1.0.0.0"
+    processorArchitecture="X86"
+    name="MIT.NetIDMgr.UI"
+    type="win32"
+/>
+<description>Khimaira Credentials Manager</description>
+<dependency>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.Windows.Common-Controls"
+            version="6.0.0.0"
+            processorArchitecture="X86"
+            publicKeyToken="6595b64144ccf1df"
+            language="*"
+        />
+    </dependentAssembly>
+</dependency>
+</assembly>
index 5e83258c4f113f43422c4694937065bc605f6190..3d77cce68a59771197868608113c129b8969bfe2 100644 (file)
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="MIT.NetIDMgr.UI"\r
-    type="win32"\r
-/>\r
-<description>Khimaira Credentials Manager</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+    version="1.0.0.0"
+    processorArchitecture="X86"
+    name="MIT.NetIDMgr.UI"
+    type="win32"
+/>
+<description>Khimaira Credentials Manager</description>
+<dependency>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.Windows.Common-Controls"
+            version="6.0.0.0"
+            processorArchitecture="X86"
+            publicKeyToken="6595b64144ccf1df"
+            language="*"
+        />
+    </dependentAssembly>
+</dependency>
+</assembly>
index 84d91a339e08dae9ab5f6dd2adb35bbd82bd1538..d2ced7fd212a99f0b9c1ca9fc5b7e177e80017f9 100644 (file)
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="MIT.NetIDMgr.UI"\r
-    type="win32"\r
-/>\r
-<description>Khimaira Credentials Manager</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.VC80.DebugCRT"\r
-            version="8.0.50215.4652"\r
-            processorArchitecture="x86"\r
-            publicKeyToken="1fc8b3b9a1e18e3b"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+    version="1.0.0.0"
+    processorArchitecture="X86"
+    name="MIT.NetIDMgr.UI"
+    type="win32"
+/>
+<description>Khimaira Credentials Manager</description>
+<dependency>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.Windows.Common-Controls"
+            version="6.0.0.0"
+            processorArchitecture="X86"
+            publicKeyToken="6595b64144ccf1df"
+            language="*"
+        />
+    </dependentAssembly>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.VC80.DebugCRT"
+            version="8.0.50215.4652"
+            processorArchitecture="x86"
+            publicKeyToken="1fc8b3b9a1e18e3b"
+        />
+    </dependentAssembly>
+</dependency>
+</assembly>
index 84d91a339e08dae9ab5f6dd2adb35bbd82bd1538..d2ced7fd212a99f0b9c1ca9fc5b7e177e80017f9 100644 (file)
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="MIT.NetIDMgr.UI"\r
-    type="win32"\r
-/>\r
-<description>Khimaira Credentials Manager</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.VC80.DebugCRT"\r
-            version="8.0.50215.4652"\r
-            processorArchitecture="x86"\r
-            publicKeyToken="1fc8b3b9a1e18e3b"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+    version="1.0.0.0"
+    processorArchitecture="X86"
+    name="MIT.NetIDMgr.UI"
+    type="win32"
+/>
+<description>Khimaira Credentials Manager</description>
+<dependency>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.Windows.Common-Controls"
+            version="6.0.0.0"
+            processorArchitecture="X86"
+            publicKeyToken="6595b64144ccf1df"
+            language="*"
+        />
+    </dependentAssembly>
+    <dependentAssembly>
+        <assemblyIdentity
+            type="win32"
+            name="Microsoft.VC80.DebugCRT"
+            version="8.0.50215.4652"
+            processorArchitecture="x86"
+            publicKeyToken="1fc8b3b9a1e18e3b"
+        />
+    </dependentAssembly>
+</dependency>
+</assembly>
index 5686db52384b881dfcb525b578d38305d13f6ed9..92c0aa15a5287cd73e6aed9fff9b1f958960e1c5 100644 (file)
@@ -1,65 +1,65 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=uilib\r
-!include <../config/Makefile.w32>\r
-\r
-UIDLLOBJFILES=                 \\r
-       $(OBJ)\rescache.obj     \\r
-       $(OBJ)\action.obj       \\r
-       $(OBJ)\creddlg.obj      \\r
-       $(OBJ)\alert.obj        \\r
-       $(OBJ)\propsheet.obj    \\r
-       $(OBJ)\propwnd.obj      \\r
-       $(OBJ)\uilibmain.obj    \\r
-       $(OBJ)\actiondef.obj    \\r
-       $(OBJ)\acceldef.obj     \\r
-       $(OBJ)\configui.obj     \\r
-       $(OBJ)\trackerwnd.obj   \\r
-       $(OBJ)\uibind.obj       \\r
-       $(OBJ)\version.obj\r
-\r
-INCFILES=                      \\r
-       $(INCDIR)\khuidefs.h    \\r
-       $(INCDIR)\khrescache.h  \\r
-       $(INCDIR)\khaction.h    \\r
-       $(INCDIR)\khactiondef.h \\r
-       $(INCDIR)\khalerts.h    \\r
-       $(INCDIR)\khhtlink.h    \\r
-       $(INCDIR)\khnewcred.h   \\r
-       $(INCDIR)\khprops.h     \\r
-       $(INCDIR)\khconfigui.h  \\r
-       $(INCDIR)\khtracker.h   \\r
-       $(INCDIR)\khremote.h    \\r
-       $(INCDIR)\intaction.h   \\r
-       $(INCDIR)\intalert.h\r
-\r
-$(OBJ)\actiondef.c: actions.csv actiondef.cfg\r
-       $(CCSV) $** $@\r
-\r
-$(OBJ)\acceldef.c: accel.csv acceldef.cfg\r
-       $(CCSV) $** $@\r
-\r
-all: mkdirs $(INCFILES) $(UIDLLOBJFILES)\r
-\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=uilib
+!include <../config/Makefile.w32>
+
+UIDLLOBJFILES=                 \
+       $(OBJ)\rescache.obj     \
+       $(OBJ)\action.obj       \
+       $(OBJ)\creddlg.obj      \
+       $(OBJ)\alert.obj        \
+       $(OBJ)\propsheet.obj    \
+       $(OBJ)\propwnd.obj      \
+       $(OBJ)\uilibmain.obj    \
+       $(OBJ)\actiondef.obj    \
+       $(OBJ)\acceldef.obj     \
+       $(OBJ)\configui.obj     \
+       $(OBJ)\trackerwnd.obj   \
+       $(OBJ)\uibind.obj       \
+       $(OBJ)\version.obj
+
+INCFILES=                      \
+       $(INCDIR)\khuidefs.h    \
+       $(INCDIR)\khrescache.h  \
+       $(INCDIR)\khaction.h    \
+       $(INCDIR)\khactiondef.h \
+       $(INCDIR)\khalerts.h    \
+       $(INCDIR)\khhtlink.h    \
+       $(INCDIR)\khnewcred.h   \
+       $(INCDIR)\khprops.h     \
+       $(INCDIR)\khconfigui.h  \
+       $(INCDIR)\khtracker.h   \
+       $(INCDIR)\khremote.h    \
+       $(INCDIR)\intaction.h   \
+       $(INCDIR)\intalert.h
+
+$(OBJ)\actiondef.c: actions.csv actiondef.cfg
+       $(CCSV) $** $@
+
+$(OBJ)\acceldef.c: accel.csv acceldef.cfg
+       $(CCSV) $** $@
+
+all: mkdirs $(INCFILES) $(UIDLLOBJFILES)
+
index 2984eba61252ee085f836857de4d5ab91bef5a3d..d55bff0b76e58e36388146586d8376527ef83673 100644 (file)
@@ -1,26 +1,26 @@
-command,mod,key,scope\r
-KHUI_PACTION_MENU,FVIRTKEY,VK_F10,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_UP,FVIRTKEY,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_UP_EXTEND,FVIRTKEY|FSHIFT,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_UP_TOGGLE,FVIRTKEY|FCONTROL,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_PGUP,FVIRTKEY,VK_PRIOR,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_PGUP_EXTEND,FVIRTKEY|FSHIFT,VK_PRIOR,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_DOWN,FVIRTKEY,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_DOWN_EXTEND,FVIRTKEY|FSHIFT,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_DOWN_TOGGLE,FVIRTKEY|FCONTROL,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_PGDN,FVIRTKEY,VK_NEXT,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_PGDN_EXTEND,FVIRTKEY|FSHIFT,VK_NEXT,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_LEFT,FVIRTKEY,VK_LEFT,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_RIGHT,FVIRTKEY,VK_RIGHT,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_ENTER,FVIRTKEY,VK_RETURN,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_ESC,FVIRTKEY,VK_ESCAPE,KHUI_ACCEL_SCOPE_GLOBAL\r
-#KHUI_PACTION_DELETE,FVIRTKEY,VK_DELETE,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_DESTROY_CRED,FVIRTKEY,VK_DELETE,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_EXIT,FCONTROL|FVIRTKEY,\'X\',KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_VIEW_REFRESH,FVIRTKEY,VK_F5,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_NEW_CRED,FCONTROL|FVIRTKEY,\'N\',KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_RENEW_CRED,FCONTROL|FVIRTKEY,\'R\',KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_IMPORT,FCONTROL|FVIRTKEY,\'I\',KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_DESTROY_CRED,FCONTROL|FVIRTKEY,\'D\',KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_ACTION_LAYOUT_MINI,FVIRTKEY,VK_F7,KHUI_ACCEL_SCOPE_GLOBAL\r
-KHUI_PACTION_SELALL,FCONTROL|FVIRTKEY,\'A\',KHUI_ACCEL_SCOPE_GLOBAL\r
+command,mod,key,scope
+KHUI_PACTION_MENU,FVIRTKEY,VK_F10,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_UP,FVIRTKEY,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_UP_EXTEND,FVIRTKEY|FSHIFT,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_UP_TOGGLE,FVIRTKEY|FCONTROL,VK_UP,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_PGUP,FVIRTKEY,VK_PRIOR,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_PGUP_EXTEND,FVIRTKEY|FSHIFT,VK_PRIOR,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_DOWN,FVIRTKEY,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_DOWN_EXTEND,FVIRTKEY|FSHIFT,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_DOWN_TOGGLE,FVIRTKEY|FCONTROL,VK_DOWN,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_PGDN,FVIRTKEY,VK_NEXT,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_PGDN_EXTEND,FVIRTKEY|FSHIFT,VK_NEXT,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_LEFT,FVIRTKEY,VK_LEFT,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_RIGHT,FVIRTKEY,VK_RIGHT,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_ENTER,FVIRTKEY,VK_RETURN,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_ESC,FVIRTKEY,VK_ESCAPE,KHUI_ACCEL_SCOPE_GLOBAL
+#KHUI_PACTION_DELETE,FVIRTKEY,VK_DELETE,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_DESTROY_CRED,FVIRTKEY,VK_DELETE,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_EXIT,FCONTROL|FVIRTKEY,\'X\',KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_VIEW_REFRESH,FVIRTKEY,VK_F5,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_NEW_CRED,FCONTROL|FVIRTKEY,\'N\',KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_RENEW_CRED,FCONTROL|FVIRTKEY,\'R\',KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_IMPORT,FCONTROL|FVIRTKEY,\'I\',KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_DESTROY_CRED,FCONTROL|FVIRTKEY,\'D\',KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_ACTION_LAYOUT_MINI,FVIRTKEY,VK_F7,KHUI_ACCEL_SCOPE_GLOBAL
+KHUI_PACTION_SELALL,FCONTROL|FVIRTKEY,\'A\',KHUI_ACCEL_SCOPE_GLOBAL
index 3be4f2e46277ac57284bd3b114be93164c161acc..20bbeb581c140f3f9d9a78513cc87668e4753ea5 100644 (file)
@@ -1,51 +1,51 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation\r
-# files (the "Software"), to deal in the Software without\r
-# restriction, including without limitation the rights to use, copy,\r
-# modify, merge, publish, distribute, sublicense, and/or sell copies\r
-# of the Software, and to permit persons to whom the Software is\r
-# furnished to do so, subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-#\r
-\r
-$file_prefix = <<EOS;\r
-/*\r
-This file was autogenerated from src/ui/acceldef.cfg and src/ui/accel.csv.\r
-\r
-Do not modify directly.\r
-*/\r
-#define NOEXPORT\r
-#include<khuidefs.h>\r
-\r
-khui_accel_def khui_accel_global[] = {\r
-EOS\r
-\r
-$record_prefix = "{";\r
-\r
-$record_sep = ",\n";\r
-\r
-$record_postfix = "}";\r
-\r
-$file_postfix = <<EOS;\r
-\r
-};\r
-\r
-int khui_n_accel_global = sizeof(khui_accel_global) / sizeof(khui_accel_def);\r
-\r
-EOS\r
-\r
-$skip_lines = 1;\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, sublicense, and/or sell copies
+# of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+$file_prefix = <<EOS;
+/*
+This file was autogenerated from src/ui/acceldef.cfg and src/ui/accel.csv.
+
+Do not modify directly.
+*/
+#define NOEXPORT
+#include<khuidefs.h>
+
+khui_accel_def khui_accel_global[] = {
+EOS
+
+$record_prefix = "{";
+
+$record_sep = ",\n";
+
+$record_postfix = "}";
+
+$file_postfix = <<EOS;
+
+};
+
+int khui_n_accel_global = sizeof(khui_accel_global) / sizeof(khui_accel_def);
+
+EOS
+
+$skip_lines = 1;
index 561335257f0dcfc72232209674e4b737a049beae..4537c9849f88a1a38bff68665f6f501f9f76f6ec 100644 (file)
@@ -1,67 +1,67 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation\r
-# files (the "Software"), to deal in the Software without\r
-# restriction, including without limitation the rights to use, copy,\r
-# modify, merge, publish, distribute, sublicense, and/or sell copies\r
-# of the Software, and to permit persons to whom the Software is\r
-# furnished to do so, subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-#\r
-\r
-$file_prefix = <<EOS;\r
-/*\r
-This file was autogenerated from src/ui/actiondef.cfg and src/ui/actions.csv.\r
-\r
-Do not modify directly.\r
-*/\r
-\r
-#define NOEXPORT\r
-\r
-#include<khuidefs.h>\r
-#include<khhelp.h>\r
-#include<intaction.h>\r
-#include"../ui/resource.h"\r
-\r
-khui_action khui_actions [] = {\r
-EOS\r
-\r
-$record_prefix = "ACTION_FULL(";\r
-\r
-$record_sep = ",\n";\r
-\r
-$record_postfix = ")";\r
-\r
-$file_postfix = <<EOS;\r
-\r
-};\r
-\r
-int khui_n_actions = sizeof(khui_actions) / sizeof(khui_action);\r
-\r
-EOS\r
-\r
-$skip_lines = 1;\r
-\r
-sub rec_handler {\r
-    $arr = shift;\r
-    if($$arr[2] =~ /^$/) {\r
-       $$arr[2] = "NULL";\r
-    } else {\r
-       $$arr[2] = "L\"".$$arr[2]."\"";\r
-    }\r
-}\r
-\r
-$record_parser = \&rec_handler;\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, sublicense, and/or sell copies
+# of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+$file_prefix = <<EOS;
+/*
+This file was autogenerated from src/ui/actiondef.cfg and src/ui/actions.csv.
+
+Do not modify directly.
+*/
+
+#define NOEXPORT
+
+#include<khuidefs.h>
+#include<khhelp.h>
+#include<intaction.h>
+#include"../ui/resource.h"
+
+khui_action khui_actions [] = {
+EOS
+
+$record_prefix = "ACTION_FULL(";
+
+$record_sep = ",\n";
+
+$record_postfix = ")";
+
+$file_postfix = <<EOS;
+
+};
+
+int khui_n_actions = sizeof(khui_actions) / sizeof(khui_action);
+
+EOS
+
+$skip_lines = 1;
+
+sub rec_handler {
+    $arr = shift;
+    if($$arr[2] =~ /^$/) {
+       $$arr[2] = "NULL";
+    } else {
+       $$arr[2] = "L\"".$$arr[2]."\"";
+    }
+}
+
+$record_parser = \&rec_handler;
index 36a43dfdd991399d9abea76a77b22f0660eb2fe6..b3f6e1f2689e5862d582009d2462685d1817d9b9 100644 (file)
@@ -1,53 +1,53 @@
-Command,Type,Name,Img Normal,Img Hot,Img Disabled,Ico Normal,Ico Disabled,Caption,Tooltip,Topic,State\r
-KHUI_MENU_FILE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_FILE,0,IDH_MENU_FILE,0\r
-KHUI_MENU_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_CRED,0,IDH_MENU_CRED,0\r
-KHUI_MENU_VIEW,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_VIEW,0,IDH_MENU_VIEW,0\r
-KHUI_MENU_OPTIONS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_OPTIONS,0,IDH_MENU_OPTIONS,0\r
-KHUI_MENU_HELP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_HELP,0,IDH_MENU_HELP,0\r
-KHUI_MENU_LAYOUT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_LAYOUT,0,0,0\r
-KHUI_MENU_TOOLBARS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_TOOLBARS,0,0,0\r
-KHUI_MENU_COLUMNS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_CHOOSE_COLS,0,IDH_ACTION_CHOOSE_COLS,0\r
-KHUI_MENU_DESTROY_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_DESTROY_CRED,0,0,0\r
-KHUI_MENU_RENEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_RENEW_CRED,0,0,0\r
-KHUI_ACTION_PROPERTIES,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_PROPERTIES,IDS_ACTIONT_PROPERTIES,IDH_ACTION_PROPERTIES,0\r
-KHUI_ACTION_EXIT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_EXIT,IDS_ACTIONT_EXIT,IDH_ACTION_EXIT,0\r
-KHUI_ACTION_SET_DEF_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_SET_DEF_ID,IDS_ACTIONT_SET_DEF_ID,IDH_ACTION_SET_DEF_ID,0\r
-KHUI_ACTION_SET_SRCH_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_SET_SRCH_ID,0,IDH_ACTION_SET_SRCH_ID,KHUI_ACTIONSTATE_DISABLED\r
-KHUI_ACTION_PASSWD_ID,KHUI_ACTIONTYPE_TRIGGER,,IDB_CHPW,0,IDB_CHPW_DIS,IDB_CHPW_SM,IDB_CHPW_DIS_SM,IDS_ACTION_PASSWD_ID,IDS_ACTIONT_PASSWD_ID,IDH_ACTION_PASSWD_ID,0\r
-KHUI_ACTION_NEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_NEW,0,IDB_TK_NEW_DIS,IDB_TK_NEW_SM,IDB_TK_NEW_DIS_SM,IDS_ACTION_NEW_CRED,IDS_ACTIONT_NEW_CRED,IDH_ACTION_NEW_CRED,0\r
-KHUI_ACTION_RENEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_REFRESH,0,IDB_TK_REFRESH_DIS,IDB_TK_REFRESH_SM,IDB_TK_REFRESH_DIS_SM,IDS_ACTION_RENEW_CRED,IDS_ACTIONT_RENEW_CRED,0,0\r
-KHUI_ACTION_DESTROY_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_DELETE,0,IDB_TK_DELETE_DIS,IDB_TK_DELETE_SM,IDB_TK_DELETE_DIS_SM,IDS_ACTION_DESTROY_CRED,IDS_ACTIONT_DESTROY_CRED,0,0\r
-KHUI_ACTION_LAYOUT_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_ID,0,0,KHUI_ACTIONSTATE_CHECKED\r
-KHUI_ACTION_LAYOUT_TYPE,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_TYPE,0,0,0\r
-KHUI_ACTION_LAYOUT_LOC,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_LOC,0,0,0\r
-KHUI_ACTION_LAYOUT_CUST,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_CUST,0,0,0\r
-KHUI_ACTION_LAYOUT_MINI,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_MINI,0,0,0\r
-KHUI_ACTION_TB_STANDARD,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_TB_STANDARD,0,0,KHUI_ACTIONSTATE_CHECKED|KHUI_ACTIONSTATE_DISABLED\r
-KHUI_ACTION_DEBUG_WINDOW,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_DEBUG_WINDOW,0,IDH_ACTION_DEBUG_WINDOW,KHUI_ACTIONSTATE_DISABLED\r
-KHUI_ACTION_VIEW_REFRESH,KHUI_ACTIONTYPE_TRIGGER,,IDB_VW_REFRESH,0,0,IDB_VW_REFRESH_SM,0,IDS_ACTION_VIEW_REFRESH,IDS_ACTIONT_VIEW_REFRESH,IDH_ACTION_VIEW_REFRESH,0\r
-KHUI_ACTION_OPT_IDENTS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_IDENTS,IDS_ACTIONT_OPT_IDENTS,IDH_ACTION_OPT_INIT,0\r
-KHUI_ACTION_OPT_KHIM,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_KHIM,IDS_ACTIONT_OPT_KHIM,IDH_ACTION_OPT_KHIM,0\r
-KHUI_ACTION_OPT_NOTIF,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_NOTIF,IDS_ACTIONT_OPT_NOTIF,IDH_ACTION_OPT_NOTIF,0\r
-KHUI_ACTION_OPT_PLUGINS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_PLUGINS,IDS_ACTIONT_OPT_PLUGINS,IDH_ACTION_OPT_KHIM,0\r
-KHUI_ACTION_OPT_APPEAR,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_APPEAR,IDS_ACTIONT_OPT_APPEAR,0,0\r
-KHUI_ACTION_HELP_CTX,KHUI_ACTIONTYPE_TRIGGER,,IDB_HELP,0,0,IDB_HELP_SM,0,IDS_ACTION_HELP_CTX,IDS_ACTIONT_HELP_CTX,0,0\r
-KHUI_ACTION_HELP_CONTENTS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_CONTENTS,0,0,0\r
-KHUI_ACTION_HELP_INDEX,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_INDEX,0,0,0\r
-KHUI_ACTION_HELP_ABOUT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_ABOUT,0,0,0\r
-KHUI_ACTION_OPEN_APP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPEN_APP,0,0,0\r
-KHUI_ACTION_CLOSE_APP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_CLOSE_APP,0,0,0\r
-KHUI_ACTION_IMPORT,KHUI_ACTIONTYPE_TRIGGER,,IDB_IMPORT,0,IDB_IMPORT_DIS,IDB_IMPORT_SM,IDB_IMPORT_SM_DIS,IDS_ACTION_IMPORT,IDS_ACTIONT_IMPORT,0,0\r
-KHUI_ACTION_DESTROY_ALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_DESTROY_ALL,0,0,0\r
-KHUI_ACTION_RENEW_ALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_RENEW_ALL,0,0,0\r
-KHUI_PACTION_OK,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_OK,0,0,0\r
-KHUI_PACTION_CANCEL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_CANCEL,0,0,0\r
-KHUI_PACTION_CLOSE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_CLOSE,0,0,0\r
-KHUI_PACTION_BLANK,0,,IDB_TB_SPACE,0,IDB_TB_SPACE,IDB_TB_BLANK_SM,IDB_TB_BLANK_SM,0,0,0,KHUI_ACTIONSTATE_DISABLED\r
-KHUI_PACTION_NEXT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NEXT,0,0,0\r
-KHUI_PACTION_YES,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_YES,0,0,0\r
-KHUI_PACTION_NO,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NO,0,0,0\r
-KHUI_PACTION_YESALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_YESALL,0,0,0\r
-KHUI_PACTION_NOALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NOALL,0,0,0\r
-KHUI_PACTION_KEEP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_KEEP,0,0,0\r
-KHUI_PACTION_REMOVE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_REMOVE,0,0,0\r
-KHUI_PACTION_DISCARD,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_DISCARD,0,0,0\r
+Command,Type,Name,Img Normal,Img Hot,Img Disabled,Ico Normal,Ico Disabled,Caption,Tooltip,Topic,State
+KHUI_MENU_FILE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_FILE,0,IDH_MENU_FILE,0
+KHUI_MENU_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_CRED,0,IDH_MENU_CRED,0
+KHUI_MENU_VIEW,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_VIEW,0,IDH_MENU_VIEW,0
+KHUI_MENU_OPTIONS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_OPTIONS,0,IDH_MENU_OPTIONS,0
+KHUI_MENU_HELP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_HELP,0,IDH_MENU_HELP,0
+KHUI_MENU_LAYOUT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_LAYOUT,0,0,0
+KHUI_MENU_TOOLBARS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_TOOLBARS,0,0,0
+KHUI_MENU_COLUMNS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_CHOOSE_COLS,0,IDH_ACTION_CHOOSE_COLS,0
+KHUI_MENU_DESTROY_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_DESTROY_CRED,0,0,0
+KHUI_MENU_RENEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_MENU_RENEW_CRED,0,0,0
+KHUI_ACTION_PROPERTIES,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_PROPERTIES,IDS_ACTIONT_PROPERTIES,IDH_ACTION_PROPERTIES,0
+KHUI_ACTION_EXIT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_EXIT,IDS_ACTIONT_EXIT,IDH_ACTION_EXIT,0
+KHUI_ACTION_SET_DEF_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_SET_DEF_ID,IDS_ACTIONT_SET_DEF_ID,IDH_ACTION_SET_DEF_ID,0
+KHUI_ACTION_SET_SRCH_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_SET_SRCH_ID,0,IDH_ACTION_SET_SRCH_ID,KHUI_ACTIONSTATE_DISABLED
+KHUI_ACTION_PASSWD_ID,KHUI_ACTIONTYPE_TRIGGER,,IDB_CHPW,0,IDB_CHPW_DIS,IDB_CHPW_SM,IDB_CHPW_DIS_SM,IDS_ACTION_PASSWD_ID,IDS_ACTIONT_PASSWD_ID,IDH_ACTION_PASSWD_ID,0
+KHUI_ACTION_NEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_NEW,0,IDB_TK_NEW_DIS,IDB_TK_NEW_SM,IDB_TK_NEW_DIS_SM,IDS_ACTION_NEW_CRED,IDS_ACTIONT_NEW_CRED,IDH_ACTION_NEW_CRED,0
+KHUI_ACTION_RENEW_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_REFRESH,0,IDB_TK_REFRESH_DIS,IDB_TK_REFRESH_SM,IDB_TK_REFRESH_DIS_SM,IDS_ACTION_RENEW_CRED,IDS_ACTIONT_RENEW_CRED,0,0
+KHUI_ACTION_DESTROY_CRED,KHUI_ACTIONTYPE_TRIGGER,,IDB_TK_DELETE,0,IDB_TK_DELETE_DIS,IDB_TK_DELETE_SM,IDB_TK_DELETE_DIS_SM,IDS_ACTION_DESTROY_CRED,IDS_ACTIONT_DESTROY_CRED,0,0
+KHUI_ACTION_LAYOUT_ID,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_ID,0,0,KHUI_ACTIONSTATE_CHECKED
+KHUI_ACTION_LAYOUT_TYPE,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_TYPE,0,0,0
+KHUI_ACTION_LAYOUT_LOC,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_LOC,0,0,0
+KHUI_ACTION_LAYOUT_CUST,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_CUST,0,0,0
+KHUI_ACTION_LAYOUT_MINI,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_LAYOUT_MINI,0,0,0
+KHUI_ACTION_TB_STANDARD,KHUI_ACTIONTYPE_TRIGGER | KHUI_ACTIONTYPE_TOGGLE,,0,0,0,0,0,IDS_ACTION_TB_STANDARD,0,0,KHUI_ACTIONSTATE_CHECKED|KHUI_ACTIONSTATE_DISABLED
+KHUI_ACTION_DEBUG_WINDOW,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_DEBUG_WINDOW,0,IDH_ACTION_DEBUG_WINDOW,KHUI_ACTIONSTATE_DISABLED
+KHUI_ACTION_VIEW_REFRESH,KHUI_ACTIONTYPE_TRIGGER,,IDB_VW_REFRESH,0,0,IDB_VW_REFRESH_SM,0,IDS_ACTION_VIEW_REFRESH,IDS_ACTIONT_VIEW_REFRESH,IDH_ACTION_VIEW_REFRESH,0
+KHUI_ACTION_OPT_IDENTS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_IDENTS,IDS_ACTIONT_OPT_IDENTS,IDH_ACTION_OPT_INIT,0
+KHUI_ACTION_OPT_KHIM,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_KHIM,IDS_ACTIONT_OPT_KHIM,IDH_ACTION_OPT_KHIM,0
+KHUI_ACTION_OPT_NOTIF,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_NOTIF,IDS_ACTIONT_OPT_NOTIF,IDH_ACTION_OPT_NOTIF,0
+KHUI_ACTION_OPT_PLUGINS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_PLUGINS,IDS_ACTIONT_OPT_PLUGINS,IDH_ACTION_OPT_KHIM,0
+KHUI_ACTION_OPT_APPEAR,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPT_APPEAR,IDS_ACTIONT_OPT_APPEAR,0,0
+KHUI_ACTION_HELP_CTX,KHUI_ACTIONTYPE_TRIGGER,,IDB_HELP,0,0,IDB_HELP_SM,0,IDS_ACTION_HELP_CTX,IDS_ACTIONT_HELP_CTX,0,0
+KHUI_ACTION_HELP_CONTENTS,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_CONTENTS,0,0,0
+KHUI_ACTION_HELP_INDEX,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_INDEX,0,0,0
+KHUI_ACTION_HELP_ABOUT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_HELP_ABOUT,0,0,0
+KHUI_ACTION_OPEN_APP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_OPEN_APP,0,0,0
+KHUI_ACTION_CLOSE_APP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_CLOSE_APP,0,0,0
+KHUI_ACTION_IMPORT,KHUI_ACTIONTYPE_TRIGGER,,IDB_IMPORT,0,IDB_IMPORT_DIS,IDB_IMPORT_SM,IDB_IMPORT_SM_DIS,IDS_ACTION_IMPORT,IDS_ACTIONT_IMPORT,0,0
+KHUI_ACTION_DESTROY_ALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_DESTROY_ALL,0,0,0
+KHUI_ACTION_RENEW_ALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_ACTION_RENEW_ALL,0,0,0
+KHUI_PACTION_OK,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_OK,0,0,0
+KHUI_PACTION_CANCEL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_CANCEL,0,0,0
+KHUI_PACTION_CLOSE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_CLOSE,0,0,0
+KHUI_PACTION_BLANK,0,,IDB_TB_SPACE,0,IDB_TB_SPACE,IDB_TB_BLANK_SM,IDB_TB_BLANK_SM,0,0,0,KHUI_ACTIONSTATE_DISABLED
+KHUI_PACTION_NEXT,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NEXT,0,0,0
+KHUI_PACTION_YES,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_YES,0,0,0
+KHUI_PACTION_NO,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NO,0,0,0
+KHUI_PACTION_YESALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_YESALL,0,0,0
+KHUI_PACTION_NOALL,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_NOALL,0,0,0
+KHUI_PACTION_KEEP,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_KEEP,0,0,0
+KHUI_PACTION_REMOVE,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_REMOVE,0,0,0
+KHUI_PACTION_DISCARD,KHUI_ACTIONTYPE_TRIGGER,,0,0,0,0,0,IDS_PACTION_DISCARD,0,0,0
index 97aff0e6dafbd209c496cc9dc579a1e4b5a4f5a4..6b13f8e5dc667a681f00e28dbc29c0c0c4942dfd 100644 (file)
@@ -1,48 +1,48 @@
-#\r
-# Copyright (c) 2004 Massachusetts Institute of Technology\r
-#\r
-# Permission is hereby granted, free of charge, to any person\r
-# obtaining a copy of this software and associated documentation files\r
-# (the "Software"), to deal in the Software without restriction,\r
-# including without limitation the rights to use, copy, modify, merge,\r
-# publish, distribute, sublicense, and/or sell copies of the Software,\r
-# and to permit persons to whom the Software is furnished to do so,\r
-# subject to the following conditions:\r
-#\r
-# The above copyright notice and this permission notice shall be\r
-# included in all copies or substantial portions of the Software.\r
-#\r
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
-# SOFTWARE.\r
-\r
-\r
-MODULE=util\r
-!include <../config/Makefile.w32>\r
-\r
-INCFILES= \\r
-       $(INCDIR)\utils.h       \\r
-       $(INCDIR)\hashtable.h   \\r
-       $(INCDIR)\mstring.h     \\r
-       $(INCDIR)\sync.h        \\r
-       $(INCDIR)\perfstat.h\r
-\r
-OBJFILES= \\r
-       $(OBJ)\hashtable.obj    \\r
-       $(OBJ)\mstring.obj      \\r
-       $(OBJ)\sync.obj         \\r
-       $(OBJ)\perfstat.obj\r
-\r
-LIBFILES=\r
-\r
-SDKLIBFILES= \r
-\r
-all: mkdirs $(INCFILES) $(OBJFILES)\r
-\r
-clean::\r
+#
+# Copyright (c) 2004 Massachusetts Institute of Technology
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+MODULE=util
+!include <../config/Makefile.w32>
+
+INCFILES= \
+       $(INCDIR)\utils.h       \
+       $(INCDIR)\hashtable.h   \
+       $(INCDIR)\mstring.h     \
+       $(INCDIR)\sync.h        \
+       $(INCDIR)\perfstat.h
+
+OBJFILES= \
+       $(OBJ)\hashtable.obj    \
+       $(OBJ)\mstring.obj      \
+       $(OBJ)\sync.obj         \
+       $(OBJ)\perfstat.obj
+
+LIBFILES=
+
+SDKLIBFILES= 
+
+all: mkdirs $(INCFILES) $(OBJFILES)
+
+clean::
        if exist '..\obj' $(RM) $(INCFILES)
\ No newline at end of file
index acf77c0b5685235242a168e1c43d827d2bf6d0e2..01bd2998607ec2bb12d4c9f0ec0f24bdb3144dba 100644 (file)
@@ -1,8 +1,8 @@
-!define KFW_TARGETDIR %BUILDDIR%\target\r
-!define KFW_EXTRADIR "%BUILDDIR%\target"\r
-!define KFW_VERSION %VERSION_MAJOR%.%VERSION_MINOR%\r
-!define KFW_MAJORVERSION %VERSION_MAJOR%\r
-!define KFW_MINORVERSION %VERSION_MINOR%\r
-!define KFW_PATCHLEVEL %VERSION_PATCH%\r
-!define CL_1310\r
-\r
+!define KFW_TARGETDIR %BUILDDIR%\target
+!define KFW_EXTRADIR "%BUILDDIR%\target"
+!define KFW_VERSION %VERSION_MAJOR%.%VERSION_MINOR%
+!define KFW_MAJORVERSION %VERSION_MAJOR%
+!define KFW_MINORVERSION %VERSION_MINOR%
+!define KFW_PATCHLEVEL %VERSION_PATCH%
+!define CL_1310
+
index 26ad54169290f4efbaccb8356d5199d75bb7a58e..614a27af90cf48cd04e7c1cdaf9ae69ff9ddcbc8 100644 (file)
@@ -1,13 +1,13 @@
-!define KFW_TARGETDIR %TARGETDIR%\r
-!define KFW_CONFIG_DIR %CONFIGDIR-NSI%\r
-!define KFW_MAJORVERSION %VERSION_MAJOR%\r
-!define KFW_MINORVERSION %VERSION_MINOR%\r
-!define KFW_PATCHLEVEL %VERSION_PATCH%\r
-!define CL_1310\r
-\r
-!define RELEASE\r
-!define NOT_DEBUG\r
-!define BETA 1\r
-!define SAMPLE_CONFIG_REALM "ATHENA.MIT.EDU"\r
-!define HTTP_CONFIG_URL     "[Obtain a URL from your Kerberos administrator]"\r
-\r
+!define KFW_TARGETDIR %TARGETDIR%
+!define KFW_CONFIG_DIR %CONFIGDIR-NSI%
+!define KFW_MAJORVERSION %VERSION_MAJOR%
+!define KFW_MINORVERSION %VERSION_MINOR%
+!define KFW_PATCHLEVEL %VERSION_PATCH%
+!define CL_1310
+
+!define RELEASE
+!define NOT_DEBUG
+!define BETA 1
+!define SAMPLE_CONFIG_REALM "ATHENA.MIT.EDU"
+!define HTTP_CONFIG_URL     "[Obtain a URL from your Kerberos administrator]"
+
index b28c08026796d26987774019dd9f1033cdd31ac3..dd7b0b6ea147641efc9a8b5aa4a6af846503ef6e 100644 (file)
-{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}\r
-{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20 Copyright Notice and Legal Administrivia\par\r
-----------------------------------------\par\r
-\par\r
-Copyright (C) 1985-2005 by the Massachusetts Institute of Technology.\par\r
-\par\r
-All rights reserved.\par\r
-\par\r
-Export of this software from the United States of America may require a specific license from the United States Government.  It is the responsibility of any person or organization contemplating export to obtain such a license before exporting.\par\r
-\par\r
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and\par\r
-this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.  Furthermore if you modify this software you must label your software as modified software and not distribute it in such a fashion that it might be confused with the original MIT software. M.I.T. makes no representations about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty.\par\r
-\par\r
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.\par\r
-\par\r
-Individual source code files are copyright MIT, Cygnus Support, OpenVision, Oracle, Sun Soft, FundsXpress, and others.\par\r
-\par\r
-Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, and Zephyr are trademarks of the Massachusetts Institute of Technology (MIT).  No commercial use of these trademarks may be made without prior written permission of MIT.\par\r
-\par\r
-"Commercial use" means use of a name in a product or other for-profit manner.  It does NOT prevent a commercial firm from referring to the MIT trademarks in order to convey information (although in doing so, recognition of their trademark status should be given).\par\r
-\par\r
-----\par\r
-\par\r
-The following copyright and permission notice applies to the OpenVision Kerberos Administration system located in kadmin/create, kadmin/dbutil, kadmin/passwd, kadmin/server, lib/kadm5, and portions of lib/rpc:\par\r
-\par\r
-Copyright, OpenVision Technologies, Inc., 1996, All Rights Reserved\par\r
-\par\r
-WARNING: Retrieving the OpenVision Kerberos Administration system source code, as described below, indicates your acceptance of the following terms.  If you do not agree to the following terms, do not retrieve the OpenVision Kerberos administration system.\par\r
-\par\r
-You may freely use and distribute the Source Code and Object Code compiled from it, with or without modification, but this Source Code is provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER EXPRESS OR IMPLIED.  IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY FOR ANY LOST PROFITS, LOSS OF DATA OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, INCLUDING, WITHOUT LIMITATION, THOSE RESULTING FROM THE USE OF THE SOURCE CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR ANY OTHER REASON.\par\r
-\par\r
-OpenVision retains all copyrights in the donated Source Code. OpenVision also retains copyright to derivative works of the Source Code, whether created by OpenVision or by a third party. The OpenVision copyright notice must be preserved if derivative works are made based on the donated Source Code.\par\r
-\par\r
-OpenVision Technologies, Inc. has donated this Kerberos Administration system to MIT for inclusion in the standard Kerberos 5 distribution.  This donation underscores our commitment to continuing Kerberos technology development and our gratitude for the valuable work which has been performed by MIT and the Kerberos community.\par\r
-\par\r
-----\par\r
-\par\r
-Portions contributed by Matt Crawford <crawdad@fnal.gov> were work performed at Fermi National Accelerator Laboratory, which is operated by Universities Research Association, Inc., under contract DE-AC02-76CHO3000 with the U.S. Department of Energy.\par\r
-\par\r
-\pard ----\f1\fs24\par\r
-\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20\par\r
-The implementation of the Yarrow pseudo-random number generator in src/lib/crypto/yarrow has the following copyright:\par\r
-\par\r
-Copyright 2000 by Zero-Knowledge Systems, Inc.\par\r
-\par\r
-Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Zero-Knowledge Systems, Inc. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.  Zero-Knowledge Systems, Inc. makes no representations about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty.\par\r
-\par\r
-ZERO-KNOWLEDGE SYSTEMS, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ZERO-KNOWLEDGE SYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\par\r
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\par\r
-\par\r
-\pard ----\f1\fs24\par\r
-\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20\par\r
-The implementation of the AES encryption algorithm in src/lib/crypto/aes has the following copyright:\par\r
-\par\r
-Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK.\par\r
-All rights reserved.\par\r
-\par\r
-LICENSE TERMS\par\r
-\par\r
-The free distribution and use of this software in both source and binary form is allowed (with or without changes) provided that:\par\r
-\par\r
-1. distributions of this source code include the above copyright notice, this list of conditions and the following disclaimer;\par\r
-\par\r
-2. distributions in binary form include the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other associated materials;\par\r
-\par\r
-3. the copyright holder's name is not used to endorse products built using this software without specific written permission. \par\r
-\par\r
-DISCLAIMER\par\r
-\par\r
-This software is provided 'as is' with no explcit or implied warranties in respect of any properties, including, but not limited to, correctness and fitness for purpose.\par\r
-\par\r
-\par\r
-\par\r
-Acknowledgements\par\r
-----------------\par\r
-\par\r
-Appreciation Time!!!!  There are far too many people to try to thank them all; many people have contributed to the development of Kerberos V5.  This is only a partial listing....\par\r
-\par\r
-Thanks to Paul Vixie and the Internet Software Consortium for funding the work of Barry Jaspan.  This funding was invaluable for the OV administration server integration, as well as the 1.0 release preparation process.\par\r
-\par\r
-Thanks to John Linn, Scott Foote, and all of the folks at OpenVision Technologies, Inc., who donated their administration server for use in the MIT release of Kerberos.\par\r
-\par\r
-Thanks to Jeff Bigler, Mark Eichin, Marc Horowitz, Nancy Gilman, Ken Raeburn, and all of the folks at Cygnus Support, who provided innumerable bug fixes and portability enhancements to the Kerberos V5 tree.  Thanks especially to Jeff Bigler, for the new user and system administrator's documentation.\par\r
-\par\r
-Thanks to Doug Engert from ANL for providing many bug fixes, as well as testing to ensure DCE interoperability.\par\r
-\par\r
-Thanks to Ken Hornstein at NRL for providing many bug fixes and suggestions, and for working on SAM preauthentication.\par\r
-\par\r
-Thanks to Matt Crawford at FNAL for bugfixes and enhancements.\par\r
-\par\r
-Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for their many suggestions and bug fixes.\par\r
-\par\r
-Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and providing patches for numerous buffer overruns.\par\r
-\par\r
-Thanks to Christopher Thompson and Marcus Watts for discovering the ftpd security bug.\par\r
-\par\r
-Thanks to Paul Nelson of Thursby Software Systems for implementing the Microsoft set password protocol.\par\r
-\par\r
-Thanks to the members of the Kerberos V5 development team at MIT, both past and present: Danilo Almeida, Jeffrey Altman, Jay Berkenbilt, Richard Basch, Mitch Berger, John Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav Jurisic, Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott McGuire, Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Jen Selby, Brad Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.\par\r
-\pard\nowidctlpar\f1\fs24\par\r
-}\r
+{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\froman\fprq2\fcharset0 Times New Roman;}}
+{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20 Copyright Notice and Legal Administrivia\par
+----------------------------------------\par
+\par
+Copyright (C) 1985-2005 by the Massachusetts Institute of Technology.\par
+\par
+All rights reserved.\par
+\par
+Export of this software from the United States of America may require a specific license from the United States Government.  It is the responsibility of any person or organization contemplating export to obtain such a license before exporting.\par
+\par
+WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and\par
+this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.  Furthermore if you modify this software you must label your software as modified software and not distribute it in such a fashion that it might be confused with the original MIT software. M.I.T. makes no representations about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty.\par
+\par
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.\par
+\par
+Individual source code files are copyright MIT, Cygnus Support, OpenVision, Oracle, Sun Soft, FundsXpress, and others.\par
+\par
+Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, and Zephyr are trademarks of the Massachusetts Institute of Technology (MIT).  No commercial use of these trademarks may be made without prior written permission of MIT.\par
+\par
+"Commercial use" means use of a name in a product or other for-profit manner.  It does NOT prevent a commercial firm from referring to the MIT trademarks in order to convey information (although in doing so, recognition of their trademark status should be given).\par
+\par
+----\par
+\par
+The following copyright and permission notice applies to the OpenVision Kerberos Administration system located in kadmin/create, kadmin/dbutil, kadmin/passwd, kadmin/server, lib/kadm5, and portions of lib/rpc:\par
+\par
+Copyright, OpenVision Technologies, Inc., 1996, All Rights Reserved\par
+\par
+WARNING: Retrieving the OpenVision Kerberos Administration system source code, as described below, indicates your acceptance of the following terms.  If you do not agree to the following terms, do not retrieve the OpenVision Kerberos administration system.\par
+\par
+You may freely use and distribute the Source Code and Object Code compiled from it, with or without modification, but this Source Code is provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER EXPRESS OR IMPLIED.  IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY FOR ANY LOST PROFITS, LOSS OF DATA OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, INCLUDING, WITHOUT LIMITATION, THOSE RESULTING FROM THE USE OF THE SOURCE CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR ANY OTHER REASON.\par
+\par
+OpenVision retains all copyrights in the donated Source Code. OpenVision also retains copyright to derivative works of the Source Code, whether created by OpenVision or by a third party. The OpenVision copyright notice must be preserved if derivative works are made based on the donated Source Code.\par
+\par
+OpenVision Technologies, Inc. has donated this Kerberos Administration system to MIT for inclusion in the standard Kerberos 5 distribution.  This donation underscores our commitment to continuing Kerberos technology development and our gratitude for the valuable work which has been performed by MIT and the Kerberos community.\par
+\par
+----\par
+\par
+Portions contributed by Matt Crawford <crawdad@fnal.gov> were work performed at Fermi National Accelerator Laboratory, which is operated by Universities Research Association, Inc., under contract DE-AC02-76CHO3000 with the U.S. Department of Energy.\par
+\par
+\pard ----\f1\fs24\par
+\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20\par
+The implementation of the Yarrow pseudo-random number generator in src/lib/crypto/yarrow has the following copyright:\par
+\par
+Copyright 2000 by Zero-Knowledge Systems, Inc.\par
+\par
+Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Zero-Knowledge Systems, Inc. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.  Zero-Knowledge Systems, Inc. makes no representations about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty.\par
+\par
+ZERO-KNOWLEDGE SYSTEMS, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ZERO-KNOWLEDGE SYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\par
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\par
+\par
+\pard ----\f1\fs24\par
+\pard\nowidctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\f0\fs20\par
+The implementation of the AES encryption algorithm in src/lib/crypto/aes has the following copyright:\par
+\par
+Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK.\par
+All rights reserved.\par
+\par
+LICENSE TERMS\par
+\par
+The free distribution and use of this software in both source and binary form is allowed (with or without changes) provided that:\par
+\par
+1. distributions of this source code include the above copyright notice, this list of conditions and the following disclaimer;\par
+\par
+2. distributions in binary form include the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other associated materials;\par
+\par
+3. the copyright holder's name is not used to endorse products built using this software without specific written permission. \par
+\par
+DISCLAIMER\par
+\par
+This software is provided 'as is' with no explcit or implied warranties in respect of any properties, including, but not limited to, correctness and fitness for purpose.\par
+\par
+\par
+\par
+Acknowledgements\par
+----------------\par
+\par
+Appreciation Time!!!!  There are far too many people to try to thank them all; many people have contributed to the development of Kerberos V5.  This is only a partial listing....\par
+\par
+Thanks to Paul Vixie and the Internet Software Consortium for funding the work of Barry Jaspan.  This funding was invaluable for the OV administration server integration, as well as the 1.0 release preparation process.\par
+\par
+Thanks to John Linn, Scott Foote, and all of the folks at OpenVision Technologies, Inc., who donated their administration server for use in the MIT release of Kerberos.\par
+\par
+Thanks to Jeff Bigler, Mark Eichin, Marc Horowitz, Nancy Gilman, Ken Raeburn, and all of the folks at Cygnus Support, who provided innumerable bug fixes and portability enhancements to the Kerberos V5 tree.  Thanks especially to Jeff Bigler, for the new user and system administrator's documentation.\par
+\par
+Thanks to Doug Engert from ANL for providing many bug fixes, as well as testing to ensure DCE interoperability.\par
+\par
+Thanks to Ken Hornstein at NRL for providing many bug fixes and suggestions, and for working on SAM preauthentication.\par
+\par
+Thanks to Matt Crawford at FNAL for bugfixes and enhancements.\par
+\par
+Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for their many suggestions and bug fixes.\par
+\par
+Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and providing patches for numerous buffer overruns.\par
+\par
+Thanks to Christopher Thompson and Marcus Watts for discovering the ftpd security bug.\par
+\par
+Thanks to Paul Nelson of Thursby Software Systems for implementing the Microsoft set password protocol.\par
+\par
+Thanks to the members of the Kerberos V5 development team at MIT, both past and present: Danilo Almeida, Jeffrey Altman, Jay Berkenbilt, Richard Basch, Mitch Berger, John Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav Jurisic, Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott McGuire, Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Jen Selby, Brad Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.\par
+\pard\nowidctlpar\f1\fs24\par
+}
 \0
\ No newline at end of file
index 3c7e7bacbca12864f1d229c72421b0c98dab0c2a..93f173348562f21efcc90e0d81e22e78477a9857 100644 (file)
-<?xml version="1.0"?>\r
-<Include>\r
-<!-- Platform specific GUID's and other definitions -->\r
-<?if $(var.Platform) = "x64" ?>\r
-        <?define UpgradeCode="6DA9CD86-6028-4852-8C94-452CAC229244"?>\r
-        <?define cmf_kfwlogon_DLL_guid="CFC0B7C9-9A59-4022-89B3-25E0941D0369"?>\r
-        <?define cmf_kfwcpcc_EXE_guid="83F51B6D-F3C6-44cf-AC91-D1D6498FFA44"?>\r
-        <?define cmp_ClientSystemDebug_guid="7B25B1E0-A22A-43c7-BA97-C30FCA3B1230"?>\r
-        <?define rcm_krb4_1_guid="B3CF770A-2C0F-44c0-8F5B-7B808369D225"?>\r
-        <?define rcm_krb4_2_guid="0CF5732A-7659-4cf9-8D01-7E75E6DA2639"?>                                        \r
-        <?define rcm_krb4_3_guid="6A279F11-E441-49cb-80F0-3D807D7230DE"?>\r
-        <?define rcm_krb4_4_guid="CACB3731-C532-4d28-9E44-FFF35C1376D5"?>\r
-        <?define rcm_krb5_1_guid="21883AD6-1C00-4f1d-9922-477CF63CE6BF"?>\r
-        <?define rcm_krb5_2_guid="88CEA446-4617-46bc-916F-2AAA1E1EACF8"?>\r
-        <?define rcm_krb5_3_guid="28BFF4DB-D09E-4031-AB5D-232F6F707A45"?>\r
-        <?define cmf_comerr32_dll_guid="3C34EFDA-3F93-4aa6-AA44-718AA25DD346"?>\r
-        <?define cmf_comerr32_dll_name="comerr64.dll"?>\r
-        <?define cmf_gss_exe_guid="805EBB97-4860-40d4-A038-5E56717EAFB4"?>\r
-        <?define cmf_gss_client_exe_guid="5F192562-436C-4800-93C7-148F7D46F521"?>\r
-        <?define cmf_gss_server_exe_guid="33651319-01CB-4f2c-9B96-50F0F53E9CDF"?>\r
-        <?define cmf_gssapi32_dll_guid="ACD1D3FA-3E96-47a6-8A39-88BDA2EA3C9D"?>\r
-        <?define cmf_gssapi32_dll_name="gssapi64.dll"?>\r
-        <?define cmf_k524init_exe_guid="63630B70-D9B1-47bc-905D-E4DFA6F9D0D1"?>\r
-        <?define cmf_kclnt32_dll_guid="C26B3CAA-607C-42db-956C-9AA379CCE892"?>\r
-        <?define cmf_kclnt32_dll_name="kclnt64.dll"?>\r
-        <?define cmf_kdestroy_exe_guid="58AB2858-3513-4e4d-B76C-915B0D0DEE82"?>\r
-        <?define cmf_kcpytkt_exe_guid="B2BA9697-4E42-433d-BA85-79A49A622D84"?>\r
-        <?define cmf_kdeltkt_exe_guid="998BF60D-75EF-4807-BDA3-7DDE47C4F00F"?>\r
-        <?define cmf_kinit_exe_guid="6855B2B9-D3EB-42ce-B0EA-EFCD5960B635"?>\r
-        <?define cmf_klist_exe_guid="1AE98193-6596-4460-9B42-15C734E28CE8"?>\r
-        <?define cmf_kpasswd_exe_guid="669A2965-413F-4003-9F43-4615CC7C3B1A"?>\r
-        <?define cmf_kvno_exe_guid="56C95EBA-2A53-4567-AA44-9A0EE01BB390"?>\r
-        <?define cmf_krb5_32_dll_guid="8B7190D6-76BD-442b-893B-1EED4E26EC0A"?>\r
-        <?define cmf_krb5_32_dll_name="krb5_64.dll"?>\r
-        <?define cmf_k5sprt32_dll_guid="2DD8CE7D-8C8E-4cfb-BC73-765858DD1418"?>\r
-        <?define cmf_k5sprt32_dll_name="k5sprt64.dll"?>\r
-        <?define cmf_krb524_dll_guid="4FAFB2A6-FC42-466b-9A86-42C3150252E2"?>\r
-        <?define cmf_krb524_dll_name="krb524.dll"?>\r
-        <?define cmf_krbcc32_dll_guid="56DAD1B9-4A59-46e6-81CA-54E2B6C9D618"?>\r
-        <?define cmf_krbcc32_dll_name="krbcc64.dll"?>\r
-        <?define cmf_krbcc32s_exe_guid="0192F58B-9129-426d-A271-E18455EDC80E"?>\r
-        <?define cmf_krbcc32s_exe_name="krbcc64s.exe"?>\r
-        <?define cmf_krbv4w32_dll_guid="D195FADB-A3B0-4023-A824-8895552CDC56"?>\r
-        <?define cmf_krbv4w32_dll_name="krbv4w64.dll"?>\r
-        <?define cmf_leash32_exe_guid="D195FADB-A3B0-4023-A824-8895552CDC56"?>\r
-        <?define csc_leash32_exe_guid="9D43350A-A8AE-4405-AB82-64E90E5A1A70"?>\r
-        <?define rcm_leash_1_guid="7E5517FF-FB76-431f-A92B-2895C9BE7E98"?>\r
-        <?define rcm_leash_2_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>\r
-        <?define rcm_leash_3_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>\r
-        <?define rcm_leash_4_guid="D20180CC-B68D-4a6d-95E4-5EB07B9EADCD"?>\r
-        <?define rcm_leash_5_guid="AF3B73AE-86ED-42f5-987A-9831B8799D2F"?>\r
-        <?define rcm_leash_6_guid="0C72D4F8-096B-4295-8F0A-6B5723A8593D"?>\r
-        <?define csc_LeashStartup_guid="228192C5-D847-4c46-A726-0E8211742349"?>\r
-        <?define cmf_leash32_hlp_guid="228192C5-D847-4c46-A726-0E8211742349"?>\r
-        <?define cmf_leash32_chm_guid="769B54EB-9B96-4abe-9B72-9EF346C8C03D"?>\r
-        <?define cmf_leashw32_dll_guid="7222B9E1-EE70-4ccb-929F-43D45574AA83"?>\r
-        <?define cmf_leashw32_dll_name="leashw64.dll"?>\r
-        <?define rcm_leashdll_1_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>\r
-        <?define rcm_leashdll_2_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>\r
-        <?define rcm_leashdll_3_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>\r
-        <?define rcm_leashdll_4_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>\r
-        <?define rcm_leashdll_5_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>\r
-        <?define rcm_leashdll_6_guid="AC35CE64-9D8D-4a21-AB1F-18803C69E7B4"?>\r
-        <?define rcm_leashdll_7_guid="02014C27-BAC8-4b86-95F8-43F9BF55064A"?>\r
-        <?define rcm_leashdll_8_guid="DE70F57C-D3F8-4c1d-B868-A77DA04D9DD3"?>\r
-        <?define rcm_leashdll_9_guid="A809042D-66F3-4a6a-B8EC-77C40C88F3E3"?>\r
-        <?define rcm_leashdll_10_guid="E61875A4-F33C-419f-97B8-D2ACA3EBD4BB"?>\r
-        <?define rcm_leashdll_11_guid="3732992E-34C4-430a-B081-C8601BA44A61"?>\r
-        <?define rcm_leashdll_12_guid="2237072A-1955-4ca4-ABB3-78037E16F696"?>\r
-        <?define rcm_leashdll_13_guid="6F626DB7-B0A6-4c1d-889E-A2DA742DFC4B"?>\r
-        <?define rcm_leashdll_14_guid="109674B4-7390-49cc-9DB1-B9402E4C5645"?>\r
-        <?define rcm_leashdll_15_guid="8AC8500D-2279-4a3c-82E9-4C0ED79A6EFC"?>\r
-        <?define rcm_leashdll_16_guid="ED6BD7FE-7879-4da6-882D-98DEF6198F60"?>\r
-        <?define rcm_leashdll_17_guid="E5F8A4DF-442E-4d24-B5E2-9F36A4F7E15D"?>\r
-        <?define cmf_ms2mit_exe_guid="8AEC1FDA-4A45-4878-8C0B-465D46ACE306"?>\r
-        <?define cmf_mit2ms_exe_guid="3CE7BAE8-22DA-4911-B370-4C700861BDFD"?>\r
-        <?define cmf_wshelp32_dll_guid="24648FE7-D952-499c-8023-AFE4C7E52296"?>\r
-        <?define cmf_wshelp32_dll_name="wshelp64.dll"?>\r
-        <?define cmf_xpprof32_dll_guid="B1112677-50A4-4430-846B-F824C859E3DF"?>\r
-        <?define cmf_xpprof32_dll_name="xpprof64.dll"?>\r
-        <?define cmf_nidmgr32_dll_guid="8538212A-9BD5-4d62-BF29-36D853385F0A"?>\r
-        <?define cmf_nidmgr32_dll_name="nidmgr64.dll"?>\r
-        <?define cmf_nidmgr32_dll_w2k_guid="01655D48-C596-48f8-A0C3-5DB3FC833444"?>\r
-        <?define cmf_krb5cred_dll_guid="CC182AB1-E333-4501-8DEA-5A8D4FD36D0D"?>\r
-        <?define cmf_krb5cred_dll_name="krb5cred.dll"?>\r
-        <?define cmf_krb5cred_en_us_dll_guid="223B7E9D-290F-40b8-89B3-F8337A8E082D"?>\r
-        <?define cmf_krb5cred_en_us_dll_name="krb5cred_en_us.dll"?>\r
-        <?define cmf_krb4cred_dll_guid="AF3DB848-786B-4e0b-9D8F-F9074D0631F2"?>\r
-        <?define cmf_krb4cred_dll_name="krb4cred.dll"?>\r
-        <?define cmf_krb4cred_en_us_dll_guid="4D180CEF-59CD-4c39-872C-F84F58008107"?>\r
-        <?define cmf_krb4cred_en_us_dll_name="krb4cred_en_us.dll"?>\r
-        <?define cmf_netidmgr_exe_guid="487545C9-F145-4fb9-8610-5652A6C3FE48"?>\r
-        <?define cmf_netidmgr_exe_w2k_guid="F9D3A2A1-8BAE-41ff-BB50-2E6923D3368B"?>\r
-        <?define csc_NetIDMgrStartup_guid="7081976D-E9D5-424a-9564-917E0529E4D0"?>\r
-        <?define cmf_bin_debug_guid="F3432C85-89D9-4bd6-BD82-4ED49A118338"?>\r
-<?elseif $(var.Platform) = "Intel"?>\r
-        <?define UpgradeCode="61211594-AAA1-4A98-A299-757326763CC7"?>\r
-        <?define cmf_kfwlogon_DLL_guid="2F104FEB-2D61-458A-BAE3-B153F151E728"?>\r
-        <?define cmf_kfwcpcc_EXE_guid="C3284E7A-3665-45A6-B64E-C909B1D1BAA6"?>\r
-        <?define cmp_ClientSystemDebug_guid="2D13ED48-53C2-4878-B196-2AD7F4100998"?>\r
-        <?define rcm_krb4_1_guid="34262966-9196-49D6-86C9-AE98D3116DC0"?>\r
-        <?define rcm_krb4_2_guid="812334C6-EBDF-482C-8CB3-A6398AF9EDFC"?>                                        \r
-        <?define rcm_krb4_3_guid="5556ECD9-8721-41C2-846C-034C239B48F1"?>\r
-        <?define rcm_krb4_4_guid="61371A93-7F59-439D-A89C-070E100F465B"?>\r
-        <?define rcm_krb5_1_guid="E190F8B9-51FA-4FB1-884C-C8AFA37F8653"?>\r
-        <?define rcm_krb5_2_guid="AE7D4305-6193-4094-8C82-73862AE01DCE"?>\r
-        <?define rcm_krb5_3_guid="853EE035-99AA-489A-8FB6-74C76624E92A"?>\r
-        <?define cmf_comerr32_dll_guid="D8F455F9-E648-4C61-A69D-7116ADEC2DBB"?>\r
-        <?define cmf_comerr32_dll_name="comerr32.dll"?>\r
-        <?define cmf_gss_exe_guid="8CAF09C4-68A2-46DC-A618-AEF16D832E54"?>\r
-        <?define cmf_gss_client_exe_guid="983E0887-0C8B-49AB-8F59-DFE3A4E45E89"?>\r
-        <?define cmf_gss_server_exe_guid="B165FE41-D0DD-4DFC-92E6-A99ADA23BE8B"?>\r
-        <?define cmf_gssapi32_dll_guid="5B0F2989-BB85-40BF-BB7A-E77693972CF9"?>\r
-        <?define cmf_gssapi32_dll_name="gssapi32.dll"?>\r
-        <?define cmf_k524init_exe_guid="20BE4EA5-C465-4AF3-9A4F-BB80934167E3"?>\r
-        <?define cmf_kclnt32_dll_guid="D396C1E7-080E-49F5-92BA-73BCEDF09C8E"?>\r
-        <?define cmf_kclnt32_dll_name="kclnt32.dll"?>\r
-        <?define cmf_kdestroy_exe_guid="D1E9C111-7760-4EE6-86CF-D4B4064B0ABA"?>\r
-        <?define cmf_kcpytkt_exe_guid="6B20E57C-0033-4dcf-B3C9-74ED0B2CF46E"?>\r
-        <?define cmf_kdeltkt_exe_guid="C7528C87-9B61-439a-8EA8-AD4BE3D758F9"?>\r
-        <?define cmf_kinit_exe_guid="80643A09-EF28-4714-BC62-B64FC5B17CAA"?>\r
-        <?define cmf_klist_exe_guid="24FB6003-BC7A-4BF1-9503-82D398EC02D7"?>\r
-        <?define cmf_kpasswd_exe_guid="3FA4AB96-FF12-460A-814E-3380E220787C"?>\r
-        <?define cmf_kvno_exe_guid="7759D524-1F88-4483-975F-DDD33A511512"?>\r
-        <?define cmf_krb5_32_dll_guid="31E40356-CBAC-4FC6-9A34-C6F6C72A27CA"?>\r
-        <?define cmf_krb5_32_dll_name="krb5_32.dll"?>\r
-        <?define cmf_k5sprt32_dll_guid="F2381331-9201-4c02-866F-2038676771D4"?>\r
-        <?define cmf_k5sprt32_dll_name="k5sprt32.dll"?>\r
-        <?define cmf_krb524_dll_guid="98685874-A9AA-4BC5-9830-271D9CF52C17"?>\r
-        <?define cmf_krb524_dll_name="krb524.dll"?>\r
-        <?define cmf_krbcc32_dll_guid="A50FA27D-F203-4C19-9047-B7976171FB94"?>\r
-        <?define cmf_krbcc32_dll_name="krbcc32.dll"?>\r
-        <?define cmf_krbcc32s_exe_guid="7D5F0817-DACF-4B54-BB8D-94DD63626DB5"?>\r
-        <?define cmf_krbcc32s_exe_name="krbcc32s.exe"?>\r
-        <?define cmf_krbv4w32_dll_guid="DFA23F6C-5297-4876-AF52-6F7CF2CB34AC"?>\r
-        <?define cmf_krbv4w32_dll_name="krbv4w32.dll"?>\r
-        <?define cmf_leash32_exe_guid="990D5F6B-4CEE-4706-96F4-F7AF12F97DF7"?>\r
-        <?define csc_leash32_exe_guid="8A096700-47B1-4A0B-B7B5-44F75086DEAE"?>\r
-        <?define rcm_leash_1_guid="B91648A0-26F7-43BB-A954-202FF3811E3C"?>\r
-        <?define rcm_leash_2_guid="0D8DCC52-F855-4C46-86A1-198E6EE0CB8A"?>\r
-        <?define rcm_leash_3_guid="9610A7E3-251F-4286-B776-1C3AF5DE7815"?>\r
-        <?define rcm_leash_4_guid="815AED84-2437-4EBC-B561-F847833DB3A5"?>\r
-        <?define rcm_leash_5_guid="A0D3D75F-762E-4D5C-909B-53E7396CEDB6"?>\r
-        <?define rcm_leash_6_guid="F675C145-6F9D-4BC4-9DA0-CAFB47A96A71"?>\r
-        <?define csc_LeashStartup_guid="0DF73BCD-F34E-4B01-AA71-0EE08EB62F70"?>\r
-        <?define cmf_leash32_hlp_guid="919616D6-1605-4A79-8E33-C18A0D0F25E3"?>\r
-        <?define cmf_leash32_chm_guid="C50E5E0A-B822-4419-855B-1713637BCA6A"?>\r
-        <?define cmf_leashw32_dll_guid="8C145D48-A2FC-4C28-BC05-4368545F1184"?>\r
-        <?define cmf_leashw32_dll_name="leashw32.dll"?>\r
-        <?define rcm_leashdll_1_guid="54C949DA-AF1E-4412-81AF-F502BD5904D2"?>\r
-        <?define rcm_leashdll_2_guid="9B553794-45E7-49FB-B6D9-1C3C9BB6E00D"?>\r
-        <?define rcm_leashdll_3_guid="E3D1284C-17F6-41E3-9AA7-2ED05432060F"?>\r
-        <?define rcm_leashdll_4_guid="A02831D5-48B2-4E82-A670-EDCEBC197273"?>\r
-        <?define rcm_leashdll_5_guid="5FDB0C01-6668-43E3-9C83-2CD364D97BF3"?>\r
-        <?define rcm_leashdll_6_guid="999BD59C-5C1E-446E-9D38-F4E26DD27D09"?>\r
-        <?define rcm_leashdll_7_guid="C908AA17-DD21-4193-BA1D-535A2FD3D803"?>\r
-        <?define rcm_leashdll_8_guid="02926245-2327-46F9-AEF6-89E2DB0D90E1"?>\r
-        <?define rcm_leashdll_9_guid="B45BBA29-7A67-4FF7-AAA4-80044D46C451"?>\r
-        <?define rcm_leashdll_10_guid="1DDC4D78-BDB4-48CD-A4E9-024FA9706100"?>\r
-        <?define rcm_leashdll_11_guid="39134333-58C7-4C6B-B690-2322D3AE928A"?>\r
-        <?define rcm_leashdll_12_guid="BBB6F5C3-290F-4A21-A630-E8630C6EAB67"?>\r
-        <?define rcm_leashdll_13_guid="0F86A73E-DB31-45E7-9156-BE0EC99076A7"?>\r
-        <?define rcm_leashdll_14_guid="FE0F06A2-62E7-46C1-9BFF-337C50DB78C7"?>\r
-        <?define rcm_leashdll_15_guid="2DAC4693-6435-4278-A584-3D2B74BE87D5"?>\r
-        <?define rcm_leashdll_16_guid="FE3DDD47-CCDE-44F8-8C86-97F2C3545443"?>\r
-        <?define rcm_leashdll_17_guid="1B685E1B-32F2-49A5-9B7D-4288741A2C17"?>\r
-        <?define cmf_ms2mit_exe_guid="63D189DC-5EE4-49E2-B5E9-6E74A28602C8"?>\r
-        <?define cmf_mit2ms_exe_guid="4F487781-5B55-48c1-A3FA-8BC6ECA4FEA1"?>\r
-        <?define cmf_wshelp32_dll_guid="B9D9F5F1-CA93-4F56-B6F8-343F21484CDE"?>\r
-        <?define cmf_wshelp32_dll_name="wshelp32.dll"?>\r
-        <?define cmf_xpprof32_dll_guid="A7DF8BAF-7188-4C24-89FB-C8EB51571FD2"?>\r
-        <?define cmf_xpprof32_dll_name="xpprof32.dll"?>\r
-        <?define cmf_nidmgr32_dll_guid="EEBA3A0D-CE3D-42F1-8854-D7F63F597202"?>\r
-        <?define cmf_nidmgr32_dll_name="nidmgr32.dll"?>\r
-        <?define cmf_nidmgr32_dll_w2k_guid="33F42D7C-03CE-465F-9E0A-5F486FE64B04"?>\r
-        <?define cmf_krb5cred_dll_guid="27A7723A-F0D9-4F06-892C-54F0AC6014C3"?>\r
-        <?define cmf_krb5cred_dll_name="krb5cred.dll"?>\r
-        <?define cmf_krb5cred_en_us_dll_guid="EA9ABE05-A85B-43BB-8741-50D3C3128632"?>\r
-        <?define cmf_krb5cred_en_us_dll_name="krb5cred_en_us.dll"?>\r
-        <?define cmf_krb4cred_dll_guid="E3B86954-9D5D-4929-A5E6-B22ED03E6D6C"?>\r
-        <?define cmf_krb4cred_dll_name="krb4cred.dll"?>\r
-        <?define cmf_krb4cred_en_us_dll_guid="3FF40A29-E2C3-40F3-B81C-2948494BE4B0"?>\r
-        <?define cmf_krb4cred_en_us_dll_name="krb4cred_en_us.dll"?>\r
-        <?define cmf_netidmgr_exe_guid="AEB06D67-B4F3-45B1-AC1E-5C1AFF747756"?>\r
-        <?define cmf_netidmgr_exe_w2k_guid="0F85D4F3-7897-4FE3-8501-AD0C383CCB4F"?>\r
-        <?define csc_NetIDMgrStartup_guid="669227E3-0ADC-4173-90C3-631FCFC8EBC3"?>\r
-        <?define cmf_bin_debug_guid="C8468854-8261-4781-8119-A612636841E3"?>\r
-<?else?>\r
-        <?error Unknown platform?>\r
-<?endif?>\r
-</Include>\r
+<?xml version="1.0"?>
+<Include>
+<!-- Platform specific GUID's and other definitions -->
+<?if $(var.Platform) = "x64" ?>
+        <?define UpgradeCode="6DA9CD86-6028-4852-8C94-452CAC229244"?>
+        <?define cmf_kfwlogon_DLL_guid="CFC0B7C9-9A59-4022-89B3-25E0941D0369"?>
+        <?define cmf_kfwcpcc_EXE_guid="83F51B6D-F3C6-44cf-AC91-D1D6498FFA44"?>
+        <?define cmp_ClientSystemDebug_guid="7B25B1E0-A22A-43c7-BA97-C30FCA3B1230"?>
+        <?define rcm_krb4_1_guid="B3CF770A-2C0F-44c0-8F5B-7B808369D225"?>
+        <?define rcm_krb4_2_guid="0CF5732A-7659-4cf9-8D01-7E75E6DA2639"?>                                        
+        <?define rcm_krb4_3_guid="6A279F11-E441-49cb-80F0-3D807D7230DE"?>
+        <?define rcm_krb4_4_guid="CACB3731-C532-4d28-9E44-FFF35C1376D5"?>
+        <?define rcm_krb5_1_guid="21883AD6-1C00-4f1d-9922-477CF63CE6BF"?>
+        <?define rcm_krb5_2_guid="88CEA446-4617-46bc-916F-2AAA1E1EACF8"?>
+        <?define rcm_krb5_3_guid="28BFF4DB-D09E-4031-AB5D-232F6F707A45"?>
+        <?define cmf_comerr32_dll_guid="3C34EFDA-3F93-4aa6-AA44-718AA25DD346"?>
+        <?define cmf_comerr32_dll_name="comerr64.dll"?>
+        <?define cmf_gss_exe_guid="805EBB97-4860-40d4-A038-5E56717EAFB4"?>
+        <?define cmf_gss_client_exe_guid="5F192562-436C-4800-93C7-148F7D46F521"?>
+        <?define cmf_gss_server_exe_guid="33651319-01CB-4f2c-9B96-50F0F53E9CDF"?>
+        <?define cmf_gssapi32_dll_guid="ACD1D3FA-3E96-47a6-8A39-88BDA2EA3C9D"?>
+        <?define cmf_gssapi32_dll_name="gssapi64.dll"?>
+        <?define cmf_k524init_exe_guid="63630B70-D9B1-47bc-905D-E4DFA6F9D0D1"?>
+        <?define cmf_kclnt32_dll_guid="C26B3CAA-607C-42db-956C-9AA379CCE892"?>
+        <?define cmf_kclnt32_dll_name="kclnt64.dll"?>
+        <?define cmf_kdestroy_exe_guid="58AB2858-3513-4e4d-B76C-915B0D0DEE82"?>
+        <?define cmf_kcpytkt_exe_guid="B2BA9697-4E42-433d-BA85-79A49A622D84"?>
+        <?define cmf_kdeltkt_exe_guid="998BF60D-75EF-4807-BDA3-7DDE47C4F00F"?>
+        <?define cmf_kinit_exe_guid="6855B2B9-D3EB-42ce-B0EA-EFCD5960B635"?>
+        <?define cmf_klist_exe_guid="1AE98193-6596-4460-9B42-15C734E28CE8"?>
+        <?define cmf_kpasswd_exe_guid="669A2965-413F-4003-9F43-4615CC7C3B1A"?>
+        <?define cmf_kvno_exe_guid="56C95EBA-2A53-4567-AA44-9A0EE01BB390"?>
+        <?define cmf_krb5_32_dll_guid="8B7190D6-76BD-442b-893B-1EED4E26EC0A"?>
+        <?define cmf_krb5_32_dll_name="krb5_64.dll"?>
+        <?define cmf_k5sprt32_dll_guid="2DD8CE7D-8C8E-4cfb-BC73-765858DD1418"?>
+        <?define cmf_k5sprt32_dll_name="k5sprt64.dll"?>
+        <?define cmf_krb524_dll_guid="4FAFB2A6-FC42-466b-9A86-42C3150252E2"?>
+        <?define cmf_krb524_dll_name="krb524.dll"?>
+        <?define cmf_krbcc32_dll_guid="56DAD1B9-4A59-46e6-81CA-54E2B6C9D618"?>
+        <?define cmf_krbcc32_dll_name="krbcc64.dll"?>
+        <?define cmf_krbcc32s_exe_guid="0192F58B-9129-426d-A271-E18455EDC80E"?>
+        <?define cmf_krbcc32s_exe_name="krbcc64s.exe"?>
+        <?define cmf_krbv4w32_dll_guid="D195FADB-A3B0-4023-A824-8895552CDC56"?>
+        <?define cmf_krbv4w32_dll_name="krbv4w64.dll"?>
+        <?define cmf_leash32_exe_guid="D195FADB-A3B0-4023-A824-8895552CDC56"?>
+        <?define csc_leash32_exe_guid="9D43350A-A8AE-4405-AB82-64E90E5A1A70"?>
+        <?define rcm_leash_1_guid="7E5517FF-FB76-431f-A92B-2895C9BE7E98"?>
+        <?define rcm_leash_2_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>
+        <?define rcm_leash_3_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>
+        <?define rcm_leash_4_guid="D20180CC-B68D-4a6d-95E4-5EB07B9EADCD"?>
+        <?define rcm_leash_5_guid="AF3B73AE-86ED-42f5-987A-9831B8799D2F"?>
+        <?define rcm_leash_6_guid="0C72D4F8-096B-4295-8F0A-6B5723A8593D"?>
+        <?define csc_LeashStartup_guid="228192C5-D847-4c46-A726-0E8211742349"?>
+        <?define cmf_leash32_hlp_guid="228192C5-D847-4c46-A726-0E8211742349"?>
+        <?define cmf_leash32_chm_guid="769B54EB-9B96-4abe-9B72-9EF346C8C03D"?>
+        <?define cmf_leashw32_dll_guid="7222B9E1-EE70-4ccb-929F-43D45574AA83"?>
+        <?define cmf_leashw32_dll_name="leashw64.dll"?>
+        <?define rcm_leashdll_1_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
+        <?define rcm_leashdll_2_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
+        <?define rcm_leashdll_3_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
+        <?define rcm_leashdll_4_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>
+        <?define rcm_leashdll_5_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>
+        <?define rcm_leashdll_6_guid="AC35CE64-9D8D-4a21-AB1F-18803C69E7B4"?>
+        <?define rcm_leashdll_7_guid="02014C27-BAC8-4b86-95F8-43F9BF55064A"?>
+        <?define rcm_leashdll_8_guid="DE70F57C-D3F8-4c1d-B868-A77DA04D9DD3"?>
+        <?define rcm_leashdll_9_guid="A809042D-66F3-4a6a-B8EC-77C40C88F3E3"?>
+        <?define rcm_leashdll_10_guid="E61875A4-F33C-419f-97B8-D2ACA3EBD4BB"?>
+        <?define rcm_leashdll_11_guid="3732992E-34C4-430a-B081-C8601BA44A61"?>
+        <?define rcm_leashdll_12_guid="2237072A-1955-4ca4-ABB3-78037E16F696"?>
+        <?define rcm_leashdll_13_guid="6F626DB7-B0A6-4c1d-889E-A2DA742DFC4B"?>
+        <?define rcm_leashdll_14_guid="109674B4-7390-49cc-9DB1-B9402E4C5645"?>
+        <?define rcm_leashdll_15_guid="8AC8500D-2279-4a3c-82E9-4C0ED79A6EFC"?>
+        <?define rcm_leashdll_16_guid="ED6BD7FE-7879-4da6-882D-98DEF6198F60"?>
+        <?define rcm_leashdll_17_guid="E5F8A4DF-442E-4d24-B5E2-9F36A4F7E15D"?>
+        <?define cmf_ms2mit_exe_guid="8AEC1FDA-4A45-4878-8C0B-465D46ACE306"?>
+        <?define cmf_mit2ms_exe_guid="3CE7BAE8-22DA-4911-B370-4C700861BDFD"?>
+        <?define cmf_wshelp32_dll_guid="24648FE7-D952-499c-8023-AFE4C7E52296"?>
+        <?define cmf_wshelp32_dll_name="wshelp64.dll"?>
+        <?define cmf_xpprof32_dll_guid="B1112677-50A4-4430-846B-F824C859E3DF"?>
+        <?define cmf_xpprof32_dll_name="xpprof64.dll"?>
+        <?define cmf_nidmgr32_dll_guid="8538212A-9BD5-4d62-BF29-36D853385F0A"?>
+        <?define cmf_nidmgr32_dll_name="nidmgr64.dll"?>
+        <?define cmf_nidmgr32_dll_w2k_guid="01655D48-C596-48f8-A0C3-5DB3FC833444"?>
+        <?define cmf_krb5cred_dll_guid="CC182AB1-E333-4501-8DEA-5A8D4FD36D0D"?>
+        <?define cmf_krb5cred_dll_name="krb5cred.dll"?>
+        <?define cmf_krb5cred_en_us_dll_guid="223B7E9D-290F-40b8-89B3-F8337A8E082D"?>
+        <?define cmf_krb5cred_en_us_dll_name="krb5cred_en_us.dll"?>
+        <?define cmf_krb4cred_dll_guid="AF3DB848-786B-4e0b-9D8F-F9074D0631F2"?>
+        <?define cmf_krb4cred_dll_name="krb4cred.dll"?>
+        <?define cmf_krb4cred_en_us_dll_guid="4D180CEF-59CD-4c39-872C-F84F58008107"?>
+        <?define cmf_krb4cred_en_us_dll_name="krb4cred_en_us.dll"?>
+        <?define cmf_netidmgr_exe_guid="487545C9-F145-4fb9-8610-5652A6C3FE48"?>
+        <?define cmf_netidmgr_exe_w2k_guid="F9D3A2A1-8BAE-41ff-BB50-2E6923D3368B"?>
+        <?define csc_NetIDMgrStartup_guid="7081976D-E9D5-424a-9564-917E0529E4D0"?>
+        <?define cmf_bin_debug_guid="F3432C85-89D9-4bd6-BD82-4ED49A118338"?>
+<?elseif $(var.Platform) = "Intel"?>
+        <?define UpgradeCode="61211594-AAA1-4A98-A299-757326763CC7"?>
+        <?define cmf_kfwlogon_DLL_guid="2F104FEB-2D61-458A-BAE3-B153F151E728"?>
+        <?define cmf_kfwcpcc_EXE_guid="C3284E7A-3665-45A6-B64E-C909B1D1BAA6"?>
+        <?define cmp_ClientSystemDebug_guid="2D13ED48-53C2-4878-B196-2AD7F4100998"?>
+        <?define rcm_krb4_1_guid="34262966-9196-49D6-86C9-AE98D3116DC0"?>
+        <?define rcm_krb4_2_guid="812334C6-EBDF-482C-8CB3-A6398AF9EDFC"?>                                        
+        <?define rcm_krb4_3_guid="5556ECD9-8721-41C2-846C-034C239B48F1"?>
+        <?define rcm_krb4_4_guid="61371A93-7F59-439D-A89C-070E100F465B"?>
+        <?define rcm_krb5_1_guid="E190F8B9-51FA-4FB1-884C-C8AFA37F8653"?>
+        <?define rcm_krb5_2_guid="AE7D4305-6193-4094-8C82-73862AE01DCE"?>
+        <?define rcm_krb5_3_guid="853EE035-99AA-489A-8FB6-74C76624E92A"?>
+        <?define cmf_comerr32_dll_guid="D8F455F9-E648-4C61-A69D-7116ADEC2DBB"?>
+        <?define cmf_comerr32_dll_name="comerr32.dll"?>
+        <?define cmf_gss_exe_guid="8CAF09C4-68A2-46DC-A618-AEF16D832E54"?>
+        <?define cmf_gss_client_exe_guid="983E0887-0C8B-49AB-8F59-DFE3A4E45E89"?>
+        <?define cmf_gss_server_exe_guid="B165FE41-D0DD-4DFC-92E6-A99ADA23BE8B"?>
+        <?define cmf_gssapi32_dll_guid="5B0F2989-BB85-40BF-BB7A-E77693972CF9"?>
+        <?define cmf_gssapi32_dll_name="gssapi32.dll"?>
+        <?define cmf_k524init_exe_guid="20BE4EA5-C465-4AF3-9A4F-BB80934167E3"?>
+        <?define cmf_kclnt32_dll_guid="D396C1E7-080E-49F5-92BA-73BCEDF09C8E"?>
+        <?define cmf_kclnt32_dll_name="kclnt32.dll"?>
+        <?define cmf_kdestroy_exe_guid="D1E9C111-7760-4EE6-86CF-D4B4064B0ABA"?>
+        <?define cmf_kcpytkt_exe_guid="6B20E57C-0033-4dcf-B3C9-74ED0B2CF46E"?>
+        <?define cmf_kdeltkt_exe_guid="C7528C87-9B61-439a-8EA8-AD4BE3D758F9"?>
+        <?define cmf_kinit_exe_guid="80643A09-EF28-4714-BC62-B64FC5B17CAA"?>
+        <?define cmf_klist_exe_guid="24FB6003-BC7A-4BF1-9503-82D398EC02D7"?>
+        <?define cmf_kpasswd_exe_guid="3FA4AB96-FF12-460A-814E-3380E220787C"?>
+        <?define cmf_kvno_exe_guid="7759D524-1F88-4483-975F-DDD33A511512"?>
+        <?define cmf_krb5_32_dll_guid="31E40356-CBAC-4FC6-9A34-C6F6C72A27CA"?>
+        <?define cmf_krb5_32_dll_name="krb5_32.dll"?>
+        <?define cmf_k5sprt32_dll_guid="F2381331-9201-4c02-866F-2038676771D4"?>
+        <?define cmf_k5sprt32_dll_name="k5sprt32.dll"?>
+        <?define cmf_krb524_dll_guid="98685874-A9AA-4BC5-9830-271D9CF52C17"?>
+        <?define cmf_krb524_dll_name="krb524.dll"?>
+        <?define cmf_krbcc32_dll_guid="A50FA27D-F203-4C19-9047-B7976171FB94"?>
+        <?define cmf_krbcc32_dll_name="krbcc32.dll"?>
+        <?define cmf_krbcc32s_exe_guid="7D5F0817-DACF-4B54-BB8D-94DD63626DB5"?>
+        <?define cmf_krbcc32s_exe_name="krbcc32s.exe"?>
+        <?define cmf_krbv4w32_dll_guid="DFA23F6C-5297-4876-AF52-6F7CF2CB34AC"?>
+        <?define cmf_krbv4w32_dll_name="krbv4w32.dll"?>
+        <?define cmf_leash32_exe_guid="990D5F6B-4CEE-4706-96F4-F7AF12F97DF7"?>
+        <?define csc_leash32_exe_guid="8A096700-47B1-4A0B-B7B5-44F75086DEAE"?>
+        <?define rcm_leash_1_guid="B91648A0-26F7-43BB-A954-202FF3811E3C"?>
+        <?define rcm_leash_2_guid="0D8DCC52-F855-4C46-86A1-198E6EE0CB8A"?>
+        <?define rcm_leash_3_guid="9610A7E3-251F-4286-B776-1C3AF5DE7815"?>
+        <?define rcm_leash_4_guid="815AED84-2437-4EBC-B561-F847833DB3A5"?>
+        <?define rcm_leash_5_guid="A0D3D75F-762E-4D5C-909B-53E7396CEDB6"?>
+        <?define rcm_leash_6_guid="F675C145-6F9D-4BC4-9DA0-CAFB47A96A71"?>
+        <?define csc_LeashStartup_guid="0DF73BCD-F34E-4B01-AA71-0EE08EB62F70"?>
+        <?define cmf_leash32_hlp_guid="919616D6-1605-4A79-8E33-C18A0D0F25E3"?>
+        <?define cmf_leash32_chm_guid="C50E5E0A-B822-4419-855B-1713637BCA6A"?>
+        <?define cmf_leashw32_dll_guid="8C145D48-A2FC-4C28-BC05-4368545F1184"?>
+        <?define cmf_leashw32_dll_name="leashw32.dll"?>
+        <?define rcm_leashdll_1_guid="54C949DA-AF1E-4412-81AF-F502BD5904D2"?>
+        <?define rcm_leashdll_2_guid="9B553794-45E7-49FB-B6D9-1C3C9BB6E00D"?>
+        <?define rcm_leashdll_3_guid="E3D1284C-17F6-41E3-9AA7-2ED05432060F"?>
+        <?define rcm_leashdll_4_guid="A02831D5-48B2-4E82-A670-EDCEBC197273"?>
+        <?define rcm_leashdll_5_guid="5FDB0C01-6668-43E3-9C83-2CD364D97BF3"?>
+        <?define rcm_leashdll_6_guid="999BD59C-5C1E-446E-9D38-F4E26DD27D09"?>
+        <?define rcm_leashdll_7_guid="C908AA17-DD21-4193-BA1D-535A2FD3D803"?>
+        <?define rcm_leashdll_8_guid="02926245-2327-46F9-AEF6-89E2DB0D90E1"?>
+        <?define rcm_leashdll_9_guid="B45BBA29-7A67-4FF7-AAA4-80044D46C451"?>
+        <?define rcm_leashdll_10_guid="1DDC4D78-BDB4-48CD-A4E9-024FA9706100"?>
+        <?define rcm_leashdll_11_guid="39134333-58C7-4C6B-B690-2322D3AE928A"?>
+        <?define rcm_leashdll_12_guid="BBB6F5C3-290F-4A21-A630-E8630C6EAB67"?>
+        <?define rcm_leashdll_13_guid="0F86A73E-DB31-45E7-9156-BE0EC99076A7"?>
+        <?define rcm_leashdll_14_guid="FE0F06A2-62E7-46C1-9BFF-337C50DB78C7"?>
+        <?define rcm_leashdll_15_guid="2DAC4693-6435-4278-A584-3D2B74BE87D5"?>
+        <?define rcm_leashdll_16_guid="FE3DDD47-CCDE-44F8-8C86-97F2C3545443"?>
+        <?define rcm_leashdll_17_guid="1B685E1B-32F2-49A5-9B7D-4288741A2C17"?>
+        <?define cmf_ms2mit_exe_guid="63D189DC-5EE4-49E2-B5E9-6E74A28602C8"?>
+        <?define cmf_mit2ms_exe_guid="4F487781-5B55-48c1-A3FA-8BC6ECA4FEA1"?>
+        <?define cmf_wshelp32_dll_guid="B9D9F5F1-CA93-4F56-B6F8-343F21484CDE"?>
+        <?define cmf_wshelp32_dll_name="wshelp32.dll"?>
+        <?define cmf_xpprof32_dll_guid="A7DF8BAF-7188-4C24-89FB-C8EB51571FD2"?>
+        <?define cmf_xpprof32_dll_name="xpprof32.dll"?>
+        <?define cmf_nidmgr32_dll_guid="EEBA3A0D-CE3D-42F1-8854-D7F63F597202"?>
+        <?define cmf_nidmgr32_dll_name="nidmgr32.dll"?>
+        <?define cmf_nidmgr32_dll_w2k_guid="33F42D7C-03CE-465F-9E0A-5F486FE64B04"?>
+        <?define cmf_krb5cred_dll_guid="27A7723A-F0D9-4F06-892C-54F0AC6014C3"?>
+        <?define cmf_krb5cred_dll_name="krb5cred.dll"?>
+        <?define cmf_krb5cred_en_us_dll_guid="EA9ABE05-A85B-43BB-8741-50D3C3128632"?>
+        <?define cmf_krb5cred_en_us_dll_name="krb5cred_en_us.dll"?>
+        <?define cmf_krb4cred_dll_guid="E3B86954-9D5D-4929-A5E6-B22ED03E6D6C"?>
+        <?define cmf_krb4cred_dll_name="krb4cred.dll"?>
+        <?define cmf_krb4cred_en_us_dll_guid="3FF40A29-E2C3-40F3-B81C-2948494BE4B0"?>
+        <?define cmf_krb4cred_en_us_dll_name="krb4cred_en_us.dll"?>
+        <?define cmf_netidmgr_exe_guid="AEB06D67-B4F3-45B1-AC1E-5C1AFF747756"?>
+        <?define cmf_netidmgr_exe_w2k_guid="0F85D4F3-7897-4FE3-8501-AD0C383CCB4F"?>
+        <?define csc_NetIDMgrStartup_guid="669227E3-0ADC-4173-90C3-631FCFC8EBC3"?>
+        <?define cmf_bin_debug_guid="C8468854-8261-4781-8119-A612636841E3"?>
+<?else?>
+        <?error Unknown platform?>
+<?endif?>
+</Include>
index 13d491b854ca2182e9314e789115b84215430832..7b09fea2cd3b81405b7b5e3ea0e71c824b5d37c5 100644 (file)
@@ -1,90 +1,90 @@
-<?xml version="1.0"?> \r
-<Include>\r
-    <?ifdef CL1400 ?>\r
-               <MergeRef Id="MSVCRT8MEM"/>\r
-               <MergeRef Id="MSVCRT8POL"/>\r
-               <MergeRef Id="MSVCRT8MFC"/>\r
-               <MergeRef Id="MSVCRT8PFC"/>\r
-               <MergeRef Id="MSVCRT8MFL"/>\r
-               <MergeRef Id="MSVCRT8PFL"/>\r
-    <?endif?>\r
-<?ifndef Debug?>\r
-    <?ifdef CL1310 ?>\r
-        <?ifdef comment?>\r
-        <MergeRef Id="mergeVC1310LibMFC" />\r
-        <MergeRef Id="mergeVC1310LibCRT" />\r
-        <?else?>\r
-            <ComponentRef Id="cmf_mfc71_dll" />\r
-            <ComponentRef Id="cmf_msvcr71_dll" />\r
-            <ComponentRef Id="cmf_msvcp71_dll" />\r
-            <ComponentRef Id="cmf_mfc71chs_dll" />\r
-            <ComponentRef Id="cmf_mfc71cht_dll" />\r
-            <ComponentRef Id="cmf_mfc71deu_dll" />\r
-            <ComponentRef Id="cmf_mfc71enu_dll" />\r
-            <ComponentRef Id="cmf_mfc71esp_dll" />\r
-            <ComponentRef Id="cmf_mfc71fra_dll" />\r
-            <ComponentRef Id="cmf_mfc71ita_dll" />\r
-            <ComponentRef Id="cmf_mfc71jpn_dll" />\r
-            <ComponentRef Id="cmf_mfc71kor_dll" />\r
-        <?endif?>\r
-    <?endif?>\r
-    <?ifdef CL1300 ?>\r
-        <?ifdef comment?>\r
-        <MergeRef Id="mergeVC1300LibMFC" />\r
-        <MergeRef Id="mergeVC1300LibCRT" />\r
-        <?else?>\r
-            <ComponentRef Id="cmf_mfc70_dll" />\r
-            <ComponentRef Id="cmf_msvcr70_dll" />\r
-            <ComponentRef Id="cmf_msvcp70_dll" />\r
-            <ComponentRef Id="cmf_mfc70chs_dll" />\r
-            <ComponentRef Id="cmf_mfc70cht_dll" />\r
-            <ComponentRef Id="cmf_mfc70deu_dll" />\r
-            <ComponentRef Id="cmf_mfc70enu_dll" />\r
-            <ComponentRef Id="cmf_mfc70esp_dll" />\r
-            <ComponentRef Id="cmf_mfc70fra_dll" />\r
-            <ComponentRef Id="cmf_mfc70ita_dll" />\r
-            <ComponentRef Id="cmf_mfc70jpn_dll" />\r
-            <ComponentRef Id="cmf_mfc70kor_dll" />\r
-        <?endif?>\r
-    <?endif?>\r
-    <?ifdef CL1200 ?>\r
-        <ComponentRef Id="cmf_mfc42_dll" />\r
-        <ComponentRef Id="cmf_msvcp60_dll" />\r
-        <ComponentRef Id="cmf_msvcrt_dll" />\r
-    <?endif?>\r
-<?else?>\r
-    <?ifdef CL1310 ?>\r
-        <ComponentRef Id="cmf_mfc71d_dll" />\r
-        <ComponentRef Id="cmf_msvcr71d_dll" />\r
-        <ComponentRef Id="cmf_msvcp71d_dll" />\r
-        <ComponentRef Id="cmf_mfc71chs_dll" />\r
-        <ComponentRef Id="cmf_mfc71cht_dll" />\r
-        <ComponentRef Id="cmf_mfc71deu_dll" />\r
-        <ComponentRef Id="cmf_mfc71enu_dll" />\r
-        <ComponentRef Id="cmf_mfc71esp_dll" />\r
-        <ComponentRef Id="cmf_mfc71fra_dll" />\r
-        <ComponentRef Id="cmf_mfc71ita_dll" />\r
-        <ComponentRef Id="cmf_mfc71jpn_dll" />\r
-        <ComponentRef Id="cmf_mfc71kor_dll" />\r
-    <?endif?>\r
-    <?ifdef CL1300 ?>\r
-        <ComponentRef Id="cmf_mfc70d_dll" />\r
-        <ComponentRef Id="cmf_msvcr70d_dll" />\r
-        <ComponentRef Id="cmf_msvcp70d_dll" />\r
-        <ComponentRef Id="cmf_mfc70chs_dll" />\r
-        <ComponentRef Id="cmf_mfc70cht_dll" />\r
-        <ComponentRef Id="cmf_mfc70deu_dll" />\r
-        <ComponentRef Id="cmf_mfc70enu_dll" />\r
-        <ComponentRef Id="cmf_mfc70esp_dll" />\r
-        <ComponentRef Id="cmf_mfc70fra_dll" />\r
-        <ComponentRef Id="cmf_mfc70ita_dll" />\r
-        <ComponentRef Id="cmf_mfc70jpn_dll" />\r
-        <ComponentRef Id="cmf_mfc70kor_dll" />\r
-    <?endif?>\r
-    <?ifdef CL1200 ?>\r
-        <ComponentRef Id="cmf_mfc42d_dll" />\r
-        <ComponentRef Id="cmf_msvcp60d_dll" />\r
-        <ComponentRef Id="cmf_msvcrtd_dll" />\r
-    <?endif?>\r
-<?endif?>\r
+<?xml version="1.0"?> 
+<Include>
+    <?ifdef CL1400 ?>
+               <MergeRef Id="MSVCRT8MEM"/>
+               <MergeRef Id="MSVCRT8POL"/>
+               <MergeRef Id="MSVCRT8MFC"/>
+               <MergeRef Id="MSVCRT8PFC"/>
+               <MergeRef Id="MSVCRT8MFL"/>
+               <MergeRef Id="MSVCRT8PFL"/>
+    <?endif?>
+<?ifndef Debug?>
+    <?ifdef CL1310 ?>
+        <?ifdef comment?>
+        <MergeRef Id="mergeVC1310LibMFC" />
+        <MergeRef Id="mergeVC1310LibCRT" />
+        <?else?>
+            <ComponentRef Id="cmf_mfc71_dll" />
+            <ComponentRef Id="cmf_msvcr71_dll" />
+            <ComponentRef Id="cmf_msvcp71_dll" />
+            <ComponentRef Id="cmf_mfc71chs_dll" />
+            <ComponentRef Id="cmf_mfc71cht_dll" />
+            <ComponentRef Id="cmf_mfc71deu_dll" />
+            <ComponentRef Id="cmf_mfc71enu_dll" />
+            <ComponentRef Id="cmf_mfc71esp_dll" />
+            <ComponentRef Id="cmf_mfc71fra_dll" />
+            <ComponentRef Id="cmf_mfc71ita_dll" />
+            <ComponentRef Id="cmf_mfc71jpn_dll" />
+            <ComponentRef Id="cmf_mfc71kor_dll" />
+        <?endif?>
+    <?endif?>
+    <?ifdef CL1300 ?>
+        <?ifdef comment?>
+        <MergeRef Id="mergeVC1300LibMFC" />
+        <MergeRef Id="mergeVC1300LibCRT" />
+        <?else?>
+            <ComponentRef Id="cmf_mfc70_dll" />
+            <ComponentRef Id="cmf_msvcr70_dll" />
+            <ComponentRef Id="cmf_msvcp70_dll" />
+            <ComponentRef Id="cmf_mfc70chs_dll" />
+            <ComponentRef Id="cmf_mfc70cht_dll" />
+            <ComponentRef Id="cmf_mfc70deu_dll" />
+            <ComponentRef Id="cmf_mfc70enu_dll" />
+            <ComponentRef Id="cmf_mfc70esp_dll" />
+            <ComponentRef Id="cmf_mfc70fra_dll" />
+            <ComponentRef Id="cmf_mfc70ita_dll" />
+            <ComponentRef Id="cmf_mfc70jpn_dll" />
+            <ComponentRef Id="cmf_mfc70kor_dll" />
+        <?endif?>
+    <?endif?>
+    <?ifdef CL1200 ?>
+        <ComponentRef Id="cmf_mfc42_dll" />
+        <ComponentRef Id="cmf_msvcp60_dll" />
+        <ComponentRef Id="cmf_msvcrt_dll" />
+    <?endif?>
+<?else?>
+    <?ifdef CL1310 ?>
+        <ComponentRef Id="cmf_mfc71d_dll" />
+        <ComponentRef Id="cmf_msvcr71d_dll" />
+        <ComponentRef Id="cmf_msvcp71d_dll" />
+        <ComponentRef Id="cmf_mfc71chs_dll" />
+        <ComponentRef Id="cmf_mfc71cht_dll" />
+        <ComponentRef Id="cmf_mfc71deu_dll" />
+        <ComponentRef Id="cmf_mfc71enu_dll" />
+        <ComponentRef Id="cmf_mfc71esp_dll" />
+        <ComponentRef Id="cmf_mfc71fra_dll" />
+        <ComponentRef Id="cmf_mfc71ita_dll" />
+        <ComponentRef Id="cmf_mfc71jpn_dll" />
+        <ComponentRef Id="cmf_mfc71kor_dll" />
+    <?endif?>
+    <?ifdef CL1300 ?>
+        <ComponentRef Id="cmf_mfc70d_dll" />
+        <ComponentRef Id="cmf_msvcr70d_dll" />
+        <ComponentRef Id="cmf_msvcp70d_dll" />
+        <ComponentRef Id="cmf_mfc70chs_dll" />
+        <ComponentRef Id="cmf_mfc70cht_dll" />
+        <ComponentRef Id="cmf_mfc70deu_dll" />
+        <ComponentRef Id="cmf_mfc70enu_dll" />
+        <ComponentRef Id="cmf_mfc70esp_dll" />
+        <ComponentRef Id="cmf_mfc70fra_dll" />
+        <ComponentRef Id="cmf_mfc70ita_dll" />
+        <ComponentRef Id="cmf_mfc70jpn_dll" />
+        <ComponentRef Id="cmf_mfc70kor_dll" />
+    <?endif?>
+    <?ifdef CL1200 ?>
+        <ComponentRef Id="cmf_mfc42d_dll" />
+        <ComponentRef Id="cmf_msvcp60d_dll" />
+        <ComponentRef Id="cmf_msvcrtd_dll" />
+    <?endif?>
+<?endif?>
 </Include>
\ No newline at end of file
index f30786bc314c79472e5c0396449d99b07e9e4d74..30bc566e9fac8cad44a10c2553dd497b94c04fa8 100644 (file)
@@ -1,14 +1,14 @@
-<?xml version="1.0"?>\r
-<Include>\r
-  <?ifdef Debug?>\r
-    <?ifdef CL1310 ?>\r
-        <ComponentRef Id="cmf_runtime_debug1310" />\r
-    <?endif?>\r
-    <?ifdef CL1300 ?>\r
-        <ComponentRef Id="cmf_runtime_debug1300" />\r
-    <?endif?>\r
-    <?ifdef CL1200 ?>\r
-        <ComponentRef Id="cmf_runtime_debug1200" />\r
-    <?endif?>\r
-  <?endif?>\r
-</Include>\r
+<?xml version="1.0"?>
+<Include>
+  <?ifdef Debug?>
+    <?ifdef CL1310 ?>
+        <ComponentRef Id="cmf_runtime_debug1310" />
+    <?endif?>
+    <?ifdef CL1300 ?>
+        <ComponentRef Id="cmf_runtime_debug1300" />
+    <?endif?>
+    <?ifdef CL1200 ?>
+        <ComponentRef Id="cmf_runtime_debug1200" />
+    <?endif?>
+  <?endif?>
+</Include>
index 2b48e5045d867a76d32a14307ed7364603e3f1f7..c9a565112841aa88d9133669b5d6df37436ca063 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<Include xmlns="http://schemas.microsoft.com/wix/2003/01/wi">\r
-\r
-    <!-- User configurable options -->\r
-\r
-       <!-- Items enclosed in double percent marks will be substituted by \r
-           the build script. -->\r
-    \r
-    <!-- TargetDir should point to build target directory and must end with \r
-         a backslash.  If not specified, assume we are in TargetDir\install -->\r
-\r
-    <?define TargetDir="%TARGETDIR%\"?>\r
-\r
-    <!-- ConfigDir should point to directory containing configuration files \r
-         (krb5.ini, krb.con, krbrealm.con) to be bundled with the installer.\r
-         The directory name should end with a backslash. -->\r
-\r
-    <?define ConfigDir="%CONFIGDIR-WIX%\"?>\r
-    \r
-    <!-- VersionMajor, VersionMinor and VersionPatch must all be specified, or \r
-         none should be specified (in which case, the defaults will be\r
-         selected below. -->\r
-\r
-    <!-- version defs go here -->\r
-        <?define VersionMajor="%VERSION_MAJOR%"?>\r
-        <?define VersionMinor="%VERSION_MINOR%"?>\r
-        <?define VersionPatch="%VERSION_PATCH%"?>\r
-\r
-    <!-- BuildLang is the language code for the installation.  If you are\r
-         changing this, you should also change the ProductCode below. -->  \r
-    <?ifndef BuildLang?>\r
-        <?define BuildLang="1033"?>\r
-    <?endif?>\r
-\r
-    <!-- ProductCode is an uppercase GUID.  Each release should have its\r
-         own ProductCode.  If one is not defined, we generate a random one. -->\r
-    <?ifndef ProductCode?>\r
-           <?define ProductCode="????????-????-????-????-????????????"?>    \r
-    <?endif?>\r
-    \r
-    <!-- DefaultRealm, is your default realm.  Must be uppercase -->\r
-    <?define DefaultRealm="ATHENA.MIT.EDU"?>\r
-    \r
-    <!-- One of the following must be defined and must correspond to the\r
-         version of compiler used for building Kerberos for Windows -->\r
-\r
-    <!-- <?define CL1200?> -->\r
-    <!-- <?define CL1300?> -->\r
-    <?define CL1310?>\r
-    <!-- <?define CL1400?> -->\r
-\r
-    <!-- At most one of the following could be defined and must correspond\r
-         to the type of build performed. -->\r
-    <!-- <?define Debug?> -->\r
-    <?define Release?>\r
-\r
-    <!-- We are including debug symbols anyway.  Undefine this for a leaner \r
-         installer without debug syms. -->\r
-    <?define DebugSyms?>\r
-\r
-    <!-- Optional defines -->\r
-    <?define Beta="1"?> <!-- Numeric Beta identifier -->\r
-    <!-- <?define OldHelp?> --> <!-- Specifies the use of the old leash32.hlp file \r
-                           instead of the new leash32.chm file -->\r
-\r
-\r
-    <!-- End of user configurable options -->\r
-    \r
-    <!-- Assert that required options are defined, or select defaults if\r
-         they weren't -->\r
-\r
-    <?ifndef TargetDir?>\r
-        <?define TargetDir="$(sys.SOURCEFILEDIR)..\"?>\r
-    <?endif?>\r
-    \r
-    <?ifndef ConfigDir?>\r
-        <?define ConfigDir="$(env.SystemRoot)\"?>\r
-    <?endif?>\r
-\r
-    <?ifndef VersionMajor?>\r
-        <?define VersionMajor="3"?>\r
-        <?define VersionMinor="2"?>\r
-        <?define VersionPatch="0"?>\r
-    <?else?>\r
-        <?if Not ($(var.VersionMinor) And $(var.VersionPatch))?>\r
-            <?error VersionMajor, VersionMinor and VersionPatch should be specified together?>\r
-        <?endif?>\r
-    <?endif?>\r
-    \r
-    <?ifndef ProductCode?>\r
-        <?error Must define ProductCode?>\r
-    <?endif?>\r
-    \r
-    <?ifndef BuildLang?>\r
-        <?error Must define BuildLang?>\r
-    <?endif?>\r
-\r
-    <!-- DefaultRealm.  Must be uppercase. -->\r
-    <?ifndef DefaultRealm?>\r
-        <?error Must define DefaultRealm?>\r
-    <?endif?>\r
-    \r
-    <!-- The build makefile defines 'Date' and 'Time' which are strings that \r
-         identify the time at which the build was performed. -->\r
+<?xml version="1.0" encoding="utf-8"?>
+<Include xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
+
+    <!-- User configurable options -->
+
+       <!-- Items enclosed in double percent marks will be substituted by 
+           the build script. -->
+    
+    <!-- TargetDir should point to build target directory and must end with 
+         a backslash.  If not specified, assume we are in TargetDir\install -->
+
+    <?define TargetDir="%TARGETDIR%\"?>
+
+    <!-- ConfigDir should point to directory containing configuration files 
+         (krb5.ini, krb.con, krbrealm.con) to be bundled with the installer.
+         The directory name should end with a backslash. -->
+
+    <?define ConfigDir="%CONFIGDIR-WIX%\"?>
+    
+    <!-- VersionMajor, VersionMinor and VersionPatch must all be specified, or 
+         none should be specified (in which case, the defaults will be
+         selected below. -->
+
+    <!-- version defs go here -->
+        <?define VersionMajor="%VERSION_MAJOR%"?>
+        <?define VersionMinor="%VERSION_MINOR%"?>
+        <?define VersionPatch="%VERSION_PATCH%"?>
+
+    <!-- BuildLang is the language code for the installation.  If you are
+         changing this, you should also change the ProductCode below. -->  
+    <?ifndef BuildLang?>
+        <?define BuildLang="1033"?>
+    <?endif?>
+
+    <!-- ProductCode is an uppercase GUID.  Each release should have its
+         own ProductCode.  If one is not defined, we generate a random one. -->
+    <?ifndef ProductCode?>
+           <?define ProductCode="????????-????-????-????-????????????"?>    
+    <?endif?>
+    
+    <!-- DefaultRealm, is your default realm.  Must be uppercase -->
+    <?define DefaultRealm="ATHENA.MIT.EDU"?>
+    
+    <!-- One of the following must be defined and must correspond to the
+         version of compiler used for building Kerberos for Windows -->
+
+    <!-- <?define CL1200?> -->
+    <!-- <?define CL1300?> -->
+    <?define CL1310?>
+    <!-- <?define CL1400?> -->
+
+    <!-- At most one of the following could be defined and must correspond
+         to the type of build performed. -->
+    <!-- <?define Debug?> -->
+    <?define Release?>
+
+    <!-- We are including debug symbols anyway.  Undefine this for a leaner 
+         installer without debug syms. -->
+    <?define DebugSyms?>
+
+    <!-- Optional defines -->
+    <?define Beta="1"?> <!-- Numeric Beta identifier -->
+    <!-- <?define OldHelp?> --> <!-- Specifies the use of the old leash32.hlp file 
+                           instead of the new leash32.chm file -->
+
+
+    <!-- End of user configurable options -->
+    
+    <!-- Assert that required options are defined, or select defaults if
+         they weren't -->
+
+    <?ifndef TargetDir?>
+        <?define TargetDir="$(sys.SOURCEFILEDIR)..\"?>
+    <?endif?>
+    
+    <?ifndef ConfigDir?>
+        <?define ConfigDir="$(env.SystemRoot)\"?>
+    <?endif?>
+
+    <?ifndef VersionMajor?>
+        <?define VersionMajor="3"?>
+        <?define VersionMinor="2"?>
+        <?define VersionPatch="0"?>
+    <?else?>
+        <?if Not ($(var.VersionMinor) And $(var.VersionPatch))?>
+            <?error VersionMajor, VersionMinor and VersionPatch should be specified together?>
+        <?endif?>
+    <?endif?>
+    
+    <?ifndef ProductCode?>
+        <?error Must define ProductCode?>
+    <?endif?>
+    
+    <?ifndef BuildLang?>
+        <?error Must define BuildLang?>
+    <?endif?>
+
+    <!-- DefaultRealm.  Must be uppercase. -->
+    <?ifndef DefaultRealm?>
+        <?error Must define DefaultRealm?>
+    <?endif?>
+    
+    <!-- The build makefile defines 'Date' and 'Time' which are strings that 
+         identify the time at which the build was performed. -->
 </Include>
\ No newline at end of file
index 05e5b3b1dbe65f2a607eeaaefc15fab015bf3aa6..85ba1028c237f8f3196c46eb338ad22a87a0a2bc 100644 (file)
@@ -1,14 +1,14 @@
-LIBRARY KFWLOGON\r
-\r
-EXPORTS\r
-\r
-    DllEntryPoint\r
-    NPGetCaps\r
-    NPLogonNotify\r
-    NPPasswordChangeNotify\r
-    KFW_Logon_Event\r
-    LogonEventHandlerA\r
-\r
-\r
-\r
-\r
+LIBRARY KFWLOGON
+
+EXPORTS
+
+    DllEntryPoint
+    NPGetCaps
+    NPLogonNotify
+    NPPasswordChangeNotify
+    KFW_Logon_Event
+    LogonEventHandlerA
+
+
+
+