aboutsummaryrefslogtreecommitdiff
path: root/doc/doxyout/krb5
diff options
context:
space:
mode:
Diffstat (limited to 'doc/doxyout/krb5')
-rw-r--r--doc/doxyout/krb5/html/annotated.html7
-rw-r--r--doc/doxyout/krb5/html/classes.html22
-rw-r--r--doc/doxyout/krb5/html/doxygen.css441
-rw-r--r--doc/doxyout/krb5/html/doxygen.pngbin3779 -> 0 bytes
-rw-r--r--doc/doxyout/krb5/html/doxygen.svg26
-rw-r--r--doc/doxyout/krb5/html/dynsections.js28
-rw-r--r--doc/doxyout/krb5/html/graph_legend.html48
-rw-r--r--doc/doxyout/krb5/html/graph_legend.md52
-rw-r--r--doc/doxyout/krb5/html/graph_legend.pngbin26272 -> 20848 bytes
-rw-r--r--doc/doxyout/krb5/html/group__krb5.html15
-rw-r--r--doc/doxyout/krb5/html/group__krb5__address.html9
-rw-r--r--doc/doxyout/krb5/html/group__krb5__auth.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__ccache.html185
-rw-r--r--doc/doxyout/krb5/html/group__krb5__credential.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__crypto.html9
-rw-r--r--doc/doxyout/krb5/html/group__krb5__deprecated.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__digest.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__error.html62
-rw-r--r--doc/doxyout/krb5/html/group__krb5__keytab.html41
-rw-r--r--doc/doxyout/krb5/html/group__krb5__pac.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__principal.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__storage.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__support.html26
-rw-r--r--doc/doxyout/krb5/html/group__krb5__ticket.html7
-rw-r--r--doc/doxyout/krb5/html/group__krb5__v4compat.html9
-rw-r--r--doc/doxyout/krb5/html/index.html14
-rw-r--r--doc/doxyout/krb5/html/jquery.js94
-rw-r--r--doc/doxyout/krb5/html/krb5_ccache_intro.html61
-rw-r--r--doc/doxyout/krb5/html/krb5_fileformats.html83
-rw-r--r--doc/doxyout/krb5/html/krb5_init_creds_intro.html10
-rw-r--r--doc/doxyout/krb5/html/krb5_introduction.html145
-rw-r--r--doc/doxyout/krb5/html/krb5_keytab_intro.html59
-rw-r--r--doc/doxyout/krb5/html/krb5_principal_intro.html10
-rw-r--r--doc/doxyout/krb5/html/menu.js29
-rw-r--r--doc/doxyout/krb5/html/menudata.js24
-rw-r--r--doc/doxyout/krb5/html/modules.html7
-rw-r--r--doc/doxyout/krb5/html/pages.html7
-rw-r--r--doc/doxyout/krb5/html/structkrb5__crypto__iov.html9
-rw-r--r--doc/doxyout/krb5/html/structkrb5plugin__an2ln__ftable__desc.html9
-rw-r--r--doc/doxyout/krb5/html/structkrb5plugin__db__ftable__desc.html11
-rw-r--r--doc/doxyout/krb5/html/structkrb5plugin__kuserok__ftable__desc.html9
-rw-r--r--doc/doxyout/krb5/html/tabs.css2
-rw-r--r--doc/doxyout/krb5/man/man3/krb5.3204
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_address.384
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_auth.326
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_ccache.3114
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_ccache_intro.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_credential.340
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_crypto.3112
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_crypto_iov.34
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_deprecated.324
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_digest.310
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_error.378
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_fileformats.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_init_creds_intro.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_introduction.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_keytab.390
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_keytab_intro.312
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_pac.314
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_prepend_error_message.31
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_principal.392
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_principal_intro.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_storage.3228
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_support.3114
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_ticket.310
-rw-r--r--doc/doxyout/krb5/man/man3/krb5_v4compat.314
-rw-r--r--doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.36
-rw-r--r--doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.36
-rw-r--r--doc/doxyout/krb5/manpages727
70 files changed, 2191 insertions, 1424 deletions
diff --git a/doc/doxyout/krb5/html/annotated.html b/doc/doxyout/krb5/html/annotated.html
index d9c90114a536..0ecbbec95c8f 100644
--- a/doc/doxyout/krb5/html/annotated.html
+++ b/doc/doxyout/krb5/html/annotated.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -33,6 +34,6 @@ $(function() {
</div><!-- directory -->
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/classes.html b/doc/doxyout/krb5/html/classes.html
index 6ad1847eb080..9deac409ead6 100644
--- a/doc/doxyout/krb5/html/classes.html
+++ b/doc/doxyout/krb5/html/classes.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -23,17 +24,14 @@ $(function() {
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_k">k</a></div>
-<table class="classindex">
-<tr><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structkrb5plugin__an2ln__ftable__desc.html">krb5plugin_an2ln_ftable_desc</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structkrb5plugin__kuserok__ftable__desc.html">krb5plugin_kuserok_ftable_desc</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structkrb5plugin__db__ftable__desc.html">krb5plugin_db_ftable_desc</a>&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
-<tr><td></td><td></td><td></td></tr>
-</table>
-<div class="qindex"><a class="qindex" href="#letter_k">k</a></div>
+<div class="qindex"><a class="qindex" href="#letter_K">K</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_K">K</a></dt>
+<dd><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a></dd><dd><a class="el" href="structkrb5plugin__an2ln__ftable__desc.html">krb5plugin_an2ln_ftable_desc</a></dd><dd><a class="el" href="structkrb5plugin__db__ftable__desc.html">krb5plugin_db_ftable_desc</a></dd><dd><a class="el" href="structkrb5plugin__kuserok__ftable__desc.html">krb5plugin_kuserok_ftable_desc</a></dd></dl>
+</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/doxygen.css b/doc/doxyout/krb5/html/doxygen.css
index 4f1ab9195b44..ffbff0224931 100644
--- a/doc/doxyout/krb5/html/doxygen.css
+++ b/doc/doxyout/krb5/html/doxygen.css
@@ -1,4 +1,4 @@
-/* The standard CSS for doxygen 1.8.13 */
+/* The standard CSS for doxygen 1.9.1 */
body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif;
@@ -53,17 +53,24 @@ dt {
font-weight: bold;
}
-div.multicol {
+ul.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
+ column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
+ column-count: 3;
}
p.startli, p.startdd {
margin-top: 2px;
}
+th p.starttd, th p.intertd, th p.endtd {
+ font-size: 100%;
+ font-weight: 700;
+}
+
p.starttd {
margin-top: 0px;
}
@@ -80,6 +87,15 @@ p.endtd {
margin-bottom: 2px;
}
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
/* @end */
caption {
@@ -87,30 +103,96 @@ caption {
}
span.legend {
- font-size: 70%;
- text-align: center;
+ font-size: 70%;
+ text-align: center;
}
h3.version {
- font-size: 90%;
- text-align: center;
+ font-size: 90%;
+ text-align: center;
}
-div.qindex, div.navtab{
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
+div.navtab {
+ border-right: 1px solid #A3B4D7;
+ padding-right: 15px;
+ text-align: right;
+ line-height: 110%;
}
-div.qindex, div.navpath {
+div.navtab table {
+ border-spacing: 0;
+}
+
+td.navtab {
+ padding-right: 6px;
+ padding-left: 6px;
+}
+td.navtabHL {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ padding-right: 6px;
+ padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+ font-weight: bold;
+}
+
+div.qindex{
+ text-align: center;
width: 100%;
line-height: 140%;
+ font-size: 130%;
+ color: #A0A0A0;
}
-div.navtab {
- margin-right: 15px;
+dt.alphachar{
+ font-size: 180%;
+ font-weight: bold;
}
+.alphachar a{
+ color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+ text-decoration: none;
+}
+
+.classindex dl {
+ padding: 25px;
+ column-count:1
+}
+
+.classindex dd {
+ display:inline-block;
+ margin-left: 50px;
+ width: 90%;
+ line-height: 1.15em;
+}
+
+.classindex dl.odd {
+ background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+ .classindex dl {
+ column-count:2
+ }
+}
+
+@media(min-width: 1320px) {
+ .classindex dl {
+ column-count:3
+ }
+}
+
+
/* @group Link Styling */
a {
@@ -127,19 +209,8 @@ a:hover {
text-decoration: underline;
}
-a.qindex {
- font-weight: bold;
-}
-
-a.qindexHL {
- font-weight: bold;
- background-color: #9CAFD4;
- color: #ffffff;
- border: 1px double #869DCA;
-}
-
.contents a.qindexHL:visited {
- color: #ffffff;
+ color: #FFFFFF;
}
a.el {
@@ -163,6 +234,25 @@ dl.el {
margin-left: -1cm;
}
+ul {
+ overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+ overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+ overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+ text-align: left;
+ direction: ltr;
+ overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+ overflow-y: hidden;
+}
+
pre.fragment {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
@@ -177,8 +267,8 @@ pre.fragment {
}
div.fragment {
- padding: 0px;
- margin: 4px 8px 4px 2px;
+ padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+ margin: 4px 8px 4px 2px;
background-color: #FBFCFD;
border: 1px solid #C4CFE5;
}
@@ -248,7 +338,7 @@ span.lineno a:hover {
div.ah, span.ah {
background-color: black;
font-weight: bold;
- color: #ffffff;
+ color: #FFFFFF;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
@@ -324,7 +414,7 @@ img.formulaDsp {
}
-img.formulaInl {
+img.formulaInl, img.inline {
vertical-align: middle;
}
@@ -402,6 +492,13 @@ blockquote {
padding: 0 12px 0 16px;
}
+blockquote.DocNodeRTL {
+ border-left: 0;
+ border-right: 2px solid #9CAFD4;
+ margin: 0 4px 0 24px;
+ padding: 0 16px 0 12px;
+}
+
/* @end */
/*
@@ -498,7 +595,7 @@ table.memberdecls {
white-space: nowrap;
}
-.memItemRight {
+.memItemRight, .memTemplItemRight {
width: 100%;
}
@@ -666,17 +763,17 @@ dl.reflist dd {
padding-left: 0px;
}
-.params .paramname, .retval .paramname {
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
font-weight: bold;
vertical-align: top;
}
-.params .paramtype {
+.params .paramtype, .tparams .paramtype {
font-style: italic;
vertical-align: top;
}
-.params .paramdir {
+.params .paramdir, .tparams .paramdir {
font-family: "courier new",courier,monospace;
vertical-align: top;
}
@@ -1081,72 +1178,143 @@ div.headertitle
padding: 5px 5px 5px 10px;
}
-dl
-{
- padding: 0 0 0 10px;
+.PageDocRTL-title div.headertitle {
+ text-align: right;
+ direction: rtl;
}
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
-dl.section
-{
+dl {
+ padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
margin-left: 0px;
padding-left: 0px;
}
-dl.note
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #D0C000;
+dl.section.DocNodeRTL {
+ margin-right: 0px;
+ padding-right: 0px;
}
-dl.warning, dl.attention
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #FF0000;
+dl.note {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #D0C000;
}
-dl.pre, dl.post, dl.invariant
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #00D000;
+dl.note.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #FF0000;
}
-dl.deprecated
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #505050;
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #FF0000;
}
-dl.todo
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #00C0E0;
+dl.pre, dl.post, dl.invariant {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00D000;
}
-dl.test
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #3030E0;
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00D000;
}
-dl.bug
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #C08050;
+dl.deprecated {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #505050;
+}
+
+dl.todo {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #C08050;
}
dl.section dd {
@@ -1245,10 +1413,12 @@ dl.citelist dt {
font-weight:bold;
margin-right:10px;
padding:5px;
+ text-align:right;
+ width:52px;
}
dl.citelist dd {
- margin:2px 0;
+ margin:2px 0 2px 72px;
padding:5px 0;
}
@@ -1263,6 +1433,11 @@ div.toc {
width: 200px;
}
+.PageDocRTL-title div.toc {
+ float: left !important;
+ text-align: right;
+}
+
div.toc li {
background: url("bdwn.png") no-repeat scroll 0 5px transparent;
font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
@@ -1271,6 +1446,12 @@ div.toc li {
padding-top: 2px;
}
+.PageDocRTL-title div.toc li {
+ background-position-x: right !important;
+ padding-left: 0 !important;
+ padding-right: 10px;
+}
+
div.toc h3 {
font: bold 12px/1.2 Arial,FreeSans,sans-serif;
color: #4665A2;
@@ -1300,6 +1481,32 @@ div.toc li.level4 {
margin-left: 45px;
}
+span.emoji {
+ /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+ * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+ */
+}
+
+.PageDocRTL-title div.toc li.level1 {
+ margin-left: 0 !important;
+ margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+ margin-left: 0 !important;
+ margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+ margin-left: 0 !important;
+ margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+ margin-left: 0 !important;
+ margin-right: 45px;
+}
+
.inherit_header {
font-weight: bold;
color: gray;
@@ -1413,7 +1620,7 @@ tr.heading h2 {
}
#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
- border-top-color: #ffffff;
+ border-top-color: #FFFFFF;
border-width: 10px;
margin: 0px -10px;
}
@@ -1441,7 +1648,7 @@ tr.heading h2 {
}
#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
- border-bottom-color: #ffffff;
+ border-bottom-color: #FFFFFF;
border-width: 10px;
margin: 0px -10px;
}
@@ -1468,7 +1675,7 @@ tr.heading h2 {
left: 100%;
}
#powerTip.e:after {
- border-left-color: #ffffff;
+ border-left-color: #FFFFFF;
border-width: 10px;
top: 50%;
margin-top: -10px;
@@ -1484,7 +1691,7 @@ tr.heading h2 {
right: 100%;
}
#powerTip.w:after {
- border-right-color: #ffffff;
+ border-right-color: #FFFFFF;
border-width: 10px;
top: 50%;
margin-top: -10px;
@@ -1517,7 +1724,6 @@ tr.heading h2 {
/* @group Markdown */
-/*
table.markdownTable {
border-collapse:collapse;
margin-top: 4px;
@@ -1529,15 +1735,10 @@ table.markdownTable td, table.markdownTable th {
padding: 3px 7px 2px;
}
-table.markdownTableHead tr {
-}
-
-table.markdownTableBodyLeft td, table.markdownTable th {
- border: 1px solid #2D4068;
- padding: 3px 7px 2px;
+table.markdownTable tr {
}
-th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
@@ -1545,52 +1746,48 @@ th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th
padding-top: 5px;
}
-th.markdownTableHeadLeft {
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
text-align: left
}
-th.markdownTableHeadRight {
+th.markdownTableHeadRight, td.markdownTableBodyRight {
text-align: right
}
-th.markdownTableHeadCenter {
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
text-align: center
}
-*/
-
-table.markdownTable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-table.markdownTable td, table.markdownTable th {
- border: 1px solid #2D4068;
- padding: 3px 7px 2px;
+.DocNodeRTL {
+ text-align: right;
+ direction: rtl;
}
-table.markdownTable tr {
+.DocNodeLTR {
+ text-align: left;
+ direction: ltr;
}
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
- background-color: #374F7F;
- color: #FFFFFF;
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
+table.DocNodeRTL {
+ width: auto;
+ margin-right: 0;
+ margin-left: auto;
}
-th.markdownTableHeadLeft, td.markdownTableBodyLeft {
- text-align: left
+table.DocNodeLTR {
+ width: auto;
+ margin-right: auto;
+ margin-left: 0;
}
-th.markdownTableHeadRight, td.markdownTableBodyRight {
- text-align: right
+tt, code, kbd, samp
+{
+ display: inline-block;
+ direction:ltr;
}
+/* @end */
-th.markdownTableHeadCenter, td.markdownTableBodyCenter {
- text-align: center
+u {
+ text-decoration: underline;
}
-
-/* @end */
diff --git a/doc/doxyout/krb5/html/doxygen.png b/doc/doxyout/krb5/html/doxygen.png
deleted file mode 100644
index 3ff17d807fd8..000000000000
--- a/doc/doxyout/krb5/html/doxygen.png
+++ /dev/null
Binary files differ
diff --git a/doc/doxyout/krb5/html/doxygen.svg b/doc/doxyout/krb5/html/doxygen.svg
new file mode 100644
index 000000000000..d42dad52d5d1
--- /dev/null
+++ b/doc/doxyout/krb5/html/doxygen.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="a">
+ <stop stop-color="#5373B4" offset="0"/>
+ <stop stop-color="#7C95C6" offset="1"/>
+ </linearGradient>
+ <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#C0CCE3" offset="0"/>
+ <stop stop-color="#EEF1F7" offset="1"/>
+ </linearGradient>
+ <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+ <feGaussianBlur stdDeviation="0.45293203"/>
+ </filter>
+ </defs>
+ <g>
+ <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+ <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+ <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
+ <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+ <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/doc/doxyout/krb5/html/dynsections.js b/doc/doxyout/krb5/html/dynsections.js
index 85e183690954..3174bd7bebbf 100644
--- a/doc/doxyout/krb5/html/dynsections.js
+++ b/doc/doxyout/krb5/html/dynsections.js
@@ -1,3 +1,27 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ 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.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
@@ -15,7 +39,7 @@ function toggleVisibility(linkObj)
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
- }
+ }
return false;
}
@@ -94,4 +118,4 @@ function toggleInherit(id)
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
-
+/* @license-end */
diff --git a/doc/doxyout/krb5/html/graph_legend.html b/doc/doxyout/krb5/html/graph_legend.html
index a281b0a88743..c41cc4cdb447 100644
--- a/doc/doxyout/krb5/html/graph_legend.html
+++ b/doc/doxyout/krb5/html/graph_legend.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -24,11 +25,42 @@ $(function() {
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
-<p>Consider the following example: </p><div class="fragment"><div class="line">/*! Invisible class because of truncation */</div><div class="line">class Invisible { };</div><div class="line"></div><div class="line">/*! Truncated class, inheritance relation is hidden */</div><div class="line">class Truncated : public Invisible { };</div><div class="line"></div><div class="line">/* Class not documented with doxygen comments */</div><div class="line">class Undocumented { };</div><div class="line"></div><div class="line">/*! Class that is inherited using public inheritance */</div><div class="line">class PublicBase : public Truncated { };</div><div class="line"></div><div class="line">/*! A template class */</div><div class="line">template&lt;class T&gt; class Templ { };</div><div class="line"></div><div class="line">/*! Class that is inherited using protected inheritance */</div><div class="line">class ProtectedBase { };</div><div class="line"></div><div class="line">/*! Class that is inherited using private inheritance */</div><div class="line">class PrivateBase { };</div><div class="line"></div><div class="line">/*! Class that is used by the Inherited class */</div><div class="line">class Used { };</div><div class="line"></div><div class="line">/*! Super class that inherits a number of other classes */</div><div class="line">class Inherited : public PublicBase,</div><div class="line"> protected ProtectedBase,</div><div class="line"> private PrivateBase,</div><div class="line"> public Undocumented,</div><div class="line"> public Templ&lt;int&gt;</div><div class="line">{</div><div class="line"> private:</div><div class="line"> Used *m_usedClass;</div><div class="line">};</div></div><!-- fragment --><p> This will result in the following graph:</p>
-<center><div class="image">
-<img src="graph_legend.png"/>
-</div>
-</center><p>The boxes in the above graph have the following meaning: </p>
+<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
+<div class="line"><span class="keyword">class </span>Invisible { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
+<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
+<div class="line"><span class="keyword">class </span>Undocumented { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! A template class */</span></div>
+<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
+<div class="line"><span class="keyword">class </span>Used { };</div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
+<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
+<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
+<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
+<div class="line"> <span class="keyword">public</span> Undocumented,</div>
+<div class="line"> <span class="keyword">public</span> Templ&lt;int&gt;</div>
+<div class="line">{</div>
+<div class="line"> <span class="keyword">private</span>:</div>
+<div class="line"> Used *m_usedClass;</div>
+<div class="line">};</div>
+</div><!-- fragment --><p> This will result in the following graph:</p>
+<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
@@ -54,6 +86,6 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
</ul>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/graph_legend.md5 b/doc/doxyout/krb5/html/graph_legend.md5
index a06ed050cbb5..8fcdccd1b9be 100644
--- a/doc/doxyout/krb5/html/graph_legend.md5
+++ b/doc/doxyout/krb5/html/graph_legend.md5
@@ -1 +1 @@
-387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file
+f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file
diff --git a/doc/doxyout/krb5/html/graph_legend.png b/doc/doxyout/krb5/html/graph_legend.png
index d1fdf389c3b6..f323741337e1 100644
--- a/doc/doxyout/krb5/html/graph_legend.png
+++ b/doc/doxyout/krb5/html/graph_legend.png
Binary files differ
diff --git a/doc/doxyout/krb5/html/group__krb5.html b/doc/doxyout/krb5/html/group__krb5.html
index d584f02016b5..3ccc2b494f5a 100644
--- a/doc/doxyout/krb5/html/group__krb5.html
+++ b/doc/doxyout/krb5/html/group__krb5.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -291,7 +292,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return TRUE if `mcreds' and `creds' are equal (`whichfields' determines what equal means).</p>
+<p>Return TRUE if &lsquo;mcreds&rsquo; and &lsquo;creds&rsquo; are equal (&lsquo;whichfields&rsquo; determines what equal means).</p>
<p>The following flags, set in whichfields affects the comparison:</p><ul>
<li>KRB5_TC_MATCH_SRV_NAMEONLY Consider all realms equal when comparing the service principal.</li>
<li>KRB5_TC_MATCH_KEYTYPE Compare enctypes.</li>
@@ -516,7 +517,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Copy the list of realms from `from' to `to'.</p>
+<p>Copy the list of realms from &lsquo;from&rsquo; to &lsquo;to&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Kerberos 5 context. </td></tr>
@@ -1504,8 +1505,8 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return an `struct addrinfo *' for a KDC host.</p>
-<p>Returns an the struct addrinfo in in that corresponds to the information in `host'. free:ing is handled by krb5_krbhst_free, so the returned ai must not be released. </p>
+<p>Return an &lsquo;struct addrinfo *&rsquo; for a KDC host.</p>
+<p>Returns an the struct addrinfo in in that corresponds to the information in &lsquo;host&rsquo;. free:ing is handled by krb5_krbhst_free, so the returned ai must not be released. </p>
</div>
</div>
@@ -2216,6 +2217,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__address.html b/doc/doxyout/krb5/html/group__krb5__address.html
index 7278e5a963bd..e42359a01754 100644
--- a/doc/doxyout/krb5/html/group__krb5__address.html
+++ b/doc/doxyout/krb5/html/group__krb5__address.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -260,7 +261,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Calculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low' and `high'.</p>
+<p>Calculate the boundary addresses of &lsquo;inaddr&rsquo;/&lsquo;prefixlen&rsquo; and store them in &lsquo;low&rsquo; and &lsquo;high&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context </td></tr>
@@ -981,6 +982,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__auth.html b/doc/doxyout/krb5/html/group__krb5__auth.html
index 6d60591d7ba9..0828ff61b3c6 100644
--- a/doc/doxyout/krb5/html/group__krb5__auth.html
+++ b/doc/doxyout/krb5/html/group__krb5__auth.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -314,6 +315,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__ccache.html b/doc/doxyout/krb5/html/group__krb5__ccache.html
index 818398824bd0..e6ed9e59e2e5 100644
--- a/doc/doxyout/krb5/html/group__krb5__ccache.html
+++ b/doc/doxyout/krb5/html/group__krb5__ccache.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -168,7 +169,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Destroy the cursor `cursor'.</p>
+<p>Destroy the cursor &lsquo;cursor&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -248,7 +249,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Search for a matching credential cache that have the `principal' as the default principal. On success, `id' needs to be freed with <a class="el" href="group__krb5__ccache.html#gaebc0dd2a77529c05fb49e27235da7017">krb5_cc_close()</a> or <a class="el" href="group__krb5__ccache.html#ga3115bcccd71594374831caa9a07b1290">krb5_cc_destroy()</a>.</p>
+<p>Search for a matching credential cache that have the &lsquo;principal&rsquo; as the default principal. On success, &lsquo;id&rsquo; needs to be freed with <a class="el" href="group__krb5__ccache.html#gaebc0dd2a77529c05fb49e27235da7017">krb5_cc_close()</a> or <a class="el" href="group__krb5__ccache.html#ga3115bcccd71594374831caa9a07b1290">krb5_cc_destroy()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>A Kerberos 5 context </td></tr>
@@ -257,7 +258,7 @@ Variables</h2></td></tr>
</table>
</dd>
</dl>
-<dl class="section return"><dt>Returns</dt><dd>On failure, error code is returned and `id' is set to NULL. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>On failure, error code is returned and &lsquo;id&rsquo; is set to NULL. </dd></dl>
</div>
</div>
@@ -292,7 +293,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the next cache pointed to by (`cursor') in `id' and advance `cursor'.</p>
+<p>Retrieve the next cache pointed to by (&lsquo;cursor&rsquo;) in &lsquo;id&rsquo; and advance &lsquo;cursor&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>A Kerberos 5 context </td></tr>
@@ -320,7 +321,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Clear `mcreds' so it can be used with krb5_cc_retrieve_cred </p>
+<p>Clear &lsquo;mcreds&rsquo; so it can be used with krb5_cc_retrieve_cred </p>
</div>
</div>
@@ -349,7 +350,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Stop using the ccache `id' and free the related resources.</p>
+<p>Stop using the ccache &lsquo;id&rsquo; and free the related resources.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -474,7 +475,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Copy the contents of `from' to `to' if the given match function return true.</p>
+<p>Copy the contents of &lsquo;from&rsquo; to &lsquo;to&rsquo; if the given match function return true.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>A Kerberos 5 context. </td></tr>
@@ -515,7 +516,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Open the default ccache in `id'.</p>
+<p>Open the default ccache in &lsquo;id&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -565,7 +566,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Remove the ccache `id'.</p>
+<p>Remove the ccache &lsquo;id&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -601,7 +602,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Destroy the cursor `cursor'. </p>
+<p>Destroy the cursor &lsquo;cursor&rsquo;. </p>
</div>
</div>
@@ -636,7 +637,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a new ccache of type `ops' in `id'.</p>
+<p>Generate a new ccache of type &lsquo;ops&rsquo; in &lsquo;id&rsquo;.</p>
<p>Deprecated: use <a class="el" href="group__krb5__ccache.html#ga86c0f70d0c2b5de2d876edf4b693b5b9">krb5_cc_new_unique()</a> instead.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
@@ -730,7 +731,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Get the flags of `id', store them in `flags'. </p>
+<p>Get the flags of &lsquo;id&rsquo;, store them in &lsquo;flags&rsquo;. </p>
</div>
</div>
@@ -931,7 +932,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the name of the ccache `id' </p>
+<p>Return the name of the ccache &lsquo;id&rsquo; </p>
</div>
</div>
@@ -960,7 +961,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return krb5_cc_ops of a the ccache `id'. </p>
+<p>Return krb5_cc_ops of a the ccache &lsquo;id&rsquo;. </p>
</div>
</div>
@@ -989,7 +990,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Get the cc ops that is registered in `context' to handle the prefix. prefix can be a complete credential cache name or a prefix, the function will only use part up to the first colon (:) if there is one. If prefix the argument is NULL, the default ccache implemtation is returned.</p>
+<p>Get the cc ops that is registered in &lsquo;context&rsquo; to handle the prefix. prefix can be a complete credential cache name or a prefix, the function will only use part up to the first colon (:) if there is one. If prefix the argument is NULL, the default ccache implemtation is returned.</p>
<dl class="section return"><dt>Returns</dt><dd>Returns NULL if ops not found. </dd></dl>
</div>
@@ -1025,7 +1026,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the principal of `id' in `principal'.</p>
+<p>Return the principal of &lsquo;id&rsquo; in &lsquo;principal&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -1055,7 +1056,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the type of the ccache `id'. </p>
+<p>Return the type of the ccache &lsquo;id&rsquo;. </p>
</div>
</div>
@@ -1084,7 +1085,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the version of `id'. </p>
+<p>Return the version of &lsquo;id&rsquo;. </p>
</div>
</div>
@@ -1119,7 +1120,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Create a new ccache in `id' for `primary_principal'.</p>
+<p>Create a new ccache in &lsquo;id&rsquo; for &lsquo;primary_principal&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -1249,7 +1250,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Generates a new unique ccache of <code>type</code> in `id'. If `type' is NULL, the library chooses the default credential cache type. The supplied `hint' (that can be NULL) is a string that the credential cache type can use to base the name of the credential on, this is to make it easier for the user to differentiate the credentials.</p>
+<p>Generates a new unique ccache of <code>type</code> in &lsquo;id&rsquo;. If &lsquo;type&rsquo; is NULL, the library chooses the default credential cache type. The supplied &lsquo;hint&rsquo; (that can be NULL) is a string that the credential cache type can use to base the name of the credential on, this is to make it easier for the user to differentiate the credentials.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -1291,7 +1292,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the next cred pointed to by (`id', `cursor') in `creds' and advance `cursor'.</p>
+<p>Retrieve the next cred pointed to by (&lsquo;id&rsquo;, &lsquo;cursor&rsquo;) in &lsquo;creds&rsquo; and advance &lsquo;cursor&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -1327,7 +1328,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Add a new ccache type with operations `ops', overwriting any existing one if `override'.</p>
+<p>Add a new ccache type with operations &lsquo;ops&rsquo;, overwriting any existing one if &lsquo;override&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context </td></tr>
@@ -1377,7 +1378,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Remove the credential identified by `cred', `which' from `id'. </p>
+<p>Remove the credential identified by &lsquo;cred&rsquo;, &lsquo;which&rsquo; from &lsquo;id&rsquo;. </p>
</div>
</div>
@@ -1412,7 +1413,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Find and allocate a ccache in `id' from the specification in `residual'. If the ccache name doesn't contain any colon, interpret it as a file name.</p>
+<p>Find and allocate a ccache in &lsquo;id&rsquo; from the specification in &lsquo;residual&rsquo;. If the ccache name doesn't contain any colon, interpret it as a file name.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -1468,7 +1469,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the credential identified by `mcreds' (and `whichfields') from `id' in `creds'. 'creds' must be free by the caller using krb5_free_cred_contents.</p>
+<p>Retrieve the credential identified by &lsquo;mcreds&rsquo; (and &lsquo;whichfields&rsquo;) from &lsquo;id&rsquo; in &lsquo;creds&rsquo;. 'creds' must be free by the caller using krb5_free_cred_contents.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>A Kerberos 5 context </td></tr>
@@ -1565,7 +1566,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Set the default cc name for `context' to `name'. </p>
+<p>Set the default cc name for &lsquo;context&rsquo; to &lsquo;name&rsquo;. </p>
</div>
</div>
@@ -1600,7 +1601,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Set the flags of `id' to `flags'. </p>
+<p>Set the flags of &lsquo;id&rsquo; to &lsquo;flags&rsquo;. </p>
</div>
</div>
@@ -1716,7 +1717,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Start iterating over `id', `cursor' is initialized to the beginning. Caller must free the cursor with <a class="el" href="group__krb5__ccache.html#ga024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get()</a>.</p>
+<p>Start iterating over &lsquo;id&rsquo;, &lsquo;cursor&rsquo; is initialized to the beginning. Caller must free the cursor with <a class="el" href="group__krb5__ccache.html#ga024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -1752,7 +1753,7 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Store `creds' in the ccache `id'.</p>
+<p>Store &lsquo;creds&rsquo; in the ccache &lsquo;id&rsquo;.</p>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
</div>
@@ -2083,7 +2084,35 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> KRB5_CC_OPS_VERSION,</div><div class="line"> <span class="stringliteral">&quot;API&quot;</span>,</div><div class="line"> acc_get_name,</div><div class="line"> acc_resolve,</div><div class="line"> acc_gen_new,</div><div class="line"> acc_initialize,</div><div class="line"> acc_destroy,</div><div class="line"> acc_close,</div><div class="line"> acc_store_cred,</div><div class="line"> NULL, </div><div class="line"> acc_get_principal,</div><div class="line"> acc_get_first,</div><div class="line"> acc_get_next,</div><div class="line"> acc_end_get,</div><div class="line"> acc_remove_cred,</div><div class="line"> acc_set_flags,</div><div class="line"> acc_get_version,</div><div class="line"> acc_get_cache_first,</div><div class="line"> acc_get_cache_next,</div><div class="line"> acc_end_cache_get,</div><div class="line"> acc_move,</div><div class="line"> acc_get_default_name,</div><div class="line"> acc_set_default,</div><div class="line"> acc_lastchange,</div><div class="line"> NULL,</div><div class="line"> NULL,</div><div class="line">}</div></div><!-- fragment --><p>Variable containing the API based credential cache implemention. </p>
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
+<div class="line"> KRB5_CC_OPS_VERSION,</div>
+<div class="line"> <span class="stringliteral">&quot;API&quot;</span>,</div>
+<div class="line"> acc_get_name,</div>
+<div class="line"> acc_resolve,</div>
+<div class="line"> acc_gen_new,</div>
+<div class="line"> acc_initialize,</div>
+<div class="line"> acc_destroy,</div>
+<div class="line"> acc_close,</div>
+<div class="line"> acc_store_cred,</div>
+<div class="line"> NULL, </div>
+<div class="line"> acc_get_principal,</div>
+<div class="line"> acc_get_first,</div>
+<div class="line"> acc_get_next,</div>
+<div class="line"> acc_end_get,</div>
+<div class="line"> acc_remove_cred,</div>
+<div class="line"> acc_set_flags,</div>
+<div class="line"> acc_get_version,</div>
+<div class="line"> acc_get_cache_first,</div>
+<div class="line"> acc_get_cache_next,</div>
+<div class="line"> acc_end_cache_get,</div>
+<div class="line"> acc_move,</div>
+<div class="line"> acc_get_default_name,</div>
+<div class="line"> acc_set_default,</div>
+<div class="line"> acc_lastchange,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL,</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Variable containing the API based credential cache implemention. </p>
</div>
</div>
@@ -2098,7 +2127,35 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> KRB5_CC_OPS_VERSION,</div><div class="line"> <span class="stringliteral">&quot;DIR&quot;</span>,</div><div class="line"> dcc_get_name,</div><div class="line"> dcc_resolve,</div><div class="line"> dcc_gen_new,</div><div class="line"> dcc_initialize,</div><div class="line"> dcc_destroy,</div><div class="line"> dcc_close,</div><div class="line"> dcc_store_cred,</div><div class="line"> NULL, </div><div class="line"> dcc_get_principal,</div><div class="line"> dcc_get_first,</div><div class="line"> dcc_get_next,</div><div class="line"> dcc_end_get,</div><div class="line"> dcc_remove_cred,</div><div class="line"> dcc_set_flags,</div><div class="line"> dcc_get_version,</div><div class="line"> dcc_get_cache_first,</div><div class="line"> dcc_get_cache_next,</div><div class="line"> dcc_end_cache_get,</div><div class="line"> dcc_move,</div><div class="line"> dcc_get_default_name,</div><div class="line"> dcc_set_default,</div><div class="line"> dcc_lastchange,</div><div class="line"> dcc_set_kdc_offset,</div><div class="line"> dcc_get_kdc_offset</div><div class="line">}</div></div><!-- fragment --><p>Variable containing the DIR based credential cache implemention. </p>
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
+<div class="line"> KRB5_CC_OPS_VERSION,</div>
+<div class="line"> <span class="stringliteral">&quot;DIR&quot;</span>,</div>
+<div class="line"> dcc_get_name,</div>
+<div class="line"> dcc_resolve,</div>
+<div class="line"> dcc_gen_new,</div>
+<div class="line"> dcc_initialize,</div>
+<div class="line"> dcc_destroy,</div>
+<div class="line"> dcc_close,</div>
+<div class="line"> dcc_store_cred,</div>
+<div class="line"> NULL, </div>
+<div class="line"> dcc_get_principal,</div>
+<div class="line"> dcc_get_first,</div>
+<div class="line"> dcc_get_next,</div>
+<div class="line"> dcc_end_get,</div>
+<div class="line"> dcc_remove_cred,</div>
+<div class="line"> dcc_set_flags,</div>
+<div class="line"> dcc_get_version,</div>
+<div class="line"> dcc_get_cache_first,</div>
+<div class="line"> dcc_get_cache_next,</div>
+<div class="line"> dcc_end_cache_get,</div>
+<div class="line"> dcc_move,</div>
+<div class="line"> dcc_get_default_name,</div>
+<div class="line"> dcc_set_default,</div>
+<div class="line"> dcc_lastchange,</div>
+<div class="line"> dcc_set_kdc_offset,</div>
+<div class="line"> dcc_get_kdc_offset</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Variable containing the DIR based credential cache implemention. </p>
</div>
</div>
@@ -2113,7 +2170,35 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> KRB5_CC_OPS_VERSION,</div><div class="line"> <span class="stringliteral">&quot;FILE&quot;</span>,</div><div class="line"> fcc_get_name,</div><div class="line"> fcc_resolve,</div><div class="line"> fcc_gen_new,</div><div class="line"> fcc_initialize,</div><div class="line"> fcc_destroy,</div><div class="line"> fcc_close,</div><div class="line"> fcc_store_cred,</div><div class="line"> NULL, </div><div class="line"> fcc_get_principal,</div><div class="line"> fcc_get_first,</div><div class="line"> fcc_get_next,</div><div class="line"> fcc_end_get,</div><div class="line"> fcc_remove_cred,</div><div class="line"> fcc_set_flags,</div><div class="line"> fcc_get_version,</div><div class="line"> fcc_get_cache_first,</div><div class="line"> fcc_get_cache_next,</div><div class="line"> fcc_end_cache_get,</div><div class="line"> fcc_move,</div><div class="line"> fcc_get_default_name,</div><div class="line"> NULL,</div><div class="line"> fcc_lastchange,</div><div class="line"> fcc_set_kdc_offset,</div><div class="line"> fcc_get_kdc_offset</div><div class="line">}</div></div><!-- fragment --><p>Variable containing the FILE based credential cache implemention. </p>
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
+<div class="line"> KRB5_CC_OPS_VERSION,</div>
+<div class="line"> <span class="stringliteral">&quot;FILE&quot;</span>,</div>
+<div class="line"> fcc_get_name,</div>
+<div class="line"> fcc_resolve,</div>
+<div class="line"> fcc_gen_new,</div>
+<div class="line"> fcc_initialize,</div>
+<div class="line"> fcc_destroy,</div>
+<div class="line"> fcc_close,</div>
+<div class="line"> fcc_store_cred,</div>
+<div class="line"> NULL, </div>
+<div class="line"> fcc_get_principal,</div>
+<div class="line"> fcc_get_first,</div>
+<div class="line"> fcc_get_next,</div>
+<div class="line"> fcc_end_get,</div>
+<div class="line"> fcc_remove_cred,</div>
+<div class="line"> fcc_set_flags,</div>
+<div class="line"> fcc_get_version,</div>
+<div class="line"> fcc_get_cache_first,</div>
+<div class="line"> fcc_get_cache_next,</div>
+<div class="line"> fcc_end_cache_get,</div>
+<div class="line"> fcc_move,</div>
+<div class="line"> fcc_get_default_name,</div>
+<div class="line"> NULL,</div>
+<div class="line"> fcc_lastchange,</div>
+<div class="line"> fcc_set_kdc_offset,</div>
+<div class="line"> fcc_get_kdc_offset</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Variable containing the FILE based credential cache implemention. </p>
</div>
</div>
@@ -2128,12 +2213,40 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> KRB5_CC_OPS_VERSION,</div><div class="line"> <span class="stringliteral">&quot;MEMORY&quot;</span>,</div><div class="line"> mcc_get_name,</div><div class="line"> mcc_resolve,</div><div class="line"> mcc_gen_new,</div><div class="line"> mcc_initialize,</div><div class="line"> mcc_destroy,</div><div class="line"> mcc_close,</div><div class="line"> mcc_store_cred,</div><div class="line"> NULL, </div><div class="line"> mcc_get_principal,</div><div class="line"> mcc_get_first,</div><div class="line"> mcc_get_next,</div><div class="line"> mcc_end_get,</div><div class="line"> mcc_remove_cred,</div><div class="line"> mcc_set_flags,</div><div class="line"> NULL,</div><div class="line"> mcc_get_cache_first,</div><div class="line"> mcc_get_cache_next,</div><div class="line"> mcc_end_cache_get,</div><div class="line"> mcc_move,</div><div class="line"> mcc_default_name,</div><div class="line"> NULL,</div><div class="line"> mcc_lastchange,</div><div class="line"> mcc_set_kdc_offset,</div><div class="line"> mcc_get_kdc_offset</div><div class="line">}</div></div><!-- fragment --><p>Variable containing the MEMORY based credential cache implemention. </p>
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
+<div class="line"> KRB5_CC_OPS_VERSION,</div>
+<div class="line"> <span class="stringliteral">&quot;MEMORY&quot;</span>,</div>
+<div class="line"> mcc_get_name,</div>
+<div class="line"> mcc_resolve,</div>
+<div class="line"> mcc_gen_new,</div>
+<div class="line"> mcc_initialize,</div>
+<div class="line"> mcc_destroy,</div>
+<div class="line"> mcc_close,</div>
+<div class="line"> mcc_store_cred,</div>
+<div class="line"> NULL, </div>
+<div class="line"> mcc_get_principal,</div>
+<div class="line"> mcc_get_first,</div>
+<div class="line"> mcc_get_next,</div>
+<div class="line"> mcc_end_get,</div>
+<div class="line"> mcc_remove_cred,</div>
+<div class="line"> mcc_set_flags,</div>
+<div class="line"> NULL,</div>
+<div class="line"> mcc_get_cache_first,</div>
+<div class="line"> mcc_get_cache_next,</div>
+<div class="line"> mcc_end_cache_get,</div>
+<div class="line"> mcc_move,</div>
+<div class="line"> mcc_default_name,</div>
+<div class="line"> NULL,</div>
+<div class="line"> mcc_lastchange,</div>
+<div class="line"> mcc_set_kdc_offset,</div>
+<div class="line"> mcc_get_kdc_offset</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Variable containing the MEMORY based credential cache implemention. </p>
</div>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__credential.html b/doc/doxyout/krb5/html/group__krb5__credential.html
index 57e8b2efcfc1..30a59c83bc82 100644
--- a/doc/doxyout/krb5/html/group__krb5__credential.html
+++ b/doc/doxyout/krb5/html/group__krb5__credential.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -841,6 +842,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__crypto.html b/doc/doxyout/krb5/html/group__krb5__crypto.html
index 10e372b65bc4..51196988472a 100644
--- a/doc/doxyout/krb5/html/group__krb5__crypto.html
+++ b/doc/doxyout/krb5/html/group__krb5__crypto.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -1314,7 +1315,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Fill in `key' with key data of type `enctype' from `data' of length `size'. Key should be freed using <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a>.</p>
+<p>Fill in &lsquo;key&rsquo; with key data of type &lsquo;enctype&rsquo; from &lsquo;data&rsquo; of length &lsquo;size&rsquo;. Key should be freed using <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success or a Kerberos 5 error code </dd></dl>
</div>
@@ -1469,6 +1470,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__deprecated.html b/doc/doxyout/krb5/html/group__krb5__deprecated.html
index 3ecdc66f8aa3..5af8ab4238bf 100644
--- a/doc/doxyout/krb5/html/group__krb5__deprecated.html
+++ b/doc/doxyout/krb5/html/group__krb5__deprecated.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -1261,6 +1262,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__digest.html b/doc/doxyout/krb5/html/group__krb5__digest.html
index 70da5a7ababf..31bb77cc297a 100644
--- a/doc/doxyout/krb5/html/group__krb5__digest.html
+++ b/doc/doxyout/krb5/html/group__krb5__digest.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -86,6 +87,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__error.html b/doc/doxyout/krb5/html/group__krb5__error.html
index c0f4654f62b5..98854a2d496e 100644
--- a/doc/doxyout/krb5/html/group__krb5__error.html
+++ b/doc/doxyout/krb5/html/group__krb5__error.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -40,6 +41,8 @@ Functions</h2></td></tr>
<tr class="separator:ga0640bed1721367716746fb6cc6bf56dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19a03dbcbff7cc04e3756ac7a9f14385"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__error.html#ga19a03dbcbff7cc04e3756ac7a9f14385">krb5_vset_error_message</a> (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__</td></tr>
<tr class="separator:ga19a03dbcbff7cc04e3756ac7a9f14385"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab79e8e20967c3df353e4a6ed5e15e5ed"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__error.html#gab79e8e20967c3df353e4a6ed5e15e5ed">krb5_prepend_error_message</a> (krb5_context context, krb5_error_code ret, const char *fmt,...) __attribute__((__format__(__printf__</td></tr>
+<tr class="separator:gab79e8e20967c3df353e4a6ed5e15e5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf106c9897306a7d9b5cd10c467d6e382"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__error.html#gaf106c9897306a7d9b5cd10c467d6e382">krb5_vprepend_error_message</a> (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__</td></tr>
<tr class="separator:gaf106c9897306a7d9b5cd10c467d6e382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35cbf80e68f43a6d9503952886b85ed2"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const char *KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message</a> (krb5_context context, krb5_error_code code)</td></tr>
@@ -396,7 +399,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the error message for `code' in context. On memory allocation error the function returns NULL.</p>
+<p>Return the error message for &lsquo;code&rsquo; in context. On memory allocation error the function returns NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
@@ -485,6 +488,57 @@ Functions</h2></td></tr>
</div>
</div>
+<a id="gab79e8e20967c3df353e4a6ed5e15e5ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab79e8e20967c3df353e4a6ed5e15e5ed">&#9670;&nbsp;</a></span>krb5_prepend_error_message()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_prepend_error_message </td>
+ <td>(</td>
+ <td class="paramtype">krb5_context&#160;</td>
+ <td class="paramname"><em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">krb5_error_code&#160;</td>
+ <td class="paramname"><em>ret</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>fmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>...</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Prepend the context full error string for a specific error code. The error that is stored should be internationalized.</p>
+<p>The if context is NULL, no error string is stored.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
+ <tr><td class="paramname">ret</td><td>The error code </td></tr>
+ <tr><td class="paramname">fmt</td><td>Error string for the error code </td></tr>
+ <tr><td class="paramname">...</td><td>printf(3) style parameters. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
<a id="ga0640bed1721367716746fb6cc6bf56dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0640bed1721367716746fb6cc6bf56dd">&#9670;&nbsp;</a></span>krb5_set_error_message()</h2>
@@ -1017,6 +1071,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__keytab.html b/doc/doxyout/krb5/html/group__krb5__keytab.html
index e98ff7d98d35..e7af1e4a5eb5 100644
--- a/doc/doxyout/krb5/html/group__krb5__keytab.html
+++ b/doc/doxyout/krb5/html/group__krb5__keytab.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -104,7 +105,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Add the entry in `entry' to the keytab `id'.</p>
+<p>Add the entry in &lsquo;entry&rsquo; to the keytab &lsquo;id&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -142,7 +143,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Finish using the keytab in `id'. All resources will be released, even on errors.</p>
+<p>Finish using the keytab in &lsquo;id&rsquo;. All resources will be released, even on errors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -197,7 +198,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Compare `entry' against `principal, vno, enctype'. Any of `principal, vno, enctype' might be 0 which acts as a wildcard. Return TRUE if they compare the same, FALSE otherwise.</p>
+<p>Compare &lsquo;entry&rsquo; against &lsquo;principal, vno, enctype&rsquo;. Any of &lsquo;principal, vno, enctype&rsquo; might be 0 which acts as a wildcard. Return TRUE if they compare the same, FALSE otherwise.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -243,7 +244,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Copy the contents of `in' into `out'.</p>
+<p>Copy the contents of &lsquo;in&rsquo; into &lsquo;out&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -281,7 +282,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Set `id' to the default keytab.</p>
+<p>Set &lsquo;id&rsquo; to the default keytab.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -324,7 +325,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Copy the name of the default modify keytab into `name'.</p>
+<p>Copy the name of the default modify keytab into &lsquo;name&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -368,7 +369,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>copy the name of the default keytab into `name'.</p>
+<p>copy the name of the default keytab into &lsquo;name&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -406,7 +407,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Destroy (remove) the keytab in `id'. All resources will be released, even on errors, does the equvalment of <a class="el" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a> on the resources.</p>
+<p>Destroy (remove) the keytab in &lsquo;id&rsquo;. All resources will be released, even on errors, does the equvalment of <a class="el" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a> on the resources.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -449,7 +450,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Release all resources associated with `cursor'.</p>
+<p>Release all resources associated with &lsquo;cursor&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -487,7 +488,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Free the contents of `entry'.</p>
+<p>Free the contents of &lsquo;entry&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -548,7 +549,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the keytab `id'. Matching is done like <a class="el" href="group__krb5__keytab.html#ga688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.</p>
+<p>Retrieve the keytab entry for &lsquo;principal, kvno, enctype&rsquo; into &lsquo;entry&rsquo; from the keytab &lsquo;id&rsquo;. Matching is done like <a class="el" href="group__krb5__keytab.html#ga688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -595,7 +596,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the full name of the keytab `keytab' and store the name in `str'.</p>
+<p>Retrieve the full name of the keytab &lsquo;keytab&rsquo; and store the name in &lsquo;str&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -645,7 +646,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Retrieve the name of the keytab `keytab' into `name', `namesize'</p>
+<p>Retrieve the name of the keytab &lsquo;keytab&rsquo; into &lsquo;name&rsquo;, &lsquo;namesize&rsquo;</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -696,7 +697,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the type of the `keytab' in the string <code>prefix of length </code>prefixsize'.</p>
+<p>Return the type of the &lsquo;keytab&rsquo; in the string <code>prefix of length </code>prefixsize'.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -847,7 +848,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Read the key identified by `(principal, vno, enctype)' from the keytab in `keyprocarg' (the default if == NULL) into `*key'.</p>
+<p>Read the key identified by &lsquo;(principal, vno, enctype)&rsquo; from the keytab in &lsquo;keyprocarg&rsquo; (the default if == NULL) into &lsquo;*key&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -975,7 +976,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Resolve the keytab name (of the form `type:residual') in `name' into a keytab in `id'.</p>
+<p>Resolve the keytab name (of the form &lsquo;type:residual&rsquo;) in &lsquo;name&rsquo; into a keytab in &lsquo;id&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -1019,7 +1020,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Set `cursor' to point at the beginning of `id'.</p>
+<p>Set &lsquo;cursor&rsquo; to point at the beginning of &lsquo;id&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
@@ -1034,6 +1035,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__pac.html b/doc/doxyout/krb5/html/group__krb5__pac.html
index 682d9cbb22f4..a477e6df79f1 100644
--- a/doc/doxyout/krb5/html/group__krb5__pac.html
+++ b/doc/doxyout/krb5/html/group__krb5__pac.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -153,6 +154,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__principal.html b/doc/doxyout/krb5/html/group__krb5__principal.html
index 92c3926bc412..e5499a62d159 100644
--- a/doc/doxyout/krb5/html/group__krb5__principal.html
+++ b/doc/doxyout/krb5/html/group__krb5__principal.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -1374,6 +1375,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__storage.html b/doc/doxyout/krb5/html/group__krb5__storage.html
index fbb33fff7055..42d2a7c2e6a7 100644
--- a/doc/doxyout/krb5/html/group__krb5__storage.html
+++ b/doc/doxyout/krb5/html/group__krb5__storage.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -2266,6 +2267,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__support.html b/doc/doxyout/krb5/html/group__krb5__support.html
index f528b46202f8..92be508e89ee 100644
--- a/doc/doxyout/krb5/html/group__krb5__support.html
+++ b/doc/doxyout/krb5/html/group__krb5__support.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -204,7 +205,22 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0.</dd></dl>
-<div class="fragment"><div class="line"><span class="keywordtype">char</span> *s;</div><div class="line"></div><div class="line">ret = <a class="code" href="group__krb5__support.html#ga245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">&quot;foo&quot;</span>, <span class="stringliteral">&quot;s&quot;</span>, <span class="stringliteral">&quot;foo&quot;</span>);</div><div class="line"><span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#ga1b898cb64c7e0e9a61d52440e1ada17e">krb5_errx</a>(context, 1, <span class="stringliteral">&quot;acl didn&#39;t match&quot;</span>);</div><div class="line">ret = <a class="code" href="group__krb5__support.html#ga245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">&quot;foo foo baz/kaka&quot;</span>,</div><div class="line"> <span class="stringliteral">&quot;ss&quot;</span>, <span class="stringliteral">&quot;foo&quot;</span>, &amp;s, <span class="stringliteral">&quot;foo/\\*&quot;</span>);</div><div class="line"><span class="keywordflow">if</span> (ret) {</div><div class="line"> <span class="comment">// no need to free(s) on error</span></div><div class="line"> assert(s == NULL);</div><div class="line"> <a class="code" href="group__krb5__error.html#ga1b898cb64c7e0e9a61d52440e1ada17e">krb5_errx</a>(context, 1, <span class="stringliteral">&quot;acl didn&#39;t match&quot;</span>);</div><div class="line">}</div><div class="line">free(s);</div></div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__krb5__support.html#ga7c5dbc1743dc0bc63765edf82d10eb9e">krb5_acl_match_file</a> </dd></dl>
+<div class="fragment"><div class="line"><span class="keywordtype">char</span> *s;</div>
+<div class="line"> </div>
+<div class="line">ret = <a class="code" href="group__krb5__support.html#ga245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">&quot;foo&quot;</span>, <span class="stringliteral">&quot;s&quot;</span>, <span class="stringliteral">&quot;foo&quot;</span>);</div>
+<div class="line"><span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#ga1b898cb64c7e0e9a61d52440e1ada17e">krb5_errx</a>(context, 1, <span class="stringliteral">&quot;acl didn&#39;t match&quot;</span>);</div>
+<div class="line">ret = <a class="code" href="group__krb5__support.html#ga245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">&quot;foo foo baz/kaka&quot;</span>,</div>
+<div class="line"> <span class="stringliteral">&quot;ss&quot;</span>, <span class="stringliteral">&quot;foo&quot;</span>, &amp;s, <span class="stringliteral">&quot;foo/\\*&quot;</span>);</div>
+<div class="line"><span class="keywordflow">if</span> (ret) {</div>
+<div class="line"> <span class="comment">// no need to free(s) on error</span></div>
+<div class="line"> assert(s == NULL);</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#ga1b898cb64c7e0e9a61d52440e1ada17e">krb5_errx</a>(context, 1, <span class="stringliteral">&quot;acl didn&#39;t match&quot;</span>);</div>
+<div class="line">}</div>
+<div class="line">free(s);</div>
+<div class="ttc" id="agroup__krb5__error_html_ga1b898cb64c7e0e9a61d52440e1ada17e"><div class="ttname"><a href="group__krb5__error.html#ga1b898cb64c7e0e9a61d52440e1ada17e">krb5_errx</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_errx(krb5_context context, int eval, const char *fmt,...) __attribute__((__noreturn__</div></div>
+<div class="ttc" id="agroup__krb5__support_html_ga245208f2d59a8fd7187089ad445e51d0"><div class="ttname"><a href="group__krb5__support.html#ga245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_string(krb5_context context, const char *string, const char *format,...)</div><div class="ttdef"><b>Definition:</b> acl.c:200</div></div>
+</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__krb5__support.html#ga7c5dbc1743dc0bc63765edf82d10eb9e">krb5_acl_match_file</a> </dd></dl>
</div>
</div>
@@ -1236,7 +1252,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Free all memory allocated by `realmlist'</p>
+<p>Free all memory allocated by &lsquo;realmlist&rsquo;</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>A Kerberos 5 context. </td></tr>
@@ -1349,6 +1365,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__ticket.html b/doc/doxyout/krb5/html/group__krb5__ticket.html
index 2212103de09b..338dccf479bd 100644
--- a/doc/doxyout/krb5/html/group__krb5__ticket.html
+++ b/doc/doxyout/krb5/html/group__krb5__ticket.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -72,6 +73,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/group__krb5__v4compat.html b/doc/doxyout/krb5/html/group__krb5__v4compat.html
index dc07ab3f7c23..d0eebffed2b6 100644
--- a/doc/doxyout/krb5/html/group__krb5__v4compat.html
+++ b/doc/doxyout/krb5/html/group__krb5__v4compat.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -66,7 +67,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert the v5 credentials in in_cred to v4-dito in v4creds. This is done by sending them to the 524 function in the KDC. If `in_cred' doesn't contain a DES session key, then a new one is gotten from the KDC and stored in the cred cache `ccache'.</p>
+<p>Convert the v5 credentials in in_cred to v4-dito in v4creds. This is done by sending them to the 524 function in the KDC. If &lsquo;in_cred&rsquo; doesn't contain a DES session key, then a new one is gotten from the KDC and stored in the cred cache &lsquo;ccache&rsquo;.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Kerberos 5 context. </td></tr>
@@ -132,6 +133,6 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/index.html b/doc/doxyout/krb5/html/index.html
index 9733b99c9cad..8989e7fd49e8 100644
--- a/doc/doxyout/krb5/html/index.html
+++ b/doc/doxyout/krb5/html/index.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Heimdal Kerberos 5 library </div> </div>
</div><!--header-->
@@ -26,7 +27,7 @@ $(function() {
<div class="textblock"><h1><a class="anchor" id="intro"></a>
Introduction</h1>
<p>Heimdal libkrb5 library is a implementation of the Kerberos protocol.</p>
-<p>Kerberos is a system for authenticating users and services on a network. It is built upon the assumption that the network is ``unsafe''. For example, data sent over the network can be eavesdropped and altered, and addresses can also be faked. Therefore they cannot be used for authentication purposes.</p>
+<p>Kerberos is a system for authenticating users and services on a network. It is built upon the assumption that the network is `&lsquo;unsafe&rsquo;'. For example, data sent over the network can be eavesdropped and altered, and addresses can also be faked. Therefore they cannot be used for authentication purposes.</p>
<ul>
<li><a class="el" href="krb5_introduction.html">Introduction to the Kerberos 5 API</a></li>
<li><a class="el" href="krb5_principal_intro.html">The principal handing functions.</a></li>
@@ -35,8 +36,9 @@ Introduction</h1>
</ul>
<p>If you want to know more about the file formats that is used by Heimdal, please see: <a class="el" href="krb5_fileformats.html">File formats</a></p>
<p>The project web page: <a href="http://www.h5l.org/">http://www.h5l.org/</a> </p>
-</div></div><!-- contents -->
+</div></div><!-- PageDoc -->
+</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/jquery.js b/doc/doxyout/krb5/html/jquery.js
index f5343eda922a..103c32d79b74 100644
--- a/doc/doxyout/krb5/html/jquery.js
+++ b/doc/doxyout/krb5/html/jquery.js
@@ -1,71 +1,26 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
/*!
- * jQuery JavaScript Library v1.7.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Mon Nov 21 21:11:03 2011 -0500
- */
-(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
-/*!
- * Sizzle CSS Selector Engine
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- * More information: http://sizzlejs.com/
- */
-(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
- * jQuery UI 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
- * jQuery UI Widget 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
- * jQuery UI Mouse 1.8.18
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- * jquery.ui.widget.js
- */
-(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
- * jQuery hashchange event - v1.3 - 7/21/2010
- * http://benalman.com/projects/jquery-hashchange-plugin/
- *
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
- PowerTip - v1.2.0 - 2013-04-03
- http://stevenbenner.github.com/jquery-powertip/
- Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
Released under MIT license.
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
*/
-(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*!
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
* jQuery UI Touch Punch 0.2.3
*
* Copyright 2011–2014, Dave Furfero
@@ -75,13 +30,6 @@
* jquery.ui.widget.js
* jquery.ui.mouse.js
*/
-(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*!
- * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
* http://www.smartmenus.org/
- *
- * Copyright Vasil Dinkov, Vadikom Web Ltd.
- * http://vadikom.com
- *
- * Licensed MIT
- */
-(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a})); \ No newline at end of file
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file
diff --git a/doc/doxyout/krb5/html/krb5_ccache_intro.html b/doc/doxyout/krb5/html/krb5_ccache_intro.html
index 1ee11fea3c17..dc0451d15115 100644
--- a/doc/doxyout/krb5/html/krb5_ccache_intro.html
+++ b/doc/doxyout/krb5/html/krb5_ccache_intro.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">The credential cache functions </div> </div>
</div><!--header-->
@@ -36,8 +37,58 @@ Kerberos credential caches</h1>
</ul>
<h2><a class="anchor" id="Example"></a>
Example</h2>
-<p>This is a minimalistic version of klist: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;krb5.h&gt;</span></div><div class="line"></div><div class="line"><span class="keywordtype">int</span></div><div class="line">main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line">{</div><div class="line"> krb5_context context;</div><div class="line"> krb5_cc_cursor cursor;</div><div class="line"> krb5_error_code ret;</div><div class="line"> krb5_ccache id;</div><div class="line"> krb5_creds creds;</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a> (&amp;context) != 0)</div><div class="line"> errx(1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div><div class="line"></div><div class="line"> ret = <a class="code" href="group__krb5__ccache.html#gad7d54822ef022f3e27f7f0f457d9c751">krb5_cc_default</a> (context, &amp;<span class="keywordtype">id</span>);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_default&quot;</span>);</div><div class="line"></div><div class="line"> ret = <a class="code" href="group__krb5__ccache.html#gacbf766cea6b49dd64b76628c7708b979">krb5_cc_start_seq_get</a>(context, <span class="keywordtype">id</span>, &amp;cursor);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_start_seq_get&quot;</span>);</div><div class="line"></div><div class="line"> <span class="keywordflow">while</span>((ret = <a class="code" href="group__krb5__ccache.html#gad9cd0ebcc7bdf3ca2b0ed166ea2f8df6">krb5_cc_next_cred</a>(context, <span class="keywordtype">id</span>, &amp;cursor, &amp;creds)) == 0){</div><div class="line"> <span class="keywordtype">char</span> *principal;</div><div class="line"></div><div class="line"> <a class="code" href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a>(context, creds.server, &amp;principal);</div><div class="line"> printf(<span class="stringliteral">&quot;principal: %s\\n&quot;</span>, principal);</div><div class="line"> free(principal);</div><div class="line"> <a class="code" href="group__krb5.html#gad89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a> (context, &amp;creds);</div><div class="line"> }</div><div class="line"> ret = <a class="code" href="group__krb5__ccache.html#ga024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get</a>(context, <span class="keywordtype">id</span>, &amp;cursor);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_end_seq_get&quot;</span>);</div><div class="line"></div><div class="line"> <a class="code" href="group__krb5__ccache.html#gaebc0dd2a77529c05fb49e27235da7017">krb5_cc_close</a>(context, <span class="keywordtype">id</span>);</div><div class="line"></div><div class="line"> <a class="code" href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a>(context);</div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --> </div></div><!-- contents -->
+<p>This is a minimalistic version of klist: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;krb5.h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span></div>
+<div class="line">main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
+<div class="line">{</div>
+<div class="line"> krb5_context context;</div>
+<div class="line"> krb5_cc_cursor cursor;</div>
+<div class="line"> krb5_error_code ret;</div>
+<div class="line"> krb5_ccache id;</div>
+<div class="line"> krb5_creds creds;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a> (&amp;context) != 0)</div>
+<div class="line"> errx(1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> ret = <a class="code" href="group__krb5__ccache.html#gad7d54822ef022f3e27f7f0f457d9c751">krb5_cc_default</a> (context, &amp;<span class="keywordtype">id</span>);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_default&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> ret = <a class="code" href="group__krb5__ccache.html#gacbf766cea6b49dd64b76628c7708b979">krb5_cc_start_seq_get</a>(context, <span class="keywordtype">id</span>, &amp;cursor);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_start_seq_get&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">while</span>((ret = <a class="code" href="group__krb5__ccache.html#gad9cd0ebcc7bdf3ca2b0ed166ea2f8df6">krb5_cc_next_cred</a>(context, <span class="keywordtype">id</span>, &amp;cursor, &amp;creds)) == 0){</div>
+<div class="line"> <span class="keywordtype">char</span> *principal;</div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a>(context, creds.server, &amp;principal);</div>
+<div class="line"> printf(<span class="stringliteral">&quot;principal: %s\\n&quot;</span>, principal);</div>
+<div class="line"> free(principal);</div>
+<div class="line"> <a class="code" href="group__krb5.html#gad89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a> (context, &amp;creds);</div>
+<div class="line"> }</div>
+<div class="line"> ret = <a class="code" href="group__krb5__ccache.html#ga024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get</a>(context, <span class="keywordtype">id</span>, &amp;cursor);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_cc_end_seq_get&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group__krb5__ccache.html#gaebc0dd2a77529c05fb49e27235da7017">krb5_cc_close</a>(context, <span class="keywordtype">id</span>);</div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a>(context);</div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+<div class="ttc" id="agroup__krb5__ccache_html_ga024ce036ebf277f918354d4681bd0550"><div class="ttname"><a href="group__krb5__ccache.html#ga024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_end_seq_get(krb5_context context, const krb5_ccache id, krb5_cc_cursor *cursor)</div><div class="ttdef"><b>Definition:</b> cache.c:875</div></div>
+<div class="ttc" id="agroup__krb5__ccache_html_gacbf766cea6b49dd64b76628c7708b979"><div class="ttname"><a href="group__krb5__ccache.html#gacbf766cea6b49dd64b76628c7708b979">krb5_cc_start_seq_get</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_start_seq_get(krb5_context context, const krb5_ccache id, krb5_cc_cursor *cursor)</div><div class="ttdef"><b>Definition:</b> cache.c:841</div></div>
+<div class="ttc" id="agroup__krb5__ccache_html_gad7d54822ef022f3e27f7f0f457d9c751"><div class="ttname"><a href="group__krb5__ccache.html#gad7d54822ef022f3e27f7f0f457d9c751">krb5_cc_default</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_default(krb5_context context, krb5_ccache *id)</div><div class="ttdef"><b>Definition:</b> cache.c:649</div></div>
+<div class="ttc" id="agroup__krb5__ccache_html_gad9cd0ebcc7bdf3ca2b0ed166ea2f8df6"><div class="ttname"><a href="group__krb5__ccache.html#gad9cd0ebcc7bdf3ca2b0ed166ea2f8df6">krb5_cc_next_cred</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_next_cred(krb5_context context, const krb5_ccache id, krb5_cc_cursor *cursor, krb5_creds *creds)</div><div class="ttdef"><b>Definition:</b> cache.c:859</div></div>
+<div class="ttc" id="agroup__krb5__ccache_html_gaebc0dd2a77529c05fb49e27235da7017"><div class="ttname"><a href="group__krb5__ccache.html#gaebc0dd2a77529c05fb49e27235da7017">krb5_cc_close</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_close(krb5_context context, krb5_ccache id)</div><div class="ttdef"><b>Definition:</b> cache.c:712</div></div>
+<div class="ttc" id="agroup__krb5__error_html_gad75c268bcf26225ee8d4a39c178131a1"><div class="ttname"><a href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_err(krb5_context context, int eval, krb5_error_code code, const char *fmt,...) __attribute__((__noreturn__</div></div>
+<div class="ttc" id="agroup__krb5__principal_html_gaac881051ed59fe0dcd08cee62280b332"><div class="ttname"><a href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name(krb5_context context, krb5_const_principal principal, char **name)</div><div class="ttdef"><b>Definition:</b> principal.c:608</div></div>
+<div class="ttc" id="agroup__krb5_html_gabd94206e186c58a093975424a4a567a8"><div class="ttname"><a href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context(krb5_context *context)</div><div class="ttdef"><b>Definition:</b> context.c:417</div></div>
+<div class="ttc" id="agroup__krb5_html_gad89c4c7b633646c39e4a34a7230c94e1"><div class="ttname"><a href="group__krb5.html#gad89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_cred_contents(krb5_context context, krb5_creds *c)</div><div class="ttdef"><b>Definition:</b> creds.c:49</div></div>
+<div class="ttc" id="agroup__krb5_html_gae51d83f5d5f589883f1cd10887892777"><div class="ttname"><a href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a></div><div class="ttdeci">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context(krb5_context context)</div><div class="ttdef"><b>Definition:</b> context.c:615</div></div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/krb5_fileformats.html b/doc/doxyout/krb5/html/krb5_fileformats.html
index 6ab5605a42bb..dfa7afe906cf 100644
--- a/doc/doxyout/krb5/html/krb5_fileformats.html
+++ b/doc/doxyout/krb5/html/krb5_fileformats.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">File formats </div> </div>
</div><!--header-->
@@ -30,7 +31,34 @@ File formats</h1>
keytab</h2>
<p>The keytab binary format is not a standard format. The format has evolved and may continue to. It is however understood by several Kerberos implementations including Heimdal, MIT, Sun's Java ktab and are created by the ktpass.exe utility from Windows. So it has established itself as the defacto format for storing Kerberos keys.</p>
<p>The following C-like structure definitions illustrate the MIT keytab file format. All values are in network byte order. All text is ASCII.</p>
-<div class="fragment"><div class="line">keytab {</div><div class="line"> uint16_t file_format_version; # 0x502</div><div class="line"> keytab_entry entries[*];</div><div class="line">};</div><div class="line"></div><div class="line">keytab_entry {</div><div class="line"> int32_t size;</div><div class="line"> uint16_t num_components; # subtract 1 <span class="keywordflow">if</span> version 0x501</div><div class="line"> counted_octet_string realm;</div><div class="line"> counted_octet_string components[num_components];</div><div class="line"> uint32_t name_type; # not present <span class="keywordflow">if</span> version 0x501</div><div class="line"> uint32_t timestamp;</div><div class="line"> uint8_t vno8;</div><div class="line"> keyblock key;</div><div class="line"> uint32_t vno; #only present <span class="keywordflow">if</span> &gt;= 4 bytes left in entry</div><div class="line"> uint32_t flags; #only present <span class="keywordflow">if</span> &gt;= 4 bytes left in entry</div><div class="line">};</div><div class="line"></div><div class="line">counted_octet_string {</div><div class="line"> uint16_t length;</div><div class="line"> uint8_t data[length];</div><div class="line">};</div><div class="line"></div><div class="line">keyblock {</div><div class="line"> uint16_t type;</div><div class="line"> counted_octet_string;</div><div class="line">};</div></div><!-- fragment --><p>All numbers are stored in network byteorder (big endian) format.</p>
+<div class="fragment"><div class="line">keytab {</div>
+<div class="line"> uint16_t file_format_version; # 0x502</div>
+<div class="line"> keytab_entry entries[*];</div>
+<div class="line">};</div>
+<div class="line"> </div>
+<div class="line">keytab_entry {</div>
+<div class="line"> int32_t size;</div>
+<div class="line"> uint16_t num_components; # subtract 1 <span class="keywordflow">if</span> version 0x501</div>
+<div class="line"> counted_octet_string realm;</div>
+<div class="line"> counted_octet_string components[num_components];</div>
+<div class="line"> uint32_t name_type; # not present <span class="keywordflow">if</span> version 0x501</div>
+<div class="line"> uint32_t timestamp;</div>
+<div class="line"> uint8_t vno8;</div>
+<div class="line"> keyblock key;</div>
+<div class="line"> uint32_t vno; #only present <span class="keywordflow">if</span> &gt;= 4 bytes left in entry</div>
+<div class="line"> uint32_t flags; #only present <span class="keywordflow">if</span> &gt;= 4 bytes left in entry</div>
+<div class="line">};</div>
+<div class="line"> </div>
+<div class="line">counted_octet_string {</div>
+<div class="line"> uint16_t length;</div>
+<div class="line"> uint8_t data[length];</div>
+<div class="line">};</div>
+<div class="line"> </div>
+<div class="line">keyblock {</div>
+<div class="line"> uint16_t type;</div>
+<div class="line"> counted_octet_string;</div>
+<div class="line">};</div>
+</div><!-- fragment --><p>All numbers are stored in network byteorder (big endian) format.</p>
<p>The keytab file format begins with the 16 bit file_format_version which at the time this document was authored is 0x502. The format of older keytabs is described at the end of this document.</p>
<p>The file_format_version is immediately followed by an array of keytab_entry structures which are prefixed with a 32 bit size indicating the number of bytes that follow in the entry. Note that the size should be evaluated as signed. This is because a negative value indicates that the entry is in fact empty (e.g. it has been deleted) and that the negative value of that negative value (which is of course a positive value) is the offset to the next keytab_entry. Based on these size values alone the entire keytab file can be traversed.</p>
<p>The size is followed by a 16 bit num_components field indicating the number of counted_octet_string components in the components array.</p>
@@ -55,45 +83,70 @@ Heimdal database dump file</h2>
<p>Each line in the dump file is one entry in the database.</p>
<p>Each field of a line is separated by one or more spaces, with the exception of fields consisting of principals containing spaces, where space can be quoted with \ and \ is quoted by .</p>
<p>Fields and their types are:</p>
-<div class="fragment"><div class="line">Quoted princial (quote character is \) [string]</div><div class="line">Keys [keys]</div><div class="line">Created by [event]</div><div class="line">Modified by [<span class="keyword">event</span> optional]</div><div class="line">Valid start time [time optional]</div><div class="line">Valid end time [time optional]</div><div class="line">Password end valid time [time optional]</div><div class="line">Max lifetime of ticket [time optional]</div><div class="line">Max renew time of ticket [integer optional]</div><div class="line">Flags [hdb flags]</div><div class="line">Generation number [generation optional]</div><div class="line">Extensions [extentions optional]</div></div><!-- fragment --><p>Fields following these silently are ignored.</p>
+<div class="fragment"><div class="line">Quoted princial (quote character is \) [string]</div>
+<div class="line">Keys [keys]</div>
+<div class="line">Created by [event]</div>
+<div class="line">Modified by [<span class="keyword">event</span> optional]</div>
+<div class="line">Valid start time [time optional]</div>
+<div class="line">Valid end time [time optional]</div>
+<div class="line">Password end valid time [time optional]</div>
+<div class="line">Max lifetime of ticket [time optional]</div>
+<div class="line">Max renew time of ticket [integer optional]</div>
+<div class="line">Flags [hdb flags]</div>
+<div class="line">Generation number [generation optional]</div>
+<div class="line">Extensions [extentions optional]</div>
+</div><!-- fragment --><p>Fields following these silently are ignored.</p>
<p>All optional fields will be skipped if they fail to parse (or comprise the optional field marker of "-", w/o quotes).</p>
<p>Example:</p>
-<div class="fragment"><div class="line">fred\@CODE.COM 27:1:16:e8b4c8fc7e60b9e641dcf4cff3f08a701d982a2f89ba373733d26ca59ba6c789666f6b8bfcf169412bb1e5dceb9b33cda29f3412:-:1:3:4498a933881178c744f4232172dcd774c64e81fa6d05ecdf643a7e390624a0ebf3c7407a:-:1:2:b01934b13eb795d76f3a80717d469639b4da0cfb644161340ef44fdeb375e54d684dbb85:-:1:1:ea8e16d8078bf60c781da90f508d4deccba70595258b9d31888d33987cd31af0c9cced2e:- 20020415130120:admin\@CODE.COM 20041221112428:fred\@CODE.COM - - - 86400 604800 126 20020415130120:793707:28 -</div></div><!-- fragment --><p>Encoding of types are as follows:</p>
+<div class="fragment"><div class="line">fred\@CODE.COM 27:1:16:e8b4c8fc7e60b9e641dcf4cff3f08a701d982a2f89ba373733d26ca59ba6c789666f6b8bfcf169412bb1e5dceb9b33cda29f3412:-:1:3:4498a933881178c744f4232172dcd774c64e81fa6d05ecdf643a7e390624a0ebf3c7407a:-:1:2:b01934b13eb795d76f3a80717d469639b4da0cfb644161340ef44fdeb375e54d684dbb85:-:1:1:ea8e16d8078bf60c781da90f508d4deccba70595258b9d31888d33987cd31af0c9cced2e:- 20020415130120:admin\@CODE.COM 20041221112428:fred\@CODE.COM - - - 86400 604800 126 20020415130120:793707:28 -</div>
+</div><!-- fragment --><p>Encoding of types are as follows:</p>
<ul>
<li>keys</li>
</ul>
-<div class="fragment"><div class="line">kvno:[masterkvno:keytype:keydata:salt]{zero or more separated by :}</div></div><!-- fragment --><p>kvno is the key version number.</p>
+<div class="fragment"><div class="line">kvno:[masterkvno:keytype:keydata:salt]{zero or more separated by :}</div>
+</div><!-- fragment --><p>kvno is the key version number.</p>
<p>keydata is hex-encoded</p>
<p>masterkvno is the kvno of the database master key. If this field is empty, the kadmin load and merge operations will encrypt the key data with the master key if there is one. Otherwise the key data will be imported asis.</p>
<p>salt is encoded as "-" (no/default salt) or</p>
-<div class="fragment"><div class="line">salt-type /</div><div class="line">salt-type / <span class="stringliteral">&quot;string&quot;</span></div><div class="line">salt-type / hex-encoded-data</div></div><!-- fragment --><p>keytype is the protocol enctype number; see enum ENCTYPE in include/krb5_asn1.h for values.</p>
-<p>Example: </p><div class="fragment"><div class="line">27:1:16:e8b4c8fc7e60b9e641dcf4cff3f08a701d982a2f89ba373733d26ca59ba6c789666f6b8bfcf169412bb1e5dceb9b33cda29f3412:-:1:3:4498a933881178c744f4232172dcd774c64e81fa6d05ecdf643a7e390624a0ebf3c7407a:-:1:2:b01934b13eb795d76f3a80717d469639b4da0cfb644161340ef44fdeb375e54d684dbb85:-:1:1:ea8e16d8078bf60c781da90f508d4deccba70595258b9d31888d33987cd31af0c9cced2e:-</div></div><!-- fragment --><div class="fragment"><div class="line">kvno=27,{key: masterkvno=1,keytype=des3-cbc-sha1,keydata=..., <span class="keywordflow">default</span> salt}...</div></div><!-- fragment --><ul>
+<div class="fragment"><div class="line">salt-type /</div>
+<div class="line">salt-type / <span class="stringliteral">&quot;string&quot;</span></div>
+<div class="line">salt-type / hex-encoded-data</div>
+</div><!-- fragment --><p>keytype is the protocol enctype number; see enum ENCTYPE in include/krb5_asn1.h for values.</p>
+<p>Example: </p><div class="fragment"><div class="line">27:1:16:e8b4c8fc7e60b9e641dcf4cff3f08a701d982a2f89ba373733d26ca59ba6c789666f6b8bfcf169412bb1e5dceb9b33cda29f3412:-:1:3:4498a933881178c744f4232172dcd774c64e81fa6d05ecdf643a7e390624a0ebf3c7407a:-:1:2:b01934b13eb795d76f3a80717d469639b4da0cfb644161340ef44fdeb375e54d684dbb85:-:1:1:ea8e16d8078bf60c781da90f508d4deccba70595258b9d31888d33987cd31af0c9cced2e:-</div>
+</div><!-- fragment --><div class="fragment"><div class="line">kvno=27,{key: masterkvno=1,keytype=des3-cbc-sha1,keydata=..., <span class="keywordflow">default</span> salt}...</div>
+</div><!-- fragment --><ul>
<li>time</li>
</ul>
<p>Format of the time is: YYYYmmddHHMMSS, corresponding to strftime format "%Y%m%d%k%M%S".</p>
<p>Time is expressed in UTC.</p>
<p>Time can be optional (using -), when the time 0 is used.</p>
<p>Example:</p>
-<div class="fragment"><div class="line">20041221112428</div></div><!-- fragment --><ul>
+<div class="fragment"><div class="line">20041221112428</div>
+</div><!-- fragment --><ul>
<li>event</li>
</ul>
-<div class="fragment"><div class="line">time:principal</div></div><!-- fragment --><p>time is as given in format time</p>
+<div class="fragment"><div class="line">time:principal</div>
+</div><!-- fragment --><p>time is as given in format time</p>
<p>principal is a string. Not quoting it may not work in earlier versions of Heimdal.</p>
-<p>Example: </p><div class="fragment"><div class="line">20041221112428:bloggs\@CODE.COM</div></div><!-- fragment --><ul>
+<p>Example: </p><div class="fragment"><div class="line">20041221112428:bloggs\@CODE.COM</div>
+</div><!-- fragment --><ul>
<li>hdb flags</li>
</ul>
<p>Integer encoding of HDB flags, see HDBFlags in lib/hdb/hdb.asn1. Each bit in the integer is the same as the bit in the specification.</p>
<ul>
<li>generation:</li>
</ul>
-<div class="fragment"><div class="line">time:usec:gen</div></div><!-- fragment --><p>usec is a the microsecond, integer. gen is generation number, integer.</p>
+<div class="fragment"><div class="line">time:usec:gen</div>
+</div><!-- fragment --><p>usec is a the microsecond, integer. gen is generation number, integer.</p>
<p>The generation can be defaulted (using '-') or the empty string</p>
<ul>
<li>extensions:</li>
</ul>
-<div class="fragment"><div class="line">first-hex-encoded-HDB-Extension[:second-...]</div></div><!-- fragment --><p>HDB-extension is encoded the DER encoded HDB-Extension from lib/hdb/hdb.asn1. Consumers HDB extensions should be aware that unknown entires needs to be preserved even thought the ASN.1 data content might be unknown. There is a critical flag in the data to show to the KDC that the entry MUST be understod if the entry is to be used. </p>
+<div class="fragment"><div class="line">first-hex-encoded-HDB-Extension[:second-...]</div>
+</div><!-- fragment --><p>HDB-extension is encoded the DER encoded HDB-Extension from lib/hdb/hdb.asn1. Consumers HDB extensions should be aware that unknown entires needs to be preserved even thought the ASN.1 data content might be unknown. There is a critical flag in the data to show to the KDC that the entry MUST be understod if the entry is to be used. </p>
</div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/krb5_init_creds_intro.html b/doc/doxyout/krb5/html/krb5_init_creds_intro.html
index 839047d52e57..b895026c19cd 100644
--- a/doc/doxyout/krb5/html/krb5_init_creds_intro.html
+++ b/doc/doxyout/krb5/html/krb5_init_creds_intro.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">The initial credential handing functions </div> </div>
</div><!--header-->
@@ -27,7 +28,8 @@ $(function() {
Initial credential</h1>
<p>Functions to get initial credentials: <a class="el" href="group__krb5__credential.html">Heimdal Kerberos 5 credential handing functions</a> . </p>
</div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/krb5_introduction.html b/doc/doxyout/krb5/html/krb5_introduction.html
index aec79a42d39f..ead091a77cbf 100644
--- a/doc/doxyout/krb5/html/krb5_introduction.html
+++ b/doc/doxyout/krb5/html/krb5_introduction.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Introduction to the Kerberos 5 API </div> </div>
</div><!--header-->
@@ -49,7 +50,7 @@ Credential cache</h2>
<p>See also <a class="el" href="krb5_ccache_intro.html">The credential cache functions</a> and <a class="el" href="group__krb5__ccache.html">Heimdal Kerberos 5 credential cache functions</a> .</p>
<h2><a class="anchor" id="intro_krb5_error_code"></a>
Kerberos errors</h2>
-<p>Kerberos errors are based on the com_err library. All error codes are 32-bit signed numbers, the first 24 bits define what subsystem the error originates from, and last 8 bits are 255 error codes within the library. Each error code have fixed string associated with it. For example, the error-code -1765328383 have the symbolic name KRB5KDC_ERR_NAME_EXP, and associated error string ``Client's entry in database has expired''.</p>
+<p>Kerberos errors are based on the com_err library. All error codes are 32-bit signed numbers, the first 24 bits define what subsystem the error originates from, and last 8 bits are 255 error codes within the library. Each error code have fixed string associated with it. For example, the error-code -1765328383 have the symbolic name KRB5KDC_ERR_NAME_EXP, and associated error string `&lsquo;Client's entry in database has expired&rsquo;'.</p>
<p>This is a great improvement compared to just getting one of the unix error-codes back. However, Heimdal have an extention to pass back customised errors messages. Instead of getting <code>Key table entry not found'', the user might back</code>failed to find host/host.example.com@EXAMLE.COM(kvno 3) in keytab /etc/krb5.keytab (des-cbc-crc)''. This improves the chance that the user find the cause of the error so you should use the customised error message whenever it's available.</p>
<p>See also module <a class="el" href="group__krb5__error.html">Heimdal Kerberos 5 error reporting functions</a> .</p>
<h2><a class="anchor" id="intro_krb5_keytab"></a>
@@ -67,19 +68,132 @@ Walkthrough of a sample Kerberos 5 client</h1>
<p>All Kerberos error-codes that are returned from kerberos functions in this program are passed to krb5_err, that will print a descriptive text of the error code and exit. Graphical programs can convert error-code to a human readable error-string with the <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a> function.</p>
<p>Note that you should not use any Kerberos function before <a class="el" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context()</a> have completed successfully. That is the reason err() is used when <a class="el" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context()</a> fails.</p>
<p>First the client needs to call krb5_init_context to initialise the Kerberos 5 library. This is only needed once per thread in the program. If the function returns a non-zero value it indicates that either the Kerberos implementation is failing or it's disabled on this host.</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;krb5.h&gt;</span></div><div class="line"></div><div class="line"><span class="keywordtype">int</span></div><div class="line">main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line">{</div><div class="line"> krb5_context context;</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a>(&amp;context))</div><div class="line"> errx (1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div></div><!-- fragment --><p>Now the client wants to connect to the host at the other end. The preferred way of doing this is using getaddrinfo (for operating system that have this function implemented), since getaddrinfo is neutral to the address type and can use any protocol that is available.</p>
-<div class="fragment"><div class="line"><span class="keyword">struct </span>addrinfo *ai, *a;</div><div class="line"><span class="keyword">struct </span>addrinfo hints;</div><div class="line"><span class="keywordtype">int</span> error;</div><div class="line"></div><div class="line">memset (&amp;hints, 0, <span class="keyword">sizeof</span>(hints));</div><div class="line">hints.ai_socktype = SOCK_STREAM;</div><div class="line">hints.ai_protocol = IPPROTO_TCP;</div><div class="line"></div><div class="line">error = getaddrinfo (hostname, <span class="stringliteral">&quot;pop3&quot;</span>, &amp;hints, &amp;ai);</div><div class="line"><span class="keywordflow">if</span> (error)</div><div class="line"> errx (1, <span class="stringliteral">&quot;%s: %s&quot;</span>, hostname, gai_strerror(error));</div><div class="line"></div><div class="line"><span class="keywordflow">for</span> (a = ai; a != NULL; a = a-&gt;ai_next) {</div><div class="line"> <span class="keywordtype">int</span> s;</div><div class="line"></div><div class="line"> s = socket (a-&gt;ai_family, a-&gt;ai_socktype, a-&gt;ai_protocol);</div><div class="line"> <span class="keywordflow">if</span> (s &lt; 0)</div><div class="line"> <span class="keywordflow">continue</span>;</div><div class="line"> <span class="keywordflow">if</span> (connect (s, a-&gt;ai_addr, a-&gt;ai_addrlen) &lt; 0) {</div><div class="line"> warn (<span class="stringliteral">&quot;connect(%s)&quot;</span>, hostname);</div><div class="line"> close (s);</div><div class="line"> <span class="keywordflow">continue</span>;</div><div class="line"> }</div><div class="line"> freeaddrinfo (ai);</div><div class="line"> ai = NULL;</div><div class="line">}</div><div class="line"><span class="keywordflow">if</span> (ai) {</div><div class="line"> freeaddrinfo (ai);</div><div class="line"> errx (<span class="stringliteral">&quot;failed to contact %s&quot;</span>, hostname);</div><div class="line">}</div></div><!-- fragment --><p>Before authenticating, an authentication context needs to be created. This context keeps all information for one (to be) authenticated connection (see krb5_auth_context).</p>
-<div class="fragment"><div class="line">status = krb5_auth_con_init (context, &amp;auth_context);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_auth_con_init&quot;</span>);</div></div><!-- fragment --><p>For setting the address in the authentication there is a help function krb5_auth_con_setaddrs_from_fd() that does everything that is needed when given a connected file descriptor to the socket.</p>
-<div class="fragment"><div class="line">status = krb5_auth_con_setaddrs_from_fd (context,</div><div class="line"> auth_context,</div><div class="line"> &amp;sock);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status,</div><div class="line"> <span class="stringliteral">&quot;krb5_auth_con_setaddrs_from_fd&quot;</span>);</div></div><!-- fragment --><p>The next step is to build a server principal for the service we want to connect to. (See also <a class="el" href="group__krb5__principal.html#ga8be0f5000da6ee0d4bd5dcaf3cb01d08">krb5_sname_to_principal()</a>.)</p>
-<div class="fragment"><div class="line">status = <a class="code" href="group__krb5__principal.html#ga8be0f5000da6ee0d4bd5dcaf3cb01d08">krb5_sname_to_principal</a> (context,</div><div class="line"> hostname,</div><div class="line"> service,</div><div class="line"> KRB5_NT_SRV_HST,</div><div class="line"> &amp;server);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_sname_to_principal&quot;</span>);</div></div><!-- fragment --><p>The client principal is not passed to krb5_sendauth() function, this causes the krb5_sendauth() function to try to figure it out itself.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;krb5.h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span></div>
+<div class="line">main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
+<div class="line">{</div>
+<div class="line"> krb5_context context;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a>(&amp;context))</div>
+<div class="line"> errx (1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div>
+<div class="ttc" id="agroup__krb5_html_gabd94206e186c58a093975424a4a567a8"><div class="ttname"><a href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context(krb5_context *context)</div><div class="ttdef"><b>Definition:</b> context.c:417</div></div>
+</div><!-- fragment --><p>Now the client wants to connect to the host at the other end. The preferred way of doing this is using getaddrinfo (for operating system that have this function implemented), since getaddrinfo is neutral to the address type and can use any protocol that is available.</p>
+<div class="fragment"><div class="line"><span class="keyword">struct </span>addrinfo *ai, *a;</div>
+<div class="line"><span class="keyword">struct </span>addrinfo hints;</div>
+<div class="line"><span class="keywordtype">int</span> error;</div>
+<div class="line"> </div>
+<div class="line">memset (&amp;hints, 0, <span class="keyword">sizeof</span>(hints));</div>
+<div class="line">hints.ai_socktype = SOCK_STREAM;</div>
+<div class="line">hints.ai_protocol = IPPROTO_TCP;</div>
+<div class="line"> </div>
+<div class="line">error = getaddrinfo (hostname, <span class="stringliteral">&quot;pop3&quot;</span>, &amp;hints, &amp;ai);</div>
+<div class="line"><span class="keywordflow">if</span> (error)</div>
+<div class="line"> errx (1, <span class="stringliteral">&quot;%s: %s&quot;</span>, hostname, gai_strerror(error));</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordflow">for</span> (a = ai; a != NULL; a = a-&gt;ai_next) {</div>
+<div class="line"> <span class="keywordtype">int</span> s;</div>
+<div class="line"> </div>
+<div class="line"> s = socket (a-&gt;ai_family, a-&gt;ai_socktype, a-&gt;ai_protocol);</div>
+<div class="line"> <span class="keywordflow">if</span> (s &lt; 0)</div>
+<div class="line"> <span class="keywordflow">continue</span>;</div>
+<div class="line"> <span class="keywordflow">if</span> (connect (s, a-&gt;ai_addr, a-&gt;ai_addrlen) &lt; 0) {</div>
+<div class="line"> warn (<span class="stringliteral">&quot;connect(%s)&quot;</span>, hostname);</div>
+<div class="line"> close (s);</div>
+<div class="line"> <span class="keywordflow">continue</span>;</div>
+<div class="line"> }</div>
+<div class="line"> freeaddrinfo (ai);</div>
+<div class="line"> ai = NULL;</div>
+<div class="line">}</div>
+<div class="line"><span class="keywordflow">if</span> (ai) {</div>
+<div class="line"> freeaddrinfo (ai);</div>
+<div class="line"> errx (<span class="stringliteral">&quot;failed to contact %s&quot;</span>, hostname);</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Before authenticating, an authentication context needs to be created. This context keeps all information for one (to be) authenticated connection (see krb5_auth_context).</p>
+<div class="fragment"><div class="line">status = krb5_auth_con_init (context, &amp;auth_context);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_auth_con_init&quot;</span>);</div>
+<div class="ttc" id="agroup__krb5__error_html_gad75c268bcf26225ee8d4a39c178131a1"><div class="ttname"><a href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_err(krb5_context context, int eval, krb5_error_code code, const char *fmt,...) __attribute__((__noreturn__</div></div>
+</div><!-- fragment --><p>For setting the address in the authentication there is a help function krb5_auth_con_setaddrs_from_fd() that does everything that is needed when given a connected file descriptor to the socket.</p>
+<div class="fragment"><div class="line">status = krb5_auth_con_setaddrs_from_fd (context,</div>
+<div class="line"> auth_context,</div>
+<div class="line"> &amp;sock);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status,</div>
+<div class="line"> <span class="stringliteral">&quot;krb5_auth_con_setaddrs_from_fd&quot;</span>);</div>
+</div><!-- fragment --><p>The next step is to build a server principal for the service we want to connect to. (See also <a class="el" href="group__krb5__principal.html#ga8be0f5000da6ee0d4bd5dcaf3cb01d08">krb5_sname_to_principal()</a>.)</p>
+<div class="fragment"><div class="line">status = <a class="code" href="group__krb5__principal.html#ga8be0f5000da6ee0d4bd5dcaf3cb01d08">krb5_sname_to_principal</a> (context,</div>
+<div class="line"> hostname,</div>
+<div class="line"> service,</div>
+<div class="line"> KRB5_NT_SRV_HST,</div>
+<div class="line"> &amp;server);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_sname_to_principal&quot;</span>);</div>
+<div class="ttc" id="agroup__krb5__principal_html_ga8be0f5000da6ee0d4bd5dcaf3cb01d08"><div class="ttname"><a href="group__krb5__principal.html#ga8be0f5000da6ee0d4bd5dcaf3cb01d08">krb5_sname_to_principal</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sname_to_principal(krb5_context context, const char *hostname, const char *sname, int32_t type, krb5_principal *ret_princ)</div><div class="ttdef"><b>Definition:</b> principal.c:1364</div></div>
+</div><!-- fragment --><p>The client principal is not passed to krb5_sendauth() function, this causes the krb5_sendauth() function to try to figure it out itself.</p>
<p>The server program is using the function krb5_recvauth() to receive the Kerberos 5 authenticator.</p>
<p>In this case, mutual authentication will be tried. That means that the server will authenticate to the client. Using mutual authentication is required to avoid man-in-the-middle attacks, since it enables the user to verify that they are talking to the right server (a server that knows the key).</p>
<p>If you are using a non-blocking socket you will need to do all work of krb5_sendauth() yourself. Basically you need to send over the authenticator from krb5_mk_req() and, in case of mutual authentication, verifying the result from the server with krb5_rd_rep().</p>
-<div class="fragment"><div class="line">status = krb5_sendauth (context,</div><div class="line"> &amp;auth_context,</div><div class="line"> &amp;sock,</div><div class="line"> VERSION,</div><div class="line"> NULL,</div><div class="line"> server,</div><div class="line"> AP_OPTS_MUTUAL_REQUIRED,</div><div class="line"> NULL,</div><div class="line"> NULL,</div><div class="line"> NULL,</div><div class="line"> NULL,</div><div class="line"> NULL,</div><div class="line"> NULL);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_sendauth&quot;</span>);</div></div><!-- fragment --><p>Once authentication has been performed, it is time to send some data. First we create a krb5_data structure, then we sign it with krb5_mk_safe() using the auth_context that contains the session-key that was exchanged in the krb5_sendauth()/krb5_recvauth() authentication sequence.</p>
-<div class="fragment"><div class="line">data.data = <span class="stringliteral">&quot;hej&quot;</span>;</div><div class="line">data.length = 3;</div><div class="line"></div><div class="line"><a class="code" href="group__krb5.html#gaa059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero</a> (&amp;packet);</div><div class="line"></div><div class="line">status = krb5_mk_safe (context,</div><div class="line"> auth_context,</div><div class="line"> &amp;data,</div><div class="line"> &amp;packet,</div><div class="line"> NULL);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_mk_safe&quot;</span>);</div></div><!-- fragment --><p>And send it over the network.</p>
-<div class="fragment"><div class="line">len = packet.length;</div><div class="line">net_len = htonl(len);</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, &amp;net_len, 4) != 4)</div><div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div><div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, packet.data, len) != len)</div><div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div></div><!-- fragment --><p>To send encrypted (and signed) data krb5_mk_priv() should be used instead. krb5_mk_priv() works the same way as krb5_mk_safe(), with the exception that it encrypts the data in addition to signing it.</p>
-<div class="fragment"><div class="line">data.data = <span class="stringliteral">&quot;hemligt&quot;</span>;</div><div class="line">data.length = 7;</div><div class="line"></div><div class="line"><a class="code" href="group__krb5.html#gab4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free</a> (&amp;packet);</div><div class="line"></div><div class="line">status = krb5_mk_priv (context,</div><div class="line"> auth_context,</div><div class="line"> &amp;data,</div><div class="line"> &amp;packet,</div><div class="line"> NULL);</div><div class="line"><span class="keywordflow">if</span> (status)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_mk_priv&quot;</span>);</div></div><!-- fragment --><p>And send it over the network.</p>
-<div class="fragment"><div class="line">len = packet.length;</div><div class="line">net_len = htonl(len);</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, &amp;net_len, 4) != 4)</div><div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div><div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, packet.data, len) != len)</div><div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div></div><!-- fragment --><p>The server is using krb5_rd_safe() and krb5_rd_priv() to verify the signature and decrypt the packet.</p>
+<div class="fragment"><div class="line">status = krb5_sendauth (context,</div>
+<div class="line"> &amp;auth_context,</div>
+<div class="line"> &amp;sock,</div>
+<div class="line"> VERSION,</div>
+<div class="line"> NULL,</div>
+<div class="line"> server,</div>
+<div class="line"> AP_OPTS_MUTUAL_REQUIRED,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL,</div>
+<div class="line"> NULL);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_sendauth&quot;</span>);</div>
+</div><!-- fragment --><p>Once authentication has been performed, it is time to send some data. First we create a krb5_data structure, then we sign it with krb5_mk_safe() using the auth_context that contains the session-key that was exchanged in the krb5_sendauth()/krb5_recvauth() authentication sequence.</p>
+<div class="fragment"><div class="line">data.data = <span class="stringliteral">&quot;hej&quot;</span>;</div>
+<div class="line">data.length = 3;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__krb5.html#gaa059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero</a> (&amp;packet);</div>
+<div class="line"> </div>
+<div class="line">status = krb5_mk_safe (context,</div>
+<div class="line"> auth_context,</div>
+<div class="line"> &amp;data,</div>
+<div class="line"> &amp;packet,</div>
+<div class="line"> NULL);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_mk_safe&quot;</span>);</div>
+<div class="ttc" id="agroup__krb5_html_gaa059e96dde4e0b8c082eb6f3d570b7bc"><div class="ttname"><a href="group__krb5.html#gaa059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero</a></div><div class="ttdeci">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_zero(krb5_data *p)</div><div class="ttdef"><b>Definition:</b> data.c:45</div></div>
+</div><!-- fragment --><p>And send it over the network.</p>
+<div class="fragment"><div class="line">len = packet.length;</div>
+<div class="line">net_len = htonl(len);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, &amp;net_len, 4) != 4)</div>
+<div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div>
+<div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, packet.data, len) != len)</div>
+<div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div>
+</div><!-- fragment --><p>To send encrypted (and signed) data krb5_mk_priv() should be used instead. krb5_mk_priv() works the same way as krb5_mk_safe(), with the exception that it encrypts the data in addition to signing it.</p>
+<div class="fragment"><div class="line">data.data = <span class="stringliteral">&quot;hemligt&quot;</span>;</div>
+<div class="line">data.length = 7;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__krb5.html#gab4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free</a> (&amp;packet);</div>
+<div class="line"> </div>
+<div class="line">status = krb5_mk_priv (context,</div>
+<div class="line"> auth_context,</div>
+<div class="line"> &amp;data,</div>
+<div class="line"> &amp;packet,</div>
+<div class="line"> NULL);</div>
+<div class="line"><span class="keywordflow">if</span> (status)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a> (context, 1, status, <span class="stringliteral">&quot;krb5_mk_priv&quot;</span>);</div>
+<div class="ttc" id="agroup__krb5_html_gab4b80ac7a8bbab89fe947ae1c7828ea8"><div class="ttname"><a href="group__krb5.html#gab4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free</a></div><div class="ttdeci">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_free(krb5_data *p)</div><div class="ttdef"><b>Definition:</b> data.c:63</div></div>
+</div><!-- fragment --><p>And send it over the network.</p>
+<div class="fragment"><div class="line">len = packet.length;</div>
+<div class="line">net_len = htonl(len);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, &amp;net_len, 4) != 4)</div>
+<div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div>
+<div class="line"><span class="keywordflow">if</span> (krb5_net_write (context, &amp;sock, packet.data, len) != len)</div>
+<div class="line"> err (1, <span class="stringliteral">&quot;krb5_net_write&quot;</span>);</div>
+</div><!-- fragment --><p>The server is using krb5_rd_safe() and krb5_rd_priv() to verify the signature and decrypt the packet.</p>
<h1><a class="anchor" id="intro_krb5_verify_user"></a>
Validating a password in an application</h1>
<p>See the manual page for krb5_verify_user().</p>
@@ -96,7 +210,8 @@ Error messages</h2>
<p>To get the error string, Heimdal uses <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. This is to return custom error messages (like <code>Can't find host/datan.example.com\@CODE.COM in /etc/krb5.conf.'' instead of a</code>Key table entry not found'' that error_message returns.</p>
<p>Heimdal uses a threadsafe(r) version of the com_err interface; the global com_err table isn't initialised. Then error_message returns quite a boring error string (just the error code itself). </p>
</div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/krb5_keytab_intro.html b/doc/doxyout/krb5/html/krb5_keytab_intro.html
index 70daebce21a1..783ebf27c89e 100644
--- a/doc/doxyout/krb5/html/krb5_keytab_intro.html
+++ b/doc/doxyout/krb5/html/krb5_keytab_intro.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">The keytab handing functions </div> </div>
</div><!--header-->
@@ -40,9 +41,55 @@ Keytab names</h2>
</ul>
<h2><a class="anchor" id="krb5_keytab_example"></a>
Keytab example</h2>
-<pre class="fragment">This is a minimalistic version of ktutil.
-</pre><div class="fragment"><div class="line"><span class="keywordtype">int</span></div><div class="line">main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line">{</div><div class="line"> krb5_context context;</div><div class="line"> krb5_keytab keytab;</div><div class="line"> krb5_kt_cursor cursor;</div><div class="line"> krb5_keytab_entry entry;</div><div class="line"> krb5_error_code ret;</div><div class="line"> <span class="keywordtype">char</span> *principal;</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a> (&amp;context) != 0)</div><div class="line"> errx(1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div><div class="line"></div><div class="line"> ret = <a class="code" href="group__krb5__keytab.html#gafcd059883c79dbd99a179bc4225d16b5">krb5_kt_default</a> (context, &amp;keytab);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_default&quot;</span>);</div><div class="line"></div><div class="line"> ret = <a class="code" href="group__krb5__keytab.html#ga1efd8ee48d6e3caa31cad475423b8917">krb5_kt_start_seq_get</a>(context, keytab, &amp;cursor);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_start_seq_get&quot;</span>);</div><div class="line"> <span class="keywordflow">while</span>((ret = <a class="code" href="group__krb5__keytab.html#gac40140c41333a86d3c40426f50b4e1b0">krb5_kt_next_entry</a>(context, keytab, &amp;entry, &amp;cursor)) == 0){</div><div class="line"> <a class="code" href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a>(context, entry.principal, &amp;principal);</div><div class="line"> printf(<span class="stringliteral">&quot;principal: %s\n&quot;</span>, principal);</div><div class="line"> free(principal);</div><div class="line"> <a class="code" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry</a>(context, &amp;entry);</div><div class="line"> }</div><div class="line"> ret = <a class="code" href="group__krb5__keytab.html#ga11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get</a>(context, keytab, &amp;cursor);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_end_seq_get&quot;</span>);</div><div class="line"> ret = <a class="code" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close</a>(context, keytab);</div><div class="line"> <span class="keywordflow">if</span> (ret)</div><div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_close&quot;</span>);</div><div class="line"> <a class="code" href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a>(context);</div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --> </div></div><!-- contents -->
+<p>This is a minimalistic version of ktutil.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span></div>
+<div class="line">main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
+<div class="line">{</div>
+<div class="line"> krb5_context context;</div>
+<div class="line"> krb5_keytab keytab;</div>
+<div class="line"> krb5_kt_cursor cursor;</div>
+<div class="line"> krb5_keytab_entry entry;</div>
+<div class="line"> krb5_error_code ret;</div>
+<div class="line"> <span class="keywordtype">char</span> *principal;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a> (&amp;context) != 0)</div>
+<div class="line"> errx(1, <span class="stringliteral">&quot;krb5_context&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> ret = <a class="code" href="group__krb5__keytab.html#gafcd059883c79dbd99a179bc4225d16b5">krb5_kt_default</a> (context, &amp;keytab);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_default&quot;</span>);</div>
+<div class="line"> </div>
+<div class="line"> ret = <a class="code" href="group__krb5__keytab.html#ga1efd8ee48d6e3caa31cad475423b8917">krb5_kt_start_seq_get</a>(context, keytab, &amp;cursor);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_start_seq_get&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">while</span>((ret = <a class="code" href="group__krb5__keytab.html#gac40140c41333a86d3c40426f50b4e1b0">krb5_kt_next_entry</a>(context, keytab, &amp;entry, &amp;cursor)) == 0){</div>
+<div class="line"> <a class="code" href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a>(context, entry.principal, &amp;principal);</div>
+<div class="line"> printf(<span class="stringliteral">&quot;principal: %s\n&quot;</span>, principal);</div>
+<div class="line"> free(principal);</div>
+<div class="line"> <a class="code" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry</a>(context, &amp;entry);</div>
+<div class="line"> }</div>
+<div class="line"> ret = <a class="code" href="group__krb5__keytab.html#ga11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get</a>(context, keytab, &amp;cursor);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_end_seq_get&quot;</span>);</div>
+<div class="line"> ret = <a class="code" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close</a>(context, keytab);</div>
+<div class="line"> <span class="keywordflow">if</span> (ret)</div>
+<div class="line"> <a class="code" href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a>(context, 1, ret, <span class="stringliteral">&quot;krb5_kt_close&quot;</span>);</div>
+<div class="line"> <a class="code" href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a>(context);</div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+<div class="ttc" id="agroup__krb5__error_html_gad75c268bcf26225ee8d4a39c178131a1"><div class="ttname"><a href="group__krb5__error.html#gad75c268bcf26225ee8d4a39c178131a1">krb5_err</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_err(krb5_context context, int eval, krb5_error_code code, const char *fmt,...) __attribute__((__noreturn__</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_ga11289efb407d93a1f84d5c64731a4bd1"><div class="ttname"><a href="group__krb5__keytab.html#ga11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get(krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</div><div class="ttdef"><b>Definition:</b> keytab.c:847</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_ga1efd8ee48d6e3caa31cad475423b8917"><div class="ttname"><a href="group__krb5__keytab.html#ga1efd8ee48d6e3caa31cad475423b8917">krb5_kt_start_seq_get</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get(krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</div><div class="ttdef"><b>Definition:</b> keytab.c:790</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_gab67f5ae0a7c4b87d193218b842cad590"><div class="ttname"><a href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close(krb5_context context, krb5_keytab id)</div><div class="ttdef"><b>Definition:</b> keytab.c:484</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_gac0774ab1407eaaaa0e5998478de246e2"><div class="ttname"><a href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry(krb5_context context, krb5_keytab_entry *entry)</div><div class="ttdef"><b>Definition:</b> keytab.c:768</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_gac40140c41333a86d3c40426f50b4e1b0"><div class="ttname"><a href="group__krb5__keytab.html#gac40140c41333a86d3c40426f50b4e1b0">krb5_kt_next_entry</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry(krb5_context context, krb5_keytab id, krb5_keytab_entry *entry, krb5_kt_cursor *cursor)</div><div class="ttdef"><b>Definition:</b> keytab.c:819</div></div>
+<div class="ttc" id="agroup__krb5__keytab_html_gafcd059883c79dbd99a179bc4225d16b5"><div class="ttname"><a href="group__krb5__keytab.html#gafcd059883c79dbd99a179bc4225d16b5">krb5_kt_default</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default(krb5_context context, krb5_keytab *id)</div><div class="ttdef"><b>Definition:</b> keytab.c:333</div></div>
+<div class="ttc" id="agroup__krb5__principal_html_gaac881051ed59fe0dcd08cee62280b332"><div class="ttname"><a href="group__krb5__principal.html#gaac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name(krb5_context context, krb5_const_principal principal, char **name)</div><div class="ttdef"><b>Definition:</b> principal.c:608</div></div>
+<div class="ttc" id="agroup__krb5_html_gabd94206e186c58a093975424a4a567a8"><div class="ttname"><a href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context</a></div><div class="ttdeci">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context(krb5_context *context)</div><div class="ttdef"><b>Definition:</b> context.c:417</div></div>
+<div class="ttc" id="agroup__krb5_html_gae51d83f5d5f589883f1cd10887892777"><div class="ttname"><a href="group__krb5.html#gae51d83f5d5f589883f1cd10887892777">krb5_free_context</a></div><div class="ttdeci">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context(krb5_context context)</div><div class="ttdef"><b>Definition:</b> context.c:615</div></div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/krb5_principal_intro.html b/doc/doxyout/krb5/html/krb5_principal_intro.html
index c724f25ffa05..14621ca24aeb 100644
--- a/doc/doxyout/krb5/html/krb5_principal_intro.html
+++ b/doc/doxyout/krb5/html/krb5_principal_intro.html
@@ -8,17 +8,18 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
-<div class="header">
+<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">The principal handing functions. </div> </div>
</div><!--header-->
@@ -28,7 +29,8 @@ host/hummel.it.su.se@SU.SE
host/admin@H5L.ORG
</pre><p>See the library functions here: <a class="el" href="group__krb5__principal.html">Heimdal Kerberos 5 principal functions</a> </p>
</div></div><!-- contents -->
+</div><!-- PageDoc -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/menu.js b/doc/doxyout/krb5/html/menu.js
index 97db4c239227..2fe2214f26aa 100644
--- a/doc/doxyout/krb5/html/menu.js
+++ b/doc/doxyout/krb5/html/menu.js
@@ -1,3 +1,27 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ 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.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
@@ -17,10 +41,11 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchEnabled) {
if (serverSide) {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+ $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
} else {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+ $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
}
}
$('#main-menu').smartmenus();
}
+/* @license-end */
diff --git a/doc/doxyout/krb5/html/menudata.js b/doc/doxyout/krb5/html/menudata.js
index 079c07467895..9a7647ea90aa 100644
--- a/doc/doxyout/krb5/html/menudata.js
+++ b/doc/doxyout/krb5/html/menudata.js
@@ -1,3 +1,27 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ 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.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Related Pages",url:"pages.html"},
diff --git a/doc/doxyout/krb5/html/modules.html b/doc/doxyout/krb5/html/modules.html
index 8faf32df1ce0..a9b1c7ca6840 100644
--- a/doc/doxyout/krb5/html/modules.html
+++ b/doc/doxyout/krb5/html/modules.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -45,6 +46,6 @@ $(function() {
</div><!-- directory -->
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/pages.html b/doc/doxyout/krb5/html/pages.html
index a09633dd4e58..401705200525 100644
--- a/doc/doxyout/krb5/html/pages.html
+++ b/doc/doxyout/krb5/html/pages.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -35,6 +36,6 @@ $(function() {
</div><!-- directory -->
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/structkrb5__crypto__iov.html b/doc/doxyout/krb5/html/structkrb5__crypto__iov.html
index 832416214b73..45c7a49b9a1c 100644
--- a/doc/doxyout/krb5/html/structkrb5__crypto__iov.html
+++ b/doc/doxyout/krb5/html/structkrb5__crypto__iov.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -28,10 +29,10 @@ $(function() {
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Semi private, not stable yet </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>/Volumes/gitvol/viktor/heimdal/lib/krb5/krb5.h</li>
+<li>/home/jaltman/src/sourdough-waffles/lib/krb5/krb5.h</li>
</ul>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/structkrb5plugin__an2ln__ftable__desc.html b/doc/doxyout/krb5/html/structkrb5plugin__an2ln__ftable__desc.html
index 3b3e5b2df797..3167ec7ba508 100644
--- a/doc/doxyout/krb5/html/structkrb5plugin__an2ln__ftable__desc.html
+++ b/doc/doxyout/krb5/html/structkrb5plugin__an2ln__ftable__desc.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -52,10 +53,10 @@ $(function() {
<li>set_res_ctx, the first argument to set_res_f (the second is the result lname string) </li>
</ol>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>/Volumes/gitvol/viktor/heimdal/lib/krb5/an2ln_plugin.h</li>
+<li>/home/jaltman/src/sourdough-waffles/lib/krb5/an2ln_plugin.h</li>
</ul>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/structkrb5plugin__db__ftable__desc.html b/doc/doxyout/krb5/html/structkrb5plugin__db__ftable__desc.html
index 3e72c91f6c9e..0d7306989d93 100644
--- a/doc/doxyout/krb5/html/structkrb5plugin__db__ftable__desc.html
+++ b/doc/doxyout/krb5/html/structkrb5plugin__db__ftable__desc.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -31,7 +32,7 @@ $(function() {
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Description of the krb5 DB plugin facility. </p>
<p>The krb5_aname_to_lname(3) function's DB rule is pluggable. The plugin is named KRB5_PLUGIN_DB ("krb5_db_plug"), with a single minor version, KRB5_PLUGIN_DB_VERSION_0 (0).</p>
-<p>The plugin consists of a data symbol referencing a structure of type <a class="el" href="structkrb5plugin__db__ftable__desc.html" title="Description of the krb5 DB plugin facility. ">krb5plugin_db_ftable_desc</a>, with three fields:</p>
+<p>The plugin consists of a data symbol referencing a structure of type <a class="el" href="structkrb5plugin__db__ftable__desc.html" title="Description of the krb5 DB plugin facility.">krb5plugin_db_ftable_desc</a>, with three fields:</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">init</td><td>Plugin initialization function (see krb5-plugin(7))</td></tr>
@@ -42,10 +43,10 @@ $(function() {
</dl>
<p>The init entry point is expected to call heim_db_register(). The fini entry point is expected to do nothing. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>/Volumes/gitvol/viktor/heimdal/lib/krb5/db_plugin.h</li>
+<li>/home/jaltman/src/sourdough-waffles/lib/krb5/db_plugin.h</li>
</ul>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/structkrb5plugin__kuserok__ftable__desc.html b/doc/doxyout/krb5/html/structkrb5plugin__kuserok__ftable__desc.html
index 0674637a8a1f..3f95805a9adc 100644
--- a/doc/doxyout/krb5/html/structkrb5plugin__kuserok__ftable__desc.html
+++ b/doc/doxyout/krb5/html/structkrb5plugin__kuserok__ftable__desc.html
@@ -8,14 +8,15 @@
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
-<!-- Generated by Doxygen 1.8.13 -->
+<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
-</script>
+/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
@@ -54,10 +55,10 @@ $(function() {
<li>result, a krb5_boolean pointer where the plugin will output its result </li>
</ol>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>/Volumes/gitvol/viktor/heimdal/lib/krb5/kuserok_plugin.h</li>
+<li>/home/jaltman/src/sourdough-waffles/lib/krb5/kuserok_plugin.h</li>
</ul>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
-Generated on Fri Jun 7 2019 02:49:56 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.8.13</small></address>
+Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
</body>
</html>
diff --git a/doc/doxyout/krb5/html/tabs.css b/doc/doxyout/krb5/html/tabs.css
index a28614b8e3d0..85a0cd5b5857 100644
--- a/doc/doxyout/krb5/html/tabs.css
+++ b/doc/doxyout/krb5/html/tabs.css
@@ -1 +1 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file
diff --git a/doc/doxyout/krb5/man/man3/krb5.3 b/doc/doxyout/krb5/man/man3/krb5.3
index f213a9114c8f..d7f92427baea 100644
--- a/doc/doxyout/krb5/man/man3/krb5.3
+++ b/doc/doxyout/krb5/man/man3/krb5.3
@@ -1,8 +1,8 @@
-.TH "krb5" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5
+krb5 \- Heimdal Kerberos 5 library
.SH SYNOPSIS
.br
.PP
@@ -186,14 +186,14 @@ krb5
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_et_list (krb5_context context, void(*)(struct et_list **) func)"
Add a specified list of error messages to the et list in context\&. Call func (probably a comerr-generated function) with a pointer to the current et_list\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A kerberos context\&.
.br
\fIfunc\fP The generated com_err et function\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -202,14 +202,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_extra_addresses (krb5_context context, krb5_addresses * addresses)"
Add extra address to the address list that the library will add to the client's address list when communicating with the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP addreses to add
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -218,14 +218,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_ignore_addresses (krb5_context context, krb5_addresses * addresses)"
Add extra addresses to ignore when fetching addresses from the underlaying operating system\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP addreses to ignore
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -255,7 +255,7 @@ KRB5_TC_MATCH_2ND_TKT Compares the second tickets (used by user-to-user authenti
KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket\&.
.PP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -266,7 +266,7 @@ KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket\&.
\fIcreds\fP cred to compare with\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
return TRUE if mcred and creds are equal, FALSE if not\&.
.RE
@@ -275,14 +275,14 @@ return TRUE if mcred and creds are equal, FALSE if not\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_context (krb5_context context, krb5_context * out)"
Make a copy for the Kerberos 5 context, the new krb5_context shoud be freed with \fBkrb5_free_context()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP the Kerberos context to copy
.br
\fIout\fP the copy of the Kerberos, set to NULL error\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -291,7 +291,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds (krb5_context context, const krb5_creds * incred, krb5_creds ** outcred)"
Copy krb5_creds\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -300,7 +300,7 @@ Copy krb5_creds\&.
\fIoutcred\fP destination credential, free with \fBkrb5_free_creds()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -309,7 +309,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds_contents (krb5_context context, const krb5_creds * incred, krb5_creds * c)"
Copy content of krb5_creds\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -318,7 +318,7 @@ Copy content of krb5_creds\&.
\fIc\fP destination credential, free with \fBkrb5_free_cred_contents()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -327,7 +327,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_data (krb5_context context, const krb5_data * indata, krb5_data ** outdata)"
Copy the data into a newly allocated krb5_data\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -336,7 +336,7 @@ Copy the data into a newly allocated krb5_data\&.
\fIoutdata\fP new krb5_date to copy too\&. Free with \fBkrb5_free_data()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&.
.RE
@@ -345,7 +345,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_host_realm (krb5_context context, const krb5_realm * from, krb5_realm ** to)"
Copy the list of realms from `from' to `to'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -354,7 +354,7 @@ Copy the list of realms from `from' to `to'\&.
\fIto\fP list of realms to copy to, free list of \fBkrb5_free_host_realm()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -363,7 +363,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_ticket (krb5_context context, const krb5_ticket * from, krb5_ticket ** to)"
Copy ticket and content
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -372,7 +372,7 @@ Copy ticket and content
\fIto\fP new copy of ticket, free with \fBkrb5_free_ticket()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -381,12 +381,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_creds_get_ticket_flags (krb5_creds * creds)"
Returns the ticket flags for the credentials in creds\&. See also \fBkrb5_ticket_get_flags()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcreds\fP credential to get ticket flags from
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
ticket flags
.RE
@@ -395,14 +395,14 @@ ticket flags
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_alloc (krb5_data * p, int len)"
Allocate data of and krb5_data\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIp\fP krb5_data to allocate\&.
.br
\fIlen\fP size to allocate\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&.
.RE
@@ -411,14 +411,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_cmp (const krb5_data * data1, const krb5_data * data2)"
Compare to data\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIdata1\fP krb5_data to compare
.br
\fIdata2\fP krb5_data to compare
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
return the same way as memcmp(), useful when sorting\&.
.RE
@@ -427,7 +427,7 @@ return the same way as memcmp(), useful when sorting\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_copy (krb5_data * p, const void * data, size_t len)"
Copy the data of len into the krb5_data\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIp\fP krb5_data to copy into\&.
.br
@@ -436,7 +436,7 @@ Copy the data of len into the krb5_data\&.
\fIlen\fP new size\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&.
.RE
@@ -445,14 +445,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_ct_cmp (const krb5_data * data1, const krb5_data * data2)"
Compare to data not exposing timing information from the checksum data
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIdata1\fP krb5_data to compare
.br
\fIdata2\fP krb5_data to compare
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
returns zero for same data, otherwise non zero\&.
.RE
@@ -461,7 +461,7 @@ returns zero for same data, otherwise non zero\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_free (krb5_data * p)"
Free the content of krb5_data structure, its ok to free a zeroed structure (with memset() or \fBkrb5_data_zero()\fP)\&. When done, the structure will be zeroed\&. The same function is called \fBkrb5_free_data_contents()\fP in MIT Kerberos\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIp\fP krb5_data to free\&.
.RE
@@ -470,14 +470,14 @@ Free the content of krb5_data structure, its ok to free a zeroed structure (with
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_realloc (krb5_data * p, int len)"
Grow (or shrink) the content of krb5_data to a new size\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIp\fP krb5_data to free\&.
.br
\fIlen\fP new size\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned\&.
.RE
@@ -486,7 +486,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_zero (krb5_data * p)"
Reset the (potentially uninitalized) krb5_data structure\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIp\fP krb5_data to reset\&.
.RE
@@ -495,12 +495,12 @@ Reset the (potentially uninitalized) krb5_data structure\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_config_files (char ** filenames)"
Free a list of configuration files\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIfilenames\fP list, terminated with a NULL pointer, to be freed\&. NULL is an valid argument\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -509,7 +509,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context (krb5_context context)"
Frees the krb5_context allocated by \fBkrb5_init_context()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP context to be freed\&.
.RE
@@ -518,14 +518,14 @@ Frees the krb5_context allocated by \fBkrb5_init_context()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_cred_contents (krb5_context context, krb5_creds * c)"
Free content of krb5_creds\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIc\fP krb5_creds to free\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -534,14 +534,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds (krb5_context context, krb5_creds * c)"
Free krb5_creds\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIc\fP krb5_creds to free\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -550,7 +550,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data (krb5_context context, krb5_data * p)"
Free krb5_data (and its content)\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -561,14 +561,14 @@ Free krb5_data (and its content)\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_ticket (krb5_context context, krb5_ticket * ticket)"
Free ticket and content
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
\fIticket\fP ticket to free
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -577,12 +577,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_config_files (char *** pfilenames)"
Get the global configuration list\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIpfilenames\fP return array of filenames, should be freed with \fBkrb5_free_config_files()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -591,7 +591,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_in_tkt_etypes (krb5_context context, krb5_pdu pdu_type, krb5_enctype ** etypes)"
Get the default encryption types that will be use in communcation with the KDC, clients and servers\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -600,7 +600,7 @@ Get the default encryption types that will be use in communcation with the KDC,
\fIetypes\fP Encryption types, array terminated with ETYPE_NULL(0), caller should free array with krb5_xfree():
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -609,12 +609,12 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_dns_canonicalize_hostname (krb5_context context)"
Get if the library uses DNS to canonicalize hostnames\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
return non zero if the library uses DNS to canonicalize hostnames\&.
.RE
@@ -625,14 +625,14 @@ Return the error string for the error code\&. The caller must not free the strin
.PP
This function is deprecated since its not threadsafe\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIcode\fP Kerberos error code\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
the error message matching code
.RE
@@ -641,14 +641,14 @@ the error message matching code
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_extra_addresses (krb5_context context, krb5_addresses * addresses)"
Get extra address to the address list that the library will add to the client's address list when communicating with the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP addreses to set
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -657,14 +657,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_fcache_version (krb5_context context, int * version)"
Get version of fcache that the library should use\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIversion\fP version number\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -673,14 +673,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_ignore_addresses (krb5_context context, krb5_addresses * addresses)"
Get extra addresses to ignore when fetching addresses from the underlaying operating system\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP list addreses ignored
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -689,7 +689,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_kdc_sec_offset (krb5_context context, int32_t * sec, int32_t * usec)"
Get current offset in time to the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -698,7 +698,7 @@ Get current offset in time to the KDC\&.
\fIusec\fP micro seconds part of offset\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
returns zero
.RE
@@ -707,12 +707,12 @@ returns zero
.SS "KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_get_max_time_skew (krb5_context context)"
Get max time skew allowed\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
timeskew in seconds\&.
.RE
@@ -721,12 +721,12 @@ timeskew in seconds\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_use_admin_kdc (krb5_context context)"
Make the kerberos library default to the admin KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
boolean flag to telling the context will use admin KDC as the default KDC\&.
.RE
@@ -735,12 +735,12 @@ boolean flag to telling the context will use admin KDC as the default KDC\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context (krb5_context * context)"
Initializes the context structure and reads the configuration file /etc/krb5\&.conf\&. The structure should be freed by calling \fBkrb5_free_context()\fP when it is no longer being used\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP pointer to returned context
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an errno code is returned\&. Failure means either that something bad happened during initialization (typically ENOMEM) or that Kerberos should not be used ENXIO\&. If the function returns HEIM_ERR_RANDOM_OFFLINE, the random source is not available and later Kerberos calls might fail\&.
.RE
@@ -751,7 +751,7 @@ Most Kerberos users calls \fBkrb5_init_context()\fP, so this is useful point whe
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_ets (krb5_context context)"
Init the built-in ets in the Kerberos library\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP kerberos context to add the ets too
.RE
@@ -760,7 +760,7 @@ Init the built-in ets in the Kerberos library\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_thread_safe (void)"
Runtime check if the Kerberos library was complied with thread support\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE if the library was compiled with thread support, FALSE if not\&.
.RE
@@ -769,7 +769,7 @@ TRUE if the library was compiled with thread support, FALSE if not\&.
.SS "KRB5_LIB_FUNCTION const krb5_enctype* KRB5_LIB_CALL krb5_kerberos_enctypes (krb5_context context)"
Returns the list of Kerberos encryption types sorted in order of most preferred to least preferred encryption type\&. Note that some encryption types might be disabled, so you need to check with \fBkrb5_enctype_valid()\fP before using the encryption type\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
list of enctypes, terminated with ETYPE_NULL\&. Its a static array completed into the Kerberos library so the content doesn't need to be freed\&.
.RE
@@ -782,14 +782,14 @@ Returns an the struct addrinfo in in that corresponds to the information in `hos
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_prepend_config_files_default (const char * filelist, char *** pfilenames)"
Prepend the filename to the global configuration list\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIfilelist\fP a filename to add to the default list of filename
.br
\fIpfilenames\fP return array of filenames, should be freed with \fBkrb5_free_config_files()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -798,14 +798,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_config_files (krb5_context context, char ** filenames)"
Reinit the context from a new set of filenames\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP context to add configuration too\&.
.br
\fIfilenames\fP array of filenames, end of list is indicated with a NULL filename\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -814,14 +814,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_default_in_tkt_etypes (krb5_context context, const krb5_enctype * etypes)"
Set the default encryption types that will be use in communcation with the KDC, clients and servers\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIetypes\fP Encryption types, array terminated with ETYPE_NULL (0)\&. A value of NULL resets the encryption types to the defaults set in the configuration file\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -830,7 +830,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_dns_canonicalize_hostname (krb5_context context, krb5_boolean flag)"
Set if the library should use DNS to canonicalize hostnames\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -841,14 +841,14 @@ Set if the library should use DNS to canonicalize hostnames\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_extra_addresses (krb5_context context, const krb5_addresses * addresses)"
Set extra address to the address list that the library will add to the client's address list when communicating with the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP addreses to set
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -857,14 +857,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_fcache_version (krb5_context context, int version)"
Set version of fcache that the library should use\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIversion\fP version number\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -875,14 +875,14 @@ Enable and disable home directory access on either the global state or the krb5_
.PP
For home directory access to be allowed, both the global state and the krb5_context state have to be allowed\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context or NULL
.br
\fIallow\fP allow if TRUE home directory
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
the old value
.RE
@@ -891,14 +891,14 @@ the old value
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_ignore_addresses (krb5_context context, const krb5_addresses * addresses)"
Set extra addresses to ignore when fetching addresses from the underlaying operating system\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
\fIaddresses\fP addreses to ignore
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -907,7 +907,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_kdc_sec_offset (krb5_context context, int32_t sec, int32_t usec)"
Set current offset in time to the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -916,7 +916,7 @@ Set current offset in time to the KDC\&.
\fIusec\fP micro seconds part of offset\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
returns zero
.RE
@@ -925,7 +925,7 @@ returns zero
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_max_time_skew (krb5_context context, time_t t)"
Set max time skew allowed\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -936,7 +936,7 @@ Set max time skew allowed\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_password (krb5_context context, krb5_creds * creds, const char * newpw, krb5_principal targprinc, int * result_code, krb5_data * result_code_string, krb5_data * result_string)"
Change password using creds\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -953,7 +953,7 @@ Change password using creds\&.
\fIresult_string\fP A message from the kpasswd service or the library in human printable form\&. The string is NUL terminated\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed\&.
.RE
@@ -962,7 +962,7 @@ On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_real_time (krb5_context context, krb5_timestamp sec, int32_t usec)"
Set the absolute time that the caller knows the kdc has so the kerberos library can calculate the relative diffrence beteen the KDC time and local system time\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
@@ -971,7 +971,7 @@ Set the absolute time that the caller knows the kdc has so the kerberos library
\fIusec\fP The applications new of 'now' in micro seconds
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -980,7 +980,7 @@ If the caller passes in a negative usec, its assumed to be unknown and the funct
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_use_admin_kdc (krb5_context context, krb5_boolean flag)"
Make the kerberos library default to the admin KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -991,7 +991,7 @@ Make the kerberos library default to the admin KDC\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_authorization_data_type (krb5_context context, krb5_ticket * ticket, int type, krb5_data * data)"
Extract the authorization data type of type from the ticket\&. Store the field in data\&. This function is to use for kerberos applications\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -1006,7 +1006,7 @@ Extract the authorization data type of type from the ticket\&. Store the field i
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_client (krb5_context context, const krb5_ticket * ticket, krb5_principal * client)"
Return client principal in ticket
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -1015,7 +1015,7 @@ Return client principal in ticket
\fIclient\fP client principal, free with \fBkrb5_free_principal()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -1024,14 +1024,14 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_ticket_get_endtime (krb5_context context, const krb5_ticket * ticket)"
Return end time of ticket
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
\fIticket\fP ticket to copy
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
end time of ticket
.RE
@@ -1040,7 +1040,7 @@ end time of ticket
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_server (krb5_context context, const krb5_ticket * ticket, krb5_principal * server)"
Return server principal in ticket
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -1049,7 +1049,7 @@ Return server principal in ticket
\fIserver\fP server principal, free with \fBkrb5_free_principal()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -1057,4 +1057,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_address.3 b/doc/doxyout/krb5/man/man3/krb5_address.3
index 824c8ac79d87..c7de4afb174d 100644
--- a/doc/doxyout/krb5/man/man3/krb5_address.3
+++ b/doc/doxyout/krb5/man/man3/krb5_address.3
@@ -1,8 +1,8 @@
-.TH "krb5_address" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_address" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_address
+krb5_address \- Heimdal Kerberos 5 address functions
.SH SYNOPSIS
.br
.PP
@@ -78,7 +78,7 @@ krb5_address
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_addr2sockaddr (krb5_context context, const krb5_address * addr, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)"
krb5_addr2sockaddr sets the 'struct sockaddr sockaddr' from addr and port\&. The argument sa_size should initially contain the size of the sa and after the call, it will contain the actual length of the address\&. In case of the sa is too small to fit the whole address, the up to *sa_size will be stored, and then *sa_size will be set to the required length\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -91,7 +91,7 @@ krb5_addr2sockaddr sets the 'struct sockaddr sockaddr' from addr and port\&. The
\fIport\fP set port in sa\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported\&.
.RE
@@ -100,7 +100,7 @@ Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_compare (krb5_context context, const krb5_address * addr1, const krb5_address * addr2)"
krb5_address_compare compares the addresses addr1 and addr2\&. Returns TRUE if the two addresses are the same\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -109,7 +109,7 @@ krb5_address_compare compares the addresses addr1 and addr2\&. Returns TRUE if t
\fIaddr2\fP address to compare
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an TRUE is the address are the same FALSE if not
.RE
@@ -118,7 +118,7 @@ Return an TRUE is the address are the same FALSE if not
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_address_order (krb5_context context, const krb5_address * addr1, const krb5_address * addr2)"
krb5_address_order compares the addresses addr1 and addr2 so that it can be used for sorting addresses\&. If the addresses are the same address krb5_address_order will return 0\&. Behavies like memcmp(2)\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -127,7 +127,7 @@ krb5_address_order compares the addresses addr1 and addr2 so that it can be used
\fIaddr2\fP krb5_address to compare
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
< 0 if address addr1 in 'less' then addr2\&. 0 if addr1 and addr2 is the same address, > 0 if addr2 is 'less' then addr1\&.
.RE
@@ -136,7 +136,7 @@ krb5_address_order compares the addresses addr1 and addr2 so that it can be used
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_address_prefixlen_boundary (krb5_context context, const krb5_address * inaddr, unsigned long prefixlen, krb5_address * low, krb5_address * high)"
Calculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low' and `high'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -149,7 +149,7 @@ Calculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low'
\fIhigh\fP highest address
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -158,7 +158,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_search (krb5_context context, const krb5_address * addr, const krb5_addresses * addrlist)"
krb5_address_search checks if the address addr is a member of the address set list addrlist \&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -167,7 +167,7 @@ krb5_address_search checks if the address addr is a member of the address set li
\fIaddrlist\fP list of addresses to look in for addr\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -176,7 +176,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_anyaddr (krb5_context context, int af, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)"
krb5_anyaddr fills in a 'struct sockaddr sa' that can be used to bind(2) to\&. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -189,7 +189,7 @@ krb5_anyaddr fills in a 'struct sockaddr sa' that can be used to bind(2) to\&. T
\fIport\fP for to fill into sa\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -198,7 +198,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_append_addresses (krb5_context context, krb5_addresses * dest, const krb5_addresses * source)"
krb5_append_addresses adds the set of addresses in source to dest\&. While copying the addresses, duplicates are also sorted out\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -207,7 +207,7 @@ krb5_append_addresses adds the set of addresses in source to dest\&. While copyi
\fIsource\fP adresses that are going to be added to dest
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -216,7 +216,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_address (krb5_context context, const krb5_address * inaddr, krb5_address * outaddr)"
krb5_copy_address copies the content of address inaddr to outaddr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -225,7 +225,7 @@ krb5_copy_address copies the content of address inaddr to outaddr\&.
\fIoutaddr\fP pointer to destination address
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -234,7 +234,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_addresses (krb5_context context, const krb5_addresses * inaddr, krb5_addresses * outaddr)"
krb5_copy_addresses copies the content of addresses inaddr to outaddr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -243,7 +243,7 @@ krb5_copy_addresses copies the content of addresses inaddr to outaddr\&.
\fIoutaddr\fP pointer to destination addresses
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -252,14 +252,14 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_address (krb5_context context, krb5_address * address)"
krb5_free_address frees the data stored in the address that is alloced with any of the krb5_address functions\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
\fIaddress\fP addresss to be freed\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -268,14 +268,14 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_addresses (krb5_context context, krb5_addresses * addresses)"
krb5_free_addresses frees the data stored in the address that is alloced with any of the krb5_address functions\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
\fIaddresses\fP addressses to be freed\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -284,7 +284,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2addr (krb5_context context, int af, const char * haddr, krb5_address * addr)"
krb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it operates on a krb5_address instead of a struct sockaddr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -295,7 +295,7 @@ krb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it oper
\fIaddr\fP returned krb5_address\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -304,7 +304,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2sockaddr (krb5_context context, int af, const char * addr, struct sockaddr * sa, krb5_socklen_t * sa_size, int port)"
krb5_h_addr2sockaddr initializes a 'struct sockaddr sa' from af and the 'struct hostent' (see gethostbyname(3) ) h_addr_list component\&. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -319,7 +319,7 @@ krb5_h_addr2sockaddr initializes a 'struct sockaddr sa' from af and the 'struct
\fIport\fP port to set in sa\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -328,7 +328,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_addrport (krb5_context context, krb5_address ** res, const krb5_address * addr, int16_t port)"
Create an address of type KRB5_ADDRESS_ADDRPORT from (addr, port)
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -339,7 +339,7 @@ Create an address of type KRB5_ADDRESS_ADDRPORT from (addr, port)
\fIport\fP port to use
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -348,7 +348,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL krb5_max_sockaddr_size (void)"
krb5_max_sockaddr_size returns the max size of the \&.Li struct sockaddr that the Kerberos library will return\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an size_t of the maximum struct sockaddr\&.
.RE
@@ -357,7 +357,7 @@ Return an size_t of the maximum struct sockaddr\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_address (krb5_context context, const char * string, krb5_addresses * addresses)"
krb5_parse_address returns the resolved hostname in string to the krb5_addresses addresses \&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -366,7 +366,7 @@ krb5_parse_address returns the resolved hostname in string to the krb5_addresses
\fIaddresses\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -375,7 +375,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_print_address (const krb5_address * addr, char * str, size_t len, size_t * ret_len)"
krb5_print_address prints the address in addr to the string string that have the length len\&. If ret_len is not NULL, it will be filled with the length of the string if size were unlimited (not including the final NUL) \&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIaddr\fP address to be printed
.br
@@ -386,7 +386,7 @@ krb5_print_address prints the address in addr to the string string that have the
\fIret_len\fP return length the str\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -395,7 +395,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2address (krb5_context context, const struct sockaddr * sa, krb5_address * addr)"
krb5_sockaddr2address stores a address a 'struct sockaddr' sa in the krb5_address addr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -404,7 +404,7 @@ krb5_sockaddr2address stores a address a 'struct sockaddr' sa in the krb5_addres
\fIaddr\fP an Kerberos 5 address to store the address in\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -413,7 +413,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2port (krb5_context context, const struct sockaddr * sa, int16_t * port)"
krb5_sockaddr2port extracts a port (if possible) from a "struct sockaddr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -422,7 +422,7 @@ krb5_sockaddr2port extracts a port (if possible) from a "struct sockaddr\&.
\fIport\fP a pointer to an int16_t store the port in\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported\&.
.RE
@@ -431,12 +431,12 @@ Return an error code or 0\&. Will return KRB5_PROG_ATYPE_NOSUPP in case address
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_sockaddr_uninteresting (const struct sockaddr * sa)"
krb5_sockaddr_uninteresting returns TRUE for all \&.Fa sa that the kerberos library thinks are uninteresting\&. One example are link local addresses\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsa\fP pointer to struct sockaddr that might be interesting\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return a non zero for uninteresting addresses\&.
.RE
@@ -444,4 +444,4 @@ Return a non zero for uninteresting addresses\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_auth.3 b/doc/doxyout/krb5/man/man3/krb5_auth.3
index 661663f0c939..59b465a059d8 100644
--- a/doc/doxyout/krb5/man/man3/krb5_auth.3
+++ b/doc/doxyout/krb5/man/man3/krb5_auth.3
@@ -1,8 +1,8 @@
-.TH "krb5_auth" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_auth" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_auth
+krb5_auth \- Heimdal Kerberos 5 authentication functions
.SH SYNOPSIS
.br
.PP
@@ -36,7 +36,7 @@ krb5_auth
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_ctx (krb5_context context, krb5_auth_context * auth_context, const krb5_data * inbuf, krb5_const_principal server, krb5_rd_req_in_ctx inctx, krb5_rd_req_out_ctx * outctx)"
The core server function that verify application authentication requests from clients\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
@@ -51,7 +51,7 @@ The core server function that verify application authentication requests from cl
\fIoutctx\fP the return outctx, free with \fBkrb5_rd_req_out_ctx_free()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -60,14 +60,14 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_ctx_alloc (krb5_context context, krb5_rd_req_in_ctx * ctx)"
Allocate a krb5_rd_req_in_ctx as an input parameter to \fBkrb5_rd_req_ctx()\fP\&. The caller should free the context with krb5_rd_req_in_ctx_free() when done with the context\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
\fIctx\fP in ctx to \fBkrb5_rd_req_ctx()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -76,7 +76,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_keytab (krb5_context context, krb5_rd_req_in_ctx in, krb5_keytab keytab)"
Set the keytab that \fBkrb5_rd_req_ctx()\fP will use\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
@@ -85,7 +85,7 @@ Set the keytab that \fBkrb5_rd_req_ctx()\fP will use\&.
\fIkeytab\fP keytab that \fBkrb5_rd_req_ctx()\fP will use, only copy the pointer, so the caller must free they keytab after krb5_rd_req_in_ctx_free() is called\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -94,7 +94,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_pac_check (krb5_context context, krb5_rd_req_in_ctx in, krb5_boolean flag)"
Set if krb5_rq_red() is going to check the Windows PAC or not
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
@@ -103,7 +103,7 @@ Set if krb5_rq_red() is going to check the Windows PAC or not
\fIflag\fP flag to select if to check the pac (TRUE) or not (FALSE)\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -112,7 +112,7 @@ Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_rd_req_out_ctx_free (krb5_context context, krb5_rd_req_out_ctx ctx)"
Free the krb5_rd_req_out_ctx\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Keberos 5 context\&.
.br
@@ -123,7 +123,7 @@ Free the krb5_rd_req_out_ctx\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_out_get_server (krb5_context context, krb5_rd_req_out_ctx out, krb5_principal * principal)"
Get the principal that was used in the request from the client\&. Might not match whats in the ticket if \fBkrb5_rd_req_ctx()\fP searched in the keytab for a matching key\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -135,4 +135,4 @@ Get the principal that was used in the request from the client\&. Might not matc
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_ccache.3 b/doc/doxyout/krb5/man/man3/krb5_ccache.3
index f239a70c388a..d6cb671f1269 100644
--- a/doc/doxyout/krb5/man/man3/krb5_ccache.3
+++ b/doc/doxyout/krb5/man/man3/krb5_ccache.3
@@ -1,8 +1,8 @@
-.TH "krb5_ccache" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_ccache" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_ccache
+krb5_ccache \- Heimdal Kerberos 5 credential cache functions
.SH SYNOPSIS
.br
.PP
@@ -184,7 +184,7 @@ krb5_ccache
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_end_seq_get (krb5_context context, krb5_cc_cache_cursor cursor)"
Destroy the cursor `cursor'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -193,7 +193,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_get_first (krb5_context context, const char * type, krb5_cc_cache_cursor * cursor)"
Start iterating over all caches of specified type\&. See also \fBkrb5_cccol_cursor_new()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -202,7 +202,7 @@ Start iterating over all caches of specified type\&. See also \fBkrb5_cccol_curs
\fIcursor\fP cursor should be freed with \fBkrb5_cc_cache_end_seq_get()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -211,7 +211,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_match (krb5_context context, krb5_principal client, krb5_ccache * id)"
Search for a matching credential cache that have the `principal' as the default principal\&. On success, `id' needs to be freed with \fBkrb5_cc_close()\fP or \fBkrb5_cc_destroy()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -220,7 +220,7 @@ Search for a matching credential cache that have the `principal' as the default
\fIid\fP the returned credential cache
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
On failure, error code is returned and `id' is set to NULL\&.
.RE
@@ -229,7 +229,7 @@ On failure, error code is returned and `id' is set to NULL\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_cache_next (krb5_context context, krb5_cc_cache_cursor cursor, krb5_ccache * id)"
Retrieve the next cache pointed to by (`cursor') in `id' and advance `cursor'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -238,7 +238,7 @@ Retrieve the next cache pointed to by (`cursor') in `id' and advance `cursor'\&.
\fIid\fP next ccache
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or an error code\&. Returns KRB5_CC_END when the end of caches is reached, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -249,7 +249,7 @@ Clear `mcreds' so it can be used with krb5_cc_retrieve_cred
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_close (krb5_context context, krb5_ccache id)"
Stop using the ccache `id' and free the related resources\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -264,7 +264,7 @@ MIT compat glue
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_copy_match_f (krb5_context context, const krb5_ccache from, krb5_ccache to, krb5_boolean(*)(krb5_context, void *, const krb5_creds *) match, void * matchctx, unsigned int * matched)"
Copy the contents of `from' to `to' if the given match function return true\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -279,7 +279,7 @@ Copy the contents of `from' to `to' if the given match function return true\&.
\fImatched\fP set to true if there was a credential that matched, may be NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -288,7 +288,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_default (krb5_context context, krb5_ccache * id)"
Open the default ccache in `id'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -297,7 +297,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_cc_default_name (krb5_context context)"
Return a pointer to a context static string containing the default ccache name\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
String to the default credential cache name\&.
.RE
@@ -306,7 +306,7 @@ String to the default credential cache name\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_destroy (krb5_context context, krb5_ccache id)"
Remove the ccache `id'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -319,7 +319,7 @@ Generate a new ccache of type `ops' in `id'\&.
.PP
Deprecated: use \fBkrb5_cc_new_unique()\fP instead\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -328,7 +328,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_config (krb5_context context, krb5_ccache id, krb5_const_principal principal, const char * name, krb5_data * data)"
Get some configuration for the credential cache in the cache\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -347,7 +347,7 @@ Get the flags of `id', store them in `flags'\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_friendly_name (krb5_context context, krb5_ccache id, char ** name)"
Return a friendly name on credential cache\&. Free the result with krb5_xfree()\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -356,7 +356,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_full_name (krb5_context context, krb5_ccache id, char ** str)"
Return the complete resolvable name the cache
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -365,7 +365,7 @@ Return the complete resolvable name the cache
\fIstr\fP the returned name of a credential cache, free with krb5_xfree()
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 or an error (and then *str is set to NULL)\&.
.RE
@@ -376,7 +376,7 @@ Get the time offset betwen the client and the KDC
.PP
If the backend doesn't support KDC offset, use the context global setting\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -385,7 +385,7 @@ If the backend doesn't support KDC offset, use the context global setting\&.
\fIoffset\fP the offset in seconds
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -396,7 +396,7 @@ Get the lifetime of the initial ticket in the cache
.PP
Get the lifetime of the initial ticket in the cache, if the initial ticket was not found, the error code KRB5_CC_END is returned\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -405,7 +405,7 @@ Get the lifetime of the initial ticket in the cache, if the initial ticket was n
\fIt\fP the relative lifetime of the initial ticket
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -420,7 +420,7 @@ Return krb5_cc_ops of a the ccache `id'\&.
.SS "KRB5_LIB_FUNCTION const krb5_cc_ops* KRB5_LIB_CALL krb5_cc_get_prefix_ops (krb5_context context, const char * prefix)"
Get the cc ops that is registered in `context' to handle the prefix\&. prefix can be a complete credential cache name or a prefix, the function will only use part up to the first colon (:) if there is one\&. If prefix the argument is NULL, the default ccache implemtation is returned\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns NULL if ops not found\&.
.RE
@@ -429,7 +429,7 @@ Returns NULL if ops not found\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_get_principal (krb5_context context, krb5_ccache id, krb5_principal * principal)"
Return the principal of `id' in `principal'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -442,7 +442,7 @@ Return the version of `id'\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_initialize (krb5_context context, krb5_ccache id, krb5_principal primary_principal)"
Create a new ccache in `id' for `primary_principal'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -451,7 +451,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_last_change_time (krb5_context context, krb5_ccache id, krb5_timestamp * mtime)"
Return the last time the credential cache was modified\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -460,7 +460,7 @@ Return the last time the credential cache was modified\&.
\fImtime\fP the last modification time, set to 0 on error\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&.
.RE
@@ -469,7 +469,7 @@ Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_move (krb5_context context, krb5_ccache from, krb5_ccache to)"
Move the content from one credential cache to another\&. The operation is an atomic switch\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -478,7 +478,7 @@ Move the content from one credential cache to another\&. The operation is an ato
\fIto\fP the credential cache to move the content to
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
On sucess, from is freed\&. On failure, error code is returned and from and to are both still allocated, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -487,7 +487,7 @@ On sucess, from is freed\&. On failure, error code is returned and from and to a
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_new_unique (krb5_context context, const char * type, const char * hint, krb5_ccache * id)"
Generates a new unique ccache of \fCtype\fP in `id'\&. If `type' is NULL, the library chooses the default credential cache type\&. The supplied `hint' (that can be NULL) is a string that the credential cache type can use to base the name of the credential on, this is to make it easier for the user to differentiate the credentials\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -496,7 +496,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_next_cred (krb5_context context, const krb5_ccache id, krb5_cc_cursor * cursor, krb5_creds * creds)"
Retrieve the next cred pointed to by (`id', `cursor') in `creds' and advance `cursor'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -505,7 +505,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_register (krb5_context context, const krb5_cc_ops * ops, krb5_boolean override)"
Add a new ccache type with operations `ops', overwriting any existing one if `override'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -514,7 +514,7 @@ Add a new ccache type with operations `ops', overwriting any existing one if `ov
\fIoverride\fP flag to select if the registration is to overide an existing ops with the same name\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -525,7 +525,7 @@ Remove the credential identified by `cred', `which' from `id'\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_resolve (krb5_context context, const char * name, krb5_ccache * id)"
Find and allocate a ccache in `id' from the specification in `residual'\&. If the ccache name doesn't contain any colon, interpret it as a file name\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -534,7 +534,7 @@ Find and allocate a ccache in `id' from the specification in `residual'\&. If th
\fIid\fP return pointer to a found credential cache\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or an error code\&. In case of an error, id is set to NULL, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -543,7 +543,7 @@ Return 0 or an error code\&. In case of an error, id is set to NULL, see \fBkrb5
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_retrieve_cred (krb5_context context, krb5_ccache id, krb5_flags whichfields, const krb5_creds * mcreds, krb5_creds * creds)"
Retrieve the credential identified by `mcreds' (and `whichfields') from `id' in `creds'\&. 'creds' must be free by the caller using krb5_free_cred_contents\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -556,7 +556,7 @@ Retrieve the credential identified by `mcreds' (and `whichfields') from `id' in
\fIcreds\fP returned credential, free with \fBkrb5_free_cred_contents()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -565,7 +565,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_set_config (krb5_context context, krb5_ccache id, krb5_const_principal principal, const char * name, krb5_data * data)"
Store some configuration for the credential cache in the cache\&. Existing configuration under the same name is over-written\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -586,7 +586,7 @@ Set the flags of `id' to `flags'\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_set_friendly_name (krb5_context context, krb5_ccache id, const char * name)"
Set the friendly name on credential cache\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -597,7 +597,7 @@ Set the time offset betwen the client and the KDC
.PP
If the backend doesn't support KDC offset, use the context global setting\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -606,7 +606,7 @@ If the backend doesn't support KDC offset, use the context global setting\&.
\fIoffset\fP the offset in seconds
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -615,7 +615,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_start_seq_get (krb5_context context, const krb5_ccache id, krb5_cc_cursor * cursor)"
Start iterating over `id', `cursor' is initialized to the beginning\&. Caller must free the cursor with \fBkrb5_cc_end_seq_get()\fP\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -624,7 +624,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_store_cred (krb5_context context, krb5_ccache id, krb5_creds * creds)"
Store `creds' in the ccache `id'\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -635,7 +635,7 @@ Return true if the default credential cache support switch
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cc_switch (krb5_context context, krb5_ccache id)"
Switch the default default credential cache for a specific credcache type (and name for some implementations)\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -644,14 +644,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_free (krb5_context context, krb5_cccol_cursor * cursor)"
End an iteration and free all resources, can be done before end is reached\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
\fIcursor\fP the iteration cursor to be freed\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \fBkrb5_get_error_message()\fP\&.
.RE
@@ -660,14 +660,14 @@ Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \f
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_new (krb5_context context, krb5_cccol_cursor * cursor)"
Get a new cache interation cursor that will interate over all credentials caches independent of type\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
\fIcursor\fP passed into \fBkrb5_cccol_cursor_next()\fP and free with \fBkrb5_cccol_cursor_free()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 or and error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -676,7 +676,7 @@ Returns 0 or and error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_cursor_next (krb5_context context, krb5_cccol_cursor cursor, krb5_ccache * cache)"
Get next credential cache from the iteration\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -685,7 +685,7 @@ Get next credential cache from the iteration\&.
\fIcache\fP the returned cursor, pointer is set to NULL on failure and a cache on success\&. The returned cache needs to be freed with \fBkrb5_cc_close()\fP or destroyed with \fBkrb5_cc_destroy()\fP\&. MIT Kerberos behavies slightly diffrent and sets cache to NULL when all caches are iterated over and return 0\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \fBkrb5_get_error_message()\fP\&.
.RE
@@ -694,7 +694,7 @@ Return 0 or and error, KRB5_CC_END is returned at the end of iteration\&. See \f
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cccol_last_change_time (krb5_context context, const char * type, krb5_timestamp * mtime)"
Return the last modfication time for a cache collection\&. The query can be limited to a specific cache type\&. If the function return 0 and mtime is 0, there was no credentials in the caches\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -703,7 +703,7 @@ Return the last modfication time for a cache collection\&. The query can be limi
\fImtime\fP the last modification time, set to 0 on error\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&.
.RE
@@ -712,7 +712,7 @@ Return 0 or and error\&. See \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_validated_creds (krb5_context context, krb5_creds * creds, krb5_principal client, krb5_ccache ccache, char * service)"
Validate the newly fetch credential, see also krb5_verify_init_creds()\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -729,7 +729,7 @@ Validate the newly fetch credential, see also krb5_verify_init_creds()\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_config_principal (krb5_context context, krb5_const_principal principal)"
Return TRUE (non zero) if the principal is a configuration principal (generated part of \fBkrb5_cc_set_config()\fP)\&. Returns FALSE (zero) if not a configuration principal\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -877,4 +877,4 @@ Variable containing the FILE based credential cache implemention\&.
Variable containing the MEMORY based credential cache implemention\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3 b/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3
index 781165821b2b..6ecfa0e5da6a 100644
--- a/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3
+++ b/doc/doxyout/krb5/man/man3/krb5_ccache_intro.3
@@ -1,9 +1,9 @@
-.TH "krb5_ccache_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_ccache_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_ccache_introThe credential cache functions
- \-
+krb5_ccache_intro \- The credential cache functions
+
.SH "Kerberos credential caches"
.PP
krb5_ccache structure holds a Kerberos credential cache\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_credential.3 b/doc/doxyout/krb5/man/man3/krb5_credential.3
index 0f0be790116b..2950a0e02e42 100644
--- a/doc/doxyout/krb5/man/man3/krb5_credential.3
+++ b/doc/doxyout/krb5/man/man3/krb5_credential.3
@@ -1,8 +1,8 @@
-.TH "krb5_credential" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_credential" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_credential
+krb5_credential \- Heimdal Kerberos 5 credential handing functions
.SH SYNOPSIS
.br
.PP
@@ -63,7 +63,7 @@ krb5_credential
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_fwd_tgt_creds (krb5_context context, krb5_auth_context auth_context, const char * hostname, krb5_principal client, krb5_principal server, krb5_ccache ccache, int forwardable, krb5_data * out_data)"
Forward credentials for client to host hostname , making them forwardable if forwardable, and returning the blob of data to sent in out_data\&. If hostname == NULL, pick it from server\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A kerberos 5 context\&.
.br
@@ -82,7 +82,7 @@ Forward credentials for client to host hostname , making them forwardable if for
\fIout_data\fP the resulting credential\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -93,7 +93,7 @@ Gets tickets forwarded to hostname\&. If the tickets that are forwarded are addr
.PP
If the ticket have any address, hostname will be used for figure out the address to forward the ticket too\&. This since this might use DNS, its insecure and also doesn't represent configured all addresses of the host\&. For example, the host might have two adresses, one IPv4 and one IPv6 address where the later is not published in DNS\&. This IPv6 address might be used communications and thus the resulting ticket useless\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A kerberos 5 context\&.
.br
@@ -110,7 +110,7 @@ If the ticket have any address, hostname will be used for figure out the address
\fIout_data\fP the resulting credential\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -129,7 +129,7 @@ Get new credentials using password\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_creds_free (krb5_context context, krb5_init_creds_context ctx)"
Free the krb5_init_creds_context allocated by \fBkrb5_init_creds_init()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -140,7 +140,7 @@ Free the krb5_init_creds_context allocated by \fBkrb5_init_creds_init()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_get (krb5_context context, krb5_init_creds_context ctx)"
Get new credentials as setup by the krb5_init_creds_context\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -151,7 +151,7 @@ Get new credentials as setup by the krb5_init_creds_context\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_get_error (krb5_context context, krb5_init_creds_context ctx, KRB_ERROR * error)"
Get the last error from the transaction\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 or an error code
.RE
@@ -160,7 +160,7 @@ Returns 0 or an error code
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_init (krb5_context context, krb5_principal client, krb5_prompter_fct prompter, void * prompter_data, krb5_deltat start_time, krb5_get_init_creds_opt * options, krb5_init_creds_context * rctx)"
Start a new context to get a new initial credential\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -177,7 +177,7 @@ Start a new context to get a new initial credential\&.
\fIrctx\fP A new allocated free with \fBkrb5_init_creds_free()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -186,7 +186,7 @@ Start a new context to get a new initial credential\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_keytab (krb5_context context, krb5_init_creds_context ctx, krb5_keytab keytab)"
Set the keytab to use for authentication\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -195,7 +195,7 @@ Set the keytab to use for authentication\&.
\fIkeytab\fP the keytab to read the key from\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -204,7 +204,7 @@ Set the keytab to use for authentication\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_password (krb5_context context, krb5_init_creds_context ctx, const char * password)"
Sets the password that will use for the request\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -213,7 +213,7 @@ Sets the password that will use for the request\&.
\fIpassword\fP the password to use\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -222,7 +222,7 @@ Sets the password that will use for the request\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_creds_set_service (krb5_context context, krb5_init_creds_context ctx, const char * service)"
Sets the service that the is requested\&. This call is only neede for special initial tickets, by default the a krbtgt is fetched in the default realm\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -231,7 +231,7 @@ Sets the service that the is requested\&. This call is only neede for special in
\fIservice\fP the service given as a string, for example 'kadmind/admin'\&. If NULL, the default krbtgt in the clients realm is set\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -242,7 +242,7 @@ The core loop if krb5_get_init_creds() function family\&. Create the packets and
.PP
If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP instead\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -257,7 +257,7 @@ If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP
\fIflags\fP status of the round, if KRB5_INIT_CREDS_STEP_FLAG_CONTINUE is set, continue one more round\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or an Kerberos 5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -265,4 +265,4 @@ If the caller want all work been done for them, use \fBkrb5_init_creds_get()\fP
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_crypto.3 b/doc/doxyout/krb5/man/man3/krb5_crypto.3
index 032195dbfab7..239fc58c6bec 100644
--- a/doc/doxyout/krb5/man/man3/krb5_crypto.3
+++ b/doc/doxyout/krb5/man/man3/krb5_crypto.3
@@ -1,8 +1,8 @@
-.TH "krb5_crypto" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_crypto" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_crypto
+krb5_crypto \- Heimdal Kerberos 5 cryptography functions
.SH SYNOPSIS
.br
.PP
@@ -108,14 +108,14 @@ krb5_crypto
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL _krb5_enctype_requires_random_salt (krb5_context context, krb5_enctype enctype)"
Returns whether the encryption type should use randomly generated salts
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIenctype\fP encryption type to probe
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns true if generated salts should have random component
.RE
@@ -124,7 +124,7 @@ Returns true if generated salts should have random component
.SS "krb5_error_code _krb5_SP800_108_HMAC_KDF (krb5_context context, const krb5_data * kdf_K1, const krb5_data * kdf_label, const krb5_data * kdf_context, const EVP_MD * md, krb5_data * kdf_K0)"
As described in SP800-108 5\&.1 (for HMAC)
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -139,7 +139,7 @@ As described in SP800-108 5\&.1 (for HMAC)
\fIkdf_K0\fP Derived key data\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code for an failure or 0 on success\&.
.RE
@@ -148,14 +148,14 @@ Return an error code for an failure or 0 on success\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_allow_weak_crypto (krb5_context context, krb5_boolean enable)"
Enable or disable all weak encryption types
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIenable\fP true to enable, false to disable
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -164,7 +164,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cksumtype_to_enctype (krb5_context context, krb5_cksumtype ctype, krb5_enctype * etype)"
Return the coresponding encryption type for a checksum type\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -173,7 +173,7 @@ Return the coresponding encryption type for a checksum type\&.
\fIetype\fP The returned encryption, when the matching etype is not found, etype is set to ETYPE_NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code for an failure or 0 on success\&.
.RE
@@ -182,7 +182,7 @@ Return an error code for an failure or 0 on success\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock (krb5_context context, const krb5_keyblock * inblock, krb5_keyblock ** to)"
Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -191,7 +191,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&.
\fIto\fP the output key\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success or a Kerberos 5 error code
.RE
@@ -200,7 +200,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock_contents (krb5_context context, const krb5_keyblock * inblock, krb5_keyblock * to)"
Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -209,7 +209,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\
\fIto\fP the output key\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success or a Kerberos 5 error code
.RE
@@ -218,7 +218,7 @@ Copy a keyblock, free the output keyblock with \fBkrb5_free_keyblock_contents()\
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_create_checksum_iov (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, krb5_cksumtype * type)"
Create a Kerberos message checksum\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -233,7 +233,7 @@ Create a Kerberos message checksum\&.
\fItype\fP output data
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -242,14 +242,14 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_destroy (krb5_context context, krb5_crypto crypto)"
Free a crypto context created by \fBkrb5_crypto_init()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
\fIcrypto\fP crypto context to free
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -258,7 +258,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_fx_cf2 (krb5_context context, const krb5_crypto crypto1, const krb5_crypto crypto2, krb5_data * pepper1, krb5_data * pepper2, krb5_enctype enctype, krb5_keyblock * res)"
The FX-CF2 key derivation function, used in FAST and preauth framework\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -275,7 +275,7 @@ The FX-CF2 key derivation function, used in FAST and preauth framework\&.
\fIres\fP allocated key, free with \fBkrb5_free_keyblock_contents()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -284,7 +284,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getblocksize (krb5_context context, krb5_crypto crypto, size_t * blocksize)"
Return the blocksize used algorithm referenced by the crypto context
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -293,7 +293,7 @@ Return the blocksize used algorithm referenced by the crypto context
\fIblocksize\fP the resulting blocksize
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -302,7 +302,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getconfoundersize (krb5_context context, krb5_crypto crypto, size_t * confoundersize)"
Return the confounder size used by the crypto context
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -311,7 +311,7 @@ Return the confounder size used by the crypto context
\fIconfoundersize\fP the returned confounder size
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -320,7 +320,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getenctype (krb5_context context, krb5_crypto crypto, krb5_enctype * enctype)"
Return the encryption type used by the crypto context
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -329,7 +329,7 @@ Return the encryption type used by the crypto context
\fIenctype\fP the resulting encryption type
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -338,7 +338,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getpadsize (krb5_context context, krb5_crypto crypto, size_t * padsize)"
Return the padding size used by the crypto context
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -347,7 +347,7 @@ Return the padding size used by the crypto context
\fIpadsize\fP the return padding size
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -358,7 +358,7 @@ Create a crypto context used for all encryption and signature operation\&. The e
.PP
To free the crypto context, use \fBkrb5_crypto_destroy()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -369,7 +369,7 @@ To free the crypto context, use \fBkrb5_crypto_destroy()\fP\&.
\fIcrypto\fP the resulting crypto context
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -378,7 +378,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_decrypt_iov_ivec (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, void * ivec)"
Inline decrypt a Kerberos message\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -393,7 +393,7 @@ Inline decrypt a Kerberos message\&.
\fIivec\fP initial cbc/cts vector
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -407,7 +407,7 @@ one KRB5_CRYPTO_TYPE_DATA and array [0,\&.\&.\&.] of KRB5_CRYPTO_TYPE_SIGN_ONLY
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_encrypt_iov_ivec (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, int num_data, void * ivec)"
Inline encrypt a kerberos message
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -422,7 +422,7 @@ Inline encrypt a kerberos message
\fIivec\fP initial cbc/cts vector
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -442,14 +442,14 @@ KRB5_CRYPTO_TYPE_TRAILER
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_disable (krb5_context context, krb5_enctype enctype)"
Disable encryption type
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIenctype\fP encryption type to disable
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -458,14 +458,14 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_enable (krb5_context context, krb5_enctype enctype)"
Enable encryption type
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIenctype\fP encryption type to enable
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -474,14 +474,14 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_valid (krb5_context context, krb5_enctype etype)"
Check if a enctype is valid, return 0 if it is\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
\fIetype\fP enctype to check if its valid or not
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code for an failure or 0 on success (enctype valid)\&.
.RE
@@ -490,7 +490,7 @@ Return an error code for an failure or 0 on success (enctype valid)\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock (krb5_context context, krb5_keyblock * keyblock)"
Free a keyblock, also zero out the content of the keyblock, uses \fBkrb5_free_keyblock_contents()\fP to free the content\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -501,7 +501,7 @@ Free a keyblock, also zero out the content of the keyblock, uses \fBkrb5_free_ke
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock_contents (krb5_context context, krb5_keyblock * keyblock)"
Free a keyblock's content, also zero out the content of the keyblock\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context
.br
@@ -514,14 +514,14 @@ Fill buffer buf with len bytes of PRNG randomness that is ok to use for key gene
.PP
This function can fail, and callers must check the return value\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIbuf\fP a buffer to fill with randomness
.br
\fIlen\fP length of memory that buf points to\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
return 0 on success or HEIM_ERR_RANDOM_OFFLINE if the funcation failed to initialize the randomness source\&.
.RE
@@ -534,7 +534,7 @@ This function can NOT fail, instead it will abort() and program will crash\&.
.PP
If this function is called after a successful \fBkrb5_init_context()\fP, the chance of it failing is low due to that \fBkrb5_init_context()\fP pulls out some random, and quite commonly the randomness sources will not fail once it have started to produce good output, /dev/urandom behavies that way\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIbuf\fP a buffer to fill with randomness
.br
@@ -545,7 +545,7 @@ If this function is called after a successful \fBkrb5_init_context()\fP, the cha
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey_extended (krb5_context context, const krb5_keyblock * key, krb5_enctype etype, krb5_keyblock ** subkey)"
Generate subkey, from keyblock
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP kerberos context
.br
@@ -556,7 +556,7 @@ Generate subkey, from keyblock
\fIsubkey\fP returned new, free with \fBkrb5_free_keyblock()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success or a Kerberos 5 error code
.RE
@@ -565,14 +565,14 @@ Generate subkey, from keyblock
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_enctype_weak (krb5_context context, krb5_enctype enctype)"
Returns is the encryption is strong or weak
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIenctype\fP encryption type to probe
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns true if encryption type is weak or is not supported\&.
.RE
@@ -583,7 +583,7 @@ Get encryption type of a keyblock\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keyblock_init (krb5_context context, krb5_enctype type, const void * data, size_t size, krb5_keyblock * key)"
Fill in `key' with key data of type `enctype' from `data' of length `size'\&. Key should be freed using \fBkrb5_free_keyblock_contents()\fP\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success or a Kerberos 5 error code
.RE
@@ -592,7 +592,7 @@ Fill in `key' with key data of type `enctype' from `data' of length `size'\&. Ke
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_keyblock_zero (krb5_keyblock * keyblock)"
Zero out a keyblock
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIkeyblock\fP keyblock to zero out
.RE
@@ -601,7 +601,7 @@ Zero out a keyblock
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_random_to_key (krb5_context context, krb5_enctype type, const void * data, size_t size, krb5_keyblock * key)"
Converts the random bytestring to a protocol key according to Kerberos crypto frame work\&. It may be assumed that all the bits of the input string are equally random, even though the entropy present in the random source may be limited\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -614,7 +614,7 @@ Converts the random bytestring to a protocol key according to Kerberos crypto fr
\fIkey\fP key, output key, free with \fBkrb5_free_keyblock_contents()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -623,7 +623,7 @@ Return an error code or 0\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verify_checksum_iov (krb5_context context, krb5_crypto crypto, unsigned usage, \fBkrb5_crypto_iov\fP * data, unsigned int num_data, krb5_cksumtype * type)"
Verify a Kerberos message checksum\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -638,7 +638,7 @@ Verify a Kerberos message checksum\&.
\fItype\fP return checksum type if not NULL
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -646,4 +646,4 @@ Return an error code or 0\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3 b/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3
index 8f0a53c80972..9842c29ca0f5 100644
--- a/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3
+++ b/doc/doxyout/krb5/man/man3/krb5_crypto_iov.3
@@ -1,4 +1,4 @@
-.TH "krb5_crypto_iov" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_crypto_iov" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -14,4 +14,4 @@ Semi private, not stable yet
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_deprecated.3 b/doc/doxyout/krb5/man/man3/krb5_deprecated.3
index 923e121575a5..239754bc3ff2 100644
--- a/doc/doxyout/krb5/man/man3/krb5_deprecated.3
+++ b/doc/doxyout/krb5/man/man3/krb5_deprecated.3
@@ -1,8 +1,8 @@
-.TH "krb5_deprecated" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_deprecated" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_deprecated
+krb5_deprecated \- Heimdal Kerberos 5 deprecated functions
.SH SYNOPSIS
.br
.PP
@@ -106,7 +106,7 @@ Deprecated: keytypes doesn't exists, they are really enctypes\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_change_password (krb5_context context, krb5_creds * creds, const char * newpw, int * result_code, krb5_data * result_code_string, krb5_data * result_string)"
Deprecated: \fBkrb5_change_password()\fP is deprecated, use \fBkrb5_set_password()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -121,7 +121,7 @@ Deprecated: \fBkrb5_change_password()\fP is deprecated, use \fBkrb5_set_password
\fIresult_string\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
On sucess password is changed\&.
.RE
@@ -132,7 +132,7 @@ Clear the error message returned by \fBkrb5_get_error_string()\fP\&.
.PP
Deprecated: use \fBkrb5_clear_error_message()\fP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.RE
@@ -149,7 +149,7 @@ Same as \fBkrb5_data_free()\fP\&. MIT compat\&.
.PP
Deprecated: use \fBkrb5_data_free()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -162,7 +162,7 @@ Free the error message returned by \fBkrb5_get_error_string()\fP\&.
.PP
Deprecated: use \fBkrb5_free_error_message()\fP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -209,14 +209,14 @@ Set the error message returned by \fBkrb5_get_error_string()\fP\&.
.PP
Deprecated: use \fBkrb5_get_error_message()\fP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
\fIfmt\fP error message to free
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -229,7 +229,7 @@ Set the error message returned by \fBkrb5_get_error_string()\fP, deprecated, use
.PP
Deprecated: use \fBkrb5_vset_error_message()\fP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -238,7 +238,7 @@ Deprecated: use \fBkrb5_vset_error_message()\fP
\fIargs\fP variable argument list vector
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -246,4 +246,4 @@ Return an error code or 0\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_digest.3 b/doc/doxyout/krb5/man/man3/krb5_digest.3
index 4715dd1802fd..70ec8c199a84 100644
--- a/doc/doxyout/krb5/man/man3/krb5_digest.3
+++ b/doc/doxyout/krb5/man/man3/krb5_digest.3
@@ -1,8 +1,8 @@
-.TH "krb5_digest" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_digest" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_digest
+krb5_digest \- Heimdal Kerberos 5 digest service
.SH SYNOPSIS
.br
.PP
@@ -21,7 +21,7 @@ krb5_digest
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_digest_probe (krb5_context context, krb5_realm realm, krb5_ccache ccache, unsigned * flags)"
Get the supported/allowed mechanism for this principal\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Keberos context\&.
.br
@@ -32,7 +32,7 @@ Get the supported/allowed mechanism for this principal\&.
\fIflags\fP The supported mechanism\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -40,4 +40,4 @@ Return an error code or 0\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_error.3 b/doc/doxyout/krb5/man/man3/krb5_error.3
index f828f1b9fa99..b70ff6211bb3 100644
--- a/doc/doxyout/krb5/man/man3/krb5_error.3
+++ b/doc/doxyout/krb5/man/man3/krb5_error.3
@@ -1,8 +1,8 @@
-.TH "krb5_error" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_error" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_error
+krb5_error \- Heimdal Kerberos 5 error reporting functions
.SH SYNOPSIS
.br
.PP
@@ -28,6 +28,9 @@ krb5_error
.RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_vset_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__"
.br
.ti -1c
+.RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_prepend_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt,\&.\&.\&.) __attribute__((__format__(__printf__"
+.br
+.ti -1c
.RI "KRB5_LIB_FUNCTION void KRB5_LIB_CALL \fBkrb5_vprepend_error_message\fP (krb5_context context, krb5_error_code ret, const char *fmt, va_list args) __attribute__((__format__(__printf__"
.br
.ti -1c
@@ -84,7 +87,7 @@ krb5_error
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_abort (krb5_context context, krb5_error_code code, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr, include the error from the last failure and then abort\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -99,7 +102,7 @@ Log a warning to the log, default stderr, include the error from the last failur
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_abortx (krb5_context context, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr, and then abort\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -112,7 +115,7 @@ Log a warning to the log, default stderr, and then abort\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_clear_error_message (krb5_context context)"
Clears the error message from the Kerberos 5 context\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP The Kerberos 5 context to clear
.RE
@@ -121,14 +124,14 @@ Clears the error message from the Kerberos 5 context\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_eai_to_heim_errno (int eai_errno, int system_error)"
Convert the getaddrinfo() error code to a Kerberos et error code\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIeai_errno\fP contains the error code from getaddrinfo()\&.
.br
\fIsystem_error\fP should have the value of errno after the failed getaddrinfo()\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos error code representing the EAI errors\&.
.RE
@@ -137,7 +140,7 @@ Kerberos error code representing the EAI errors\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_err (krb5_context context, int eval, krb5_error_code code, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr, include bthe error from the last failure and then exit\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -152,7 +155,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_errx (krb5_context context, int eval, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr, and then exit\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -165,7 +168,7 @@ Log a warning to the log, default stderr, and then exit\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_error_message (krb5_context context, const char * msg)"
Free the error message returned by \fBkrb5_get_error_message()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
@@ -176,14 +179,14 @@ Free the error message returned by \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_get_error_message (krb5_context context, krb5_error_code code)"
Return the error message for `code' in context\&. On memory allocation error the function returns NULL\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIcode\fP Error code related to the error
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The functions return NULL on error\&.
.RE
@@ -192,12 +195,12 @@ an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The f
.SS "KRB5_LIB_FUNCTION char* KRB5_LIB_CALL krb5_get_error_string (krb5_context context)"
Return the error message in context\&. On error or no error string, the function returns NULL\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The functions return NULL on error\&.
.RE
@@ -206,7 +209,7 @@ an error string, needs to be freed with \fBkrb5_free_error_message()\fP\&. The f
.SS "KRB5_LIB_FUNCTION krb5_log_facility* KRB5_LIB_CALL krb5_get_warn_dest (krb5_context context)"
Get the default logging facility\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.RE
@@ -215,23 +218,40 @@ Get the default logging facility\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_errno_to_heim_errno (int eai_errno)"
Convert the gethostname() error code (h_error) to a Kerberos et error code\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIeai_errno\fP contains the error code from gethostname()\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Kerberos error code representing the gethostname errors\&.
.RE
.PP
+.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_prepend_error_message (krb5_context context, krb5_error_code ret, const char * fmt, \&.\&.\&.)"
+Prepend the context full error string for a specific error code\&. The error that is stored should be internationalized\&.
+.PP
+The if context is NULL, no error string is stored\&.
+.PP
+\fBParameters\fP
+.RS 4
+\fIcontext\fP Kerberos 5 context
+.br
+\fIret\fP The error code
+.br
+\fIfmt\fP Error string for the error code
+.br
+\fI\&.\&.\&.\fP printf(3) style parameters\&.
+.RE
+.PP
+
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_error_message (krb5_context context, krb5_error_code ret, const char * fmt, \&.\&.\&.)"
Set the context full error string for a specific error code\&. The error that is stored should be internationalized\&.
.PP
The if context is NULL, no error string is stored\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -246,7 +266,7 @@ The if context is NULL, no error string is stored\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_warn_dest (krb5_context context, krb5_log_facility * fac)"
Set the default logging facility\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -257,7 +277,7 @@ Set the default logging facility\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vabort (krb5_context context, krb5_error_code code, const char * fmt, va_list ap)"
Log a warning to the log, default stderr, include bthe error from the last failure and then abort\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -272,7 +292,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verr (krb5_context context, int eval, krb5_error_code code, const char * fmt, va_list ap)"
Log a warning to the log, default stderr, include bthe error from the last failure and then exit\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -289,7 +309,7 @@ Log a warning to the log, default stderr, include bthe error from the last failu
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verrx (krb5_context context, int eval, const char * fmt, va_list ap)"
Log a warning to the log, default stderr, and then exit\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
@@ -306,7 +326,7 @@ Prepend the contexts's full error string for a specific error code\&.
.PP
The if context is NULL, no error string is stored\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -323,7 +343,7 @@ Set the context full error string for a specific error code\&.
.PP
The if context is NULL, no error string is stored\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -338,7 +358,7 @@ The if context is NULL, no error string is stored\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vwarn (krb5_context context, krb5_error_code code, const char * fmt, va_list ap)"
Log a warning to the log, default stderr, include the error from the last failure\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -353,7 +373,7 @@ Log a warning to the log, default stderr, include the error from the last failur
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_vwarnx (krb5_context context, const char * fmt, va_list ap)"
Log a warning to the log, default stderr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -366,7 +386,7 @@ Log a warning to the log, default stderr\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_warn (krb5_context context, krb5_error_code code, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr, include the error from the last failure\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -379,7 +399,7 @@ Log a warning to the log, default stderr, include the error from the last failur
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_warnx (krb5_context context, const char * fmt, \&.\&.\&.)"
Log a warning to the log, default stderr\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -389,4 +409,4 @@ Log a warning to the log, default stderr\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_fileformats.3 b/doc/doxyout/krb5/man/man3/krb5_fileformats.3
index 74af34ca24a6..bb1c23467673 100644
--- a/doc/doxyout/krb5/man/man3/krb5_fileformats.3
+++ b/doc/doxyout/krb5/man/man3/krb5_fileformats.3
@@ -1,9 +1,9 @@
-.TH "krb5_fileformats" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_fileformats" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_fileformatsFile formats
- \-
+krb5_fileformats \- File formats
+
.SH "File formats"
.PP
This section documents the diffrent file formats that are used in Heimdal and other Kerberos implementations\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3 b/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3
index 20d8a149a3ae..d8c6c862296b 100644
--- a/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3
+++ b/doc/doxyout/krb5/man/man3/krb5_init_creds_intro.3
@@ -1,9 +1,9 @@
-.TH "krb5_init_creds_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_init_creds_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_init_creds_introThe initial credential handing functions
- \-
+krb5_init_creds_intro \- The initial credential handing functions
+
.SH "Initial credential"
.PP
Functions to get initial credentials: \fBHeimdal Kerberos 5 credential handing functions\fP \&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_introduction.3 b/doc/doxyout/krb5/man/man3/krb5_introduction.3
index 531b0acd5555..d2b8d65309c4 100644
--- a/doc/doxyout/krb5/man/man3/krb5_introduction.3
+++ b/doc/doxyout/krb5/man/man3/krb5_introduction.3
@@ -1,9 +1,9 @@
-.TH "krb5_introduction" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_introduction" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_introductionIntroduction to the Kerberos 5 API
- \-
+krb5_introduction \- Introduction to the Kerberos 5 API
+
.SH "Kerberos 5 API Overview"
.PP
All functions are documented in manual pages\&. This section tries to give an overview of the major components used in Kerberos library, and point to where to look for a specific function\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_keytab.3 b/doc/doxyout/krb5/man/man3/krb5_keytab.3
index 0439732015ef..bfbfece7829f 100644
--- a/doc/doxyout/krb5/man/man3/krb5_keytab.3
+++ b/doc/doxyout/krb5/man/man3/krb5_keytab.3
@@ -1,8 +1,8 @@
-.TH "krb5_keytab" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_keytab" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_keytab
+krb5_keytab \- Heimdal Kerberos 5 keytab handling functions
.SH SYNOPSIS
.br
.PP
@@ -81,7 +81,7 @@ krb5_keytab
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)"
Add the entry in `entry' to the keytab `id'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -90,7 +90,7 @@ Add the entry in `entry' to the keytab `id'\&.
\fIentry\fP the entry to add
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -99,14 +99,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close (krb5_context context, krb5_keytab id)"
Finish using the keytab in `id'\&. All resources will be released, even on errors\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIid\fP keytab to close\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -115,7 +115,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare (krb5_context context, krb5_keytab_entry * entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)"
Compare `entry' against `principal, vno, enctype'\&. Any of `principal, vno, enctype' might be 0 which acts as a wildcard\&. Return TRUE if they compare the same, FALSE otherwise\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -128,7 +128,7 @@ Compare `entry' against `principal, vno, enctype'\&. Any of `principal, vno, enc
\fIenctype\fP encryption type to match, 0 matches all encryption types\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return TRUE or match, FALSE if not matched\&.
.RE
@@ -137,7 +137,7 @@ Return TRUE or match, FALSE if not matched\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents (krb5_context context, const krb5_keytab_entry * in, krb5_keytab_entry * out)"
Copy the contents of `in' into `out'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -146,7 +146,7 @@ Copy the contents of `in' into `out'\&.
\fIout\fP the copy of the keytab entry, free with \fBkrb5_kt_free_entry()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -155,14 +155,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default (krb5_context context, krb5_keytab * id)"
Set `id' to the default keytab\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIid\fP the new default keytab\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -171,7 +171,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name (krb5_context context, char * name, size_t namesize)"
Copy the name of the default modify keytab into `name'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -180,7 +180,7 @@ Copy the name of the default modify keytab into `name'\&.
\fInamesize\fP length of name
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -189,7 +189,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name (krb5_context context, char * name, size_t namesize)"
copy the name of the default keytab into `name'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -198,7 +198,7 @@ copy the name of the default keytab into `name'\&.
\fInamesize\fP length of name
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -207,14 +207,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy (krb5_context context, krb5_keytab id)"
Destroy (remove) the keytab in `id'\&. All resources will be released, even on errors, does the equvalment of \fBkrb5_kt_close()\fP on the resources\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIid\fP keytab to destroy\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -223,7 +223,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)"
Release all resources associated with `cursor'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -232,7 +232,7 @@ Release all resources associated with `cursor'\&.
\fIcursor\fP the cursor to free\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -241,14 +241,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry (krb5_context context, krb5_keytab_entry * entry)"
Free the contents of `entry'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIentry\fP the entry to free
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -257,7 +257,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry (krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry * entry)"
Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the keytab `id'\&. Matching is done like \fBkrb5_kt_compare()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -272,7 +272,7 @@ Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the k
\fIentry\fP the returned entry, free with \fBkrb5_kt_free_entry()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -281,7 +281,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name (krb5_context context, krb5_keytab keytab, char ** str)"
Retrieve the full name of the keytab `keytab' and store the name in `str'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -290,7 +290,7 @@ Retrieve the full name of the keytab `keytab' and store the name in `str'\&.
\fIstr\fP the name of the keytab name, usee krb5_xfree() to free the string\&. On error, *str is set to NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -299,7 +299,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name (krb5_context context, krb5_keytab keytab, char * name, size_t namesize)"
Retrieve the name of the keytab `keytab' into `name', `namesize'
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -310,7 +310,7 @@ Retrieve the name of the keytab `keytab' into `name', `namesize'
\fInamesize\fP size of name buffer\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -319,7 +319,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type (krb5_context context, krb5_keytab keytab, char * prefix, size_t prefixsize)"
Return the type of the `keytab' in the string \fCprefix of length \fPprefixsize'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -330,7 +330,7 @@ Return the type of the `keytab' in the string \fCprefix of length \fPprefixsize'
\fIprefixsize\fP length of prefix buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -339,14 +339,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_have_content (krb5_context context, krb5_keytab id)"
Return true if the keytab exists and have entries
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIid\fP a keytab\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -355,7 +355,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry, krb5_kt_cursor * cursor)"
Get the next entry from keytab, advance the cursor\&. On last entry the function will return KRB5_KT_END\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -366,7 +366,7 @@ Get the next entry from keytab, advance the cursor\&. On last entry the function
\fIcursor\fP the cursor of the iteration\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -375,7 +375,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key (krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock ** key)"
Read the key identified by `(principal, vno, enctype)' from the keytab in `keyprocarg' (the default if == NULL) into `*key'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -390,7 +390,7 @@ Read the key identified by `(principal, vno, enctype)' from the keytab in `keypr
\fIkey\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -399,14 +399,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register (krb5_context context, const krb5_kt_ops * ops)"
Register a new keytab backend\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
\fIops\fP a backend to register\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -415,7 +415,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry (krb5_context context, krb5_keytab id, krb5_keytab_entry * entry)"
Remove an entry from the keytab, matching is done using \fBkrb5_kt_compare()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -424,7 +424,7 @@ Remove an entry from the keytab, matching is done using \fBkrb5_kt_compare()\fP\
\fIentry\fP the entry to remove
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -433,7 +433,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve (krb5_context context, const char * name, krb5_keytab * id)"
Resolve the keytab name (of the form `type:residual') in `name' into a keytab in `id'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -442,7 +442,7 @@ Resolve the keytab name (of the form `type:residual') in `name' into a keytab in
\fIid\fP resulting keytab, free with \fBkrb5_kt_close()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -451,7 +451,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get (krb5_context context, krb5_keytab id, krb5_kt_cursor * cursor)"
Set `cursor' to point at the beginning of `id'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context\&.
.br
@@ -460,7 +460,7 @@ Set `cursor' to point at the beginning of `id'\&.
\fIcursor\fP a newly allocated cursor, free with \fBkrb5_kt_end_seq_get()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -468,4 +468,4 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3 b/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3
index 9816f66b761b..dd5938da6586 100644
--- a/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3
+++ b/doc/doxyout/krb5/man/man3/krb5_keytab_intro.3
@@ -1,9 +1,9 @@
-.TH "krb5_keytab_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_keytab_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_keytab_introThe keytab handing functions
- \-
+krb5_keytab_intro \- The keytab handing functions
+
.SH "Kerberos Keytabs"
.PP
See the library functions here: \fBHeimdal Kerberos 5 keytab handling functions\fP
@@ -27,11 +27,7 @@ keytab store the keytab in a AFS keyfile (usually /usr/afs/etc/KeyFile ), the ty
memory The keytab is stored in a memory segment\&. This allows sensitive and/or temporary data not to be stored on disk\&. The type's name is MEMORY\&. Each MEMORY keytab is referenced counted by and opened by the residual name, so two handles can point to the same memory area\&. When the last user closes using \fBkrb5_kt_close()\fP the keytab, the keys in they keytab is memset() to zero and freed and can no longer be looked up by name\&.
.PP
.SS "Keytab example"
-.PP
-.nf
-This is a minimalistic version of ktutil.
-.fi
-.PP
+This is a minimalistic version of ktutil\&.
.PP
.PP
.nf
diff --git a/doc/doxyout/krb5/man/man3/krb5_pac.3 b/doc/doxyout/krb5/man/man3/krb5_pac.3
index 6f81be4eb257..5043fd7c3f4e 100644
--- a/doc/doxyout/krb5/man/man3/krb5_pac.3
+++ b/doc/doxyout/krb5/man/man3/krb5_pac.3
@@ -1,8 +1,8 @@
-.TH "krb5_pac" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_pac" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_pac
+krb5_pac \- Heimdal Kerberos 5 PAC handling functions
.SH SYNOPSIS
.br
.PP
@@ -24,7 +24,7 @@ krb5_pac
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_pac_get_buffer (krb5_context context, krb5_pac p, uint32_t type, krb5_data * data)"
Get the PAC buffer of specific type from the pac\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -35,7 +35,7 @@ Get the PAC buffer of specific type from the pac\&.
\fIdata\fP return data, free with \fBkrb5_data_free()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -44,7 +44,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_pac_verify (krb5_context context, const krb5_pac pac, time_t authtime, krb5_const_principal principal, const krb5_keyblock * server, const krb5_keyblock * privsvr)"
Verify the PAC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -59,7 +59,7 @@ Verify the PAC\&.
\fIprivsvr\fP The KDC key, may be given\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -67,4 +67,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3 b/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3
new file mode 100644
index 000000000000..f721fda2cd4b
--- /dev/null
+++ b/doc/doxyout/krb5/man/man3/krb5_prepend_error_message.3
@@ -0,0 +1 @@
+.so man3/krb5_error.3
diff --git a/doc/doxyout/krb5/man/man3/krb5_principal.3 b/doc/doxyout/krb5/man/man3/krb5_principal.3
index 1322e70f0ec7..2c6cb7fe6238 100644
--- a/doc/doxyout/krb5/man/man3/krb5_principal.3
+++ b/doc/doxyout/krb5/man/man3/krb5_principal.3
@@ -1,8 +1,8 @@
-.TH "krb5_principal" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_principal" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_principal
+krb5_principal \- Heimdal Kerberos 5 principal functions
.SH SYNOPSIS
.br
.PP
@@ -111,7 +111,7 @@ krb5_principal
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_build_principal (krb5_context context, krb5_principal * principal, int rlen, krb5_const_realm realm, \&.\&.\&.)"
Build a principal using vararg style building
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -124,7 +124,7 @@ Build a principal using vararg style building
\fI\&.\&.\&.\fP a list of components ended with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -133,7 +133,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_principal (krb5_context context, krb5_const_principal inprinc, krb5_principal * outprinc)"
Copy a principal
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -142,7 +142,7 @@ Copy a principal
\fIoutprinc\fP copied principal, free with \fBkrb5_free_principal()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -151,14 +151,14 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_principal (krb5_context context, krb5_principal p)"
Frees a Kerberos principal allocated by the library with \fBkrb5_parse_name()\fP, \fBkrb5_make_principal()\fP or any other related principal functions\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
\fIp\fP a principal to free\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -167,7 +167,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_principal (krb5_context context, krb5_principal * principal, krb5_const_realm realm, \&.\&.\&.)"
Build a principal using vararg style building
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -178,7 +178,7 @@ Build a principal using vararg style building
\fI\&.\&.\&.\fP a list of components ended with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -187,7 +187,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_name (krb5_context context, const char * name, krb5_principal * principal)"
Parse a name into a krb5_principal structure
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -196,7 +196,7 @@ Parse a name into a krb5_principal structure
\fIprincipal\fP returned principal, free with \fBkrb5_free_principal()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -205,7 +205,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_name_flags (krb5_context context, const char * name, int flags, krb5_principal * principal)"
Parse a name into a krb5_principal structure, flags controls the behavior\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -216,7 +216,7 @@ Parse a name into a krb5_principal structure, flags controls the behavior\&.
\fIprincipal\fP returned principal, free with \fBkrb5_free_principal()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -227,7 +227,7 @@ Parse nametype string and return a nametype integer
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_principal_compare (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)"
Compares the two principals, including realm of the principals and returns TRUE if they are the same and FALSE if not\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -236,7 +236,7 @@ Compares the two principals, including realm of the principals and returns TRUE
\fIprinc2\fP second principal to compare
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_principal_compare_any_realm()\fP
.PP
@@ -247,7 +247,7 @@ Compares the two principals, including realm of the principals and returns TRUE
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_principal_compare_any_realm (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)"
Return TRUE iff princ1 == princ2 (without considering the realm)
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -256,12 +256,12 @@ Return TRUE iff princ1 == princ2 (without considering the realm)
\fIprinc2\fP second principal to compare
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
non zero if equal, 0 if not
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_principal_compare()\fP
.PP
@@ -272,14 +272,14 @@ non zero if equal, 0 if not
.SS "KRB5_LIB_FUNCTION unsigned int KRB5_LIB_CALL krb5_principal_get_num_comp (krb5_context context, krb5_const_principal principal)"
Get number of component is principal\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
\fIprincipal\fP principal to query
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
number of components in string
.RE
@@ -288,14 +288,14 @@ number of components in string
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_principal_get_realm (krb5_context context, krb5_const_principal principal)"
Get the realm of the principal
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
\fIprincipal\fP principal to get the realm for
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
realm of the principal, don't free or use after krb5_principal is freed
.RE
@@ -304,14 +304,14 @@ realm of the principal, don't free or use after krb5_principal is freed
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_principal_get_type (krb5_context context, krb5_const_principal principal)"
Get the type of the principal
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
\fIprincipal\fP principal to get the type for
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
the type of principal
.RE
@@ -336,7 +336,7 @@ return TRUE iff princ matches pattern
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_principal_set_realm (krb5_context context, krb5_principal principal, krb5_const_realm realm)"
Set a new realm for a principal, and as a side-effect free the previous realm\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -345,7 +345,7 @@ Set a new realm for a principal, and as a side-effect free the previous realm\&.
\fIrealm\fP the new realm to set
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -354,7 +354,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_principal_set_type (krb5_context context, krb5_principal principal, int type)"
Set the type of the principal
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -363,7 +363,7 @@ Set the type of the principal
\fItype\fP the new type
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -372,7 +372,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_realm_compare (krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2)"
return TRUE iff realm(princ1) == realm(princ2)
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -381,7 +381,7 @@ return TRUE iff realm(princ1) == realm(princ2)
\fIprinc2\fP second principal to compare
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_principal_compare_any_realm()\fP
.PP
@@ -396,7 +396,7 @@ Create a principal for the given service running on the given hostname\&. If KRB
.PP
Canonicalization is immediate (not delayed) only when there is only one canonicalization rule and that rule indicates that we should do a host lookup by name (i\&.e\&., DNS)\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -409,7 +409,7 @@ Canonicalization is immediate (not delayed) only when there is only one canonica
\fIret_princ\fP return principal, free with \fBkrb5_free_principal()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -418,7 +418,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name (krb5_context context, krb5_const_principal principal, char ** name)"
Unparse the Kerberos name into a string
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -427,7 +427,7 @@ Unparse the Kerberos name into a string
\fIname\fP resulting string, free with krb5_xfree()
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -436,7 +436,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed (krb5_context context, krb5_const_principal principal, char * name, size_t len)"
Unparse the principal name to a fixed buffer
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -447,7 +447,7 @@ Unparse the principal name to a fixed buffer
\fIlen\fP length of buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -456,7 +456,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed_flags (krb5_context context, krb5_const_principal principal, int flags, char * name, size_t len)"
Unparse the principal name with unparse flags to a fixed buffer\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -469,7 +469,7 @@ Unparse the principal name with unparse flags to a fixed buffer\&.
\fIlen\fP length of buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -478,7 +478,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_fixed_short (krb5_context context, krb5_const_principal principal, char * name, size_t len)"
Unparse the principal name to a fixed buffer\&. The realm is skipped if its a default realm\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -489,7 +489,7 @@ Unparse the principal name to a fixed buffer\&. The realm is skipped if its a de
\fIlen\fP length of buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -498,7 +498,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_flags (krb5_context context, krb5_const_principal principal, int flags, char ** name)"
Unparse the Kerberos name into a string
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -509,7 +509,7 @@ Unparse the Kerberos name into a string
\fIname\fP resulting string, free with krb5_xfree()
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -518,7 +518,7 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_unparse_name_short (krb5_context context, krb5_const_principal principal, char ** name)"
Unparse the principal name to a allocated buffer\&. The realm is skipped if its a default realm\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos context\&.
.br
@@ -527,7 +527,7 @@ Unparse the principal name to a allocated buffer\&. The realm is skipped if its
\fIname\fP returned buffer, free with krb5_xfree()
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -535,4 +535,4 @@ An krb5 error code, see \fBkrb5_get_error_message()\fP\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_principal_intro.3 b/doc/doxyout/krb5/man/man3/krb5_principal_intro.3
index b7b9adc0895f..a1ef3cf48213 100644
--- a/doc/doxyout/krb5/man/man3/krb5_principal_intro.3
+++ b/doc/doxyout/krb5/man/man3/krb5_principal_intro.3
@@ -1,9 +1,9 @@
-.TH "krb5_principal_intro" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_principal_intro" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_principal_introThe principal handing functions\&.
- \- A Kerberos principal is a email address looking string that contains two parts separated by . The second part is the kerberos realm the principal belongs to and the first is a list of 0 or more components\&. For example
+krb5_principal_intro \- The principal handing functions\&.
+A Kerberos principal is a email address looking string that contains two parts separated by . The second part is the kerberos realm the principal belongs to and the first is a list of 0 or more components\&. For example
.PP
.nf
lha@SU.SE
diff --git a/doc/doxyout/krb5/man/man3/krb5_storage.3 b/doc/doxyout/krb5/man/man3/krb5_storage.3
index 55aeb127ec77..3495c15532fd 100644
--- a/doc/doxyout/krb5/man/man3/krb5_storage.3
+++ b/doc/doxyout/krb5/man/man3/krb5_storage.3
@@ -1,8 +1,8 @@
-.TH "krb5_storage" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_storage" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_storage
+krb5_storage \- Heimdal Kerberos 5 storage functions
.SH SYNOPSIS
.br
.PP
@@ -195,14 +195,14 @@ krb5_storage
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_address (krb5_storage * sp, krb5_address * adr)"
Read a address block from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIadr\fP the address block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -211,14 +211,14 @@ Read a address block from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_addrs (krb5_storage * sp, krb5_addresses * adr)"
Read a addresses block from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIadr\fP the addresses block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -227,14 +227,14 @@ Read a addresses block from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_authdata (krb5_storage * sp, krb5_authdata * auth)"
Read a auth data from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIauth\fP the auth data block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -243,14 +243,14 @@ Read a auth data from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_creds (krb5_storage * sp, krb5_creds * creds)"
Read a credentials block from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIcreds\fP the credentials block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -259,14 +259,14 @@ Read a credentials block from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_creds_tag (krb5_storage * sp, krb5_creds * creds)"
Read a tagged credentials block from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIcreds\fP the credentials block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -275,14 +275,14 @@ Read a tagged credentials block from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_data (krb5_storage * sp, krb5_data * data)"
Parse a data from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to read from
.br
\fIdata\fP the parsed data
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -291,14 +291,14 @@ Parse a data from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int16 (krb5_storage * sp, int16_t * value)"
Read a int16 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -307,14 +307,14 @@ Read a int16 from storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int32 (krb5_storage * sp, int32_t * value)"
Read a int32 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -323,14 +323,14 @@ Read a int32 from storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int64 (krb5_storage * sp, int64_t * value)"
Read a int64 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -339,14 +339,14 @@ Read a int64 from storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_int8 (krb5_storage * sp, int8_t * value)"
Read a int8 from storage
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -355,14 +355,14 @@ Read a int8 from storage
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_keyblock (krb5_storage * sp, krb5_keyblock * p)"
Read a keyblock from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIp\fP the keyblock read from storage, free using \fBkrb5_free_keyblock()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -371,14 +371,14 @@ Read a keyblock from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_principal (krb5_storage * sp, krb5_principal * princ)"
Parse principal from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to read from
.br
\fIprinc\fP the parsed principal
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -387,14 +387,14 @@ Parse principal from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_string (krb5_storage * sp, char ** string)"
Parse a string from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to read from
.br
\fIstring\fP the parsed string
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -403,14 +403,14 @@ Parse a string from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_stringz (krb5_storage * sp, char ** string)"
Parse zero terminated string from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to read from
.br
\fIstring\fP the parsed string
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -419,14 +419,14 @@ Parse zero terminated string from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_times (krb5_storage * sp, krb5_times * times)"
Read a times block from the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fItimes\fP the times block read from storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -435,14 +435,14 @@ Read a times block from the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint16 (krb5_storage * sp, uint16_t * value)"
Read a int16 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -451,14 +451,14 @@ Read a int16 from storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint32 (krb5_storage * sp, uint32_t * value)"
Read a uint32 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -467,14 +467,14 @@ Read a uint32 from storage, byte order is controlled by the settings on the stor
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint64 (krb5_storage * sp, uint64_t * value)"
Read a uint64 from storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -483,14 +483,14 @@ Read a uint64 from storage, byte order is controlled by the settings on the stor
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ret_uint8 (krb5_storage * sp, uint8_t * value)"
Read a uint8 from storage
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value read from the buffer
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -499,7 +499,7 @@ Read a uint8 from storage
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_clear_flags (krb5_storage * sp, krb5_flags flags)"
Clear the flags on a storage buffer
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to clear the flags on
.br
@@ -510,12 +510,12 @@ Clear the flags on a storage buffer
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_emem (void)"
Create a elastic (allocating) memory storage backend\&. Memory is allocated on demand\&. Free returned krb5_storage with \fBkrb5_storage_free()\fP\&.
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_storage_from_mem()\fP
.PP
@@ -532,12 +532,12 @@ A krb5_storage on success, or NULL on out of memory error\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_storage_free (krb5_storage * sp)"
Free a krb5 storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to free\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An Kerberos 5 error code\&.
.RE
@@ -546,12 +546,12 @@ An Kerberos 5 error code\&.
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_data (krb5_data * data)"
Create a fixed size memory storage block
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
krb5_storage_mem()
.PP
@@ -566,12 +566,12 @@ krb5_storage_mem()
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_fd (int fd_in)"
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_storage_emem()\fP
.PP
@@ -588,12 +588,12 @@ A krb5_storage on success, or NULL on out of memory error\&.
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_mem (void * buf, size_t len)"
Create a fixed size memory storage block
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
krb5_storage_mem()
.PP
@@ -610,12 +610,12 @@ krb5_storage_mem()
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_readonly_mem (const void * buf, size_t len)"
Create a fixed size memory storage block that is read only
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
krb5_storage_mem()
.PP
@@ -630,12 +630,12 @@ krb5_storage_mem()
.SS "KRB5_LIB_FUNCTION krb5_storage* KRB5_LIB_CALL krb5_storage_from_socket (krb5_socket_t sock_in)"
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A krb5_storage on success, or NULL on out of memory error\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_storage_emem()\fP
.PP
@@ -652,12 +652,12 @@ A krb5_storage on success, or NULL on out of memory error\&.
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_fsync (krb5_storage * sp)"
Sync the storage buffer to its backing store\&. If there is no backing store this function will return success\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to sync
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
A Kerberos 5 error code
.RE
@@ -668,12 +668,12 @@ Return the current byteorder for the buffer\&. See \fBkrb5_storage_set_byteorder
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_get_eof_code (krb5_storage * sp)"
Get the return code that will be used when end of storage is reached\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
storage error code
.RE
@@ -682,14 +682,14 @@ storage error code
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_storage_is_flags (krb5_storage * sp, krb5_flags flags)"
Return true or false depending on if the storage flags is set or not\&. NB testing for the flag 0 always return true\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to check flags on
.br
\fIflags\fP The flags to test for
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
true if all the flags are set, false if not\&.
.RE
@@ -698,7 +698,7 @@ true if all the flags are set, false if not\&.
.SS "KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL krb5_storage_read (krb5_storage * sp, void * buf, size_t len)"
Read to the storage buffer\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to read from
.br
@@ -707,7 +707,7 @@ Read to the storage buffer\&.
\fIlen\fP the length to read
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
The length of data read (can be shorter then len), or negative on error\&.
.RE
@@ -716,7 +716,7 @@ The length of data read (can be shorter then len), or negative on error\&.
.SS "KRB5_LIB_FUNCTION off_t KRB5_LIB_CALL krb5_storage_seek (krb5_storage * sp, off_t offset, int whence)"
Seek to a new offset\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to seek in\&.
.br
@@ -725,7 +725,7 @@ Seek to a new offset\&.
\fIwhence\fP relateive searching, SEEK_CUR from the current position, SEEK_END from the end, SEEK_SET absolute from the start\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
The new current offset
.RE
@@ -734,7 +734,7 @@ The new current offset
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_byteorder (krb5_storage * sp, krb5_flags byteorder)"
Set the new byte order of the storage buffer\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to set the byte order for\&.
.br
@@ -745,7 +745,7 @@ The byte order are: KRB5_STORAGE_BYTEORDER_BE, KRB5_STORAGE_BYTEORDER_LE and KRB
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_eof_code (krb5_storage * sp, int code)"
Set the return code that will be used when end of storage is reached\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage
.br
@@ -756,7 +756,7 @@ Set the return code that will be used when end of storage is reached\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_flags (krb5_storage * sp, krb5_flags flags)"
Add the flags on a storage buffer by or-ing in the flags to the buffer\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to set the flags on
.br
@@ -767,7 +767,7 @@ Add the flags on a storage buffer by or-ing in the flags to the buffer\&.
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_storage_set_max_alloc (krb5_storage * sp, size_t size)"
Set the max alloc value
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer set the max allow for
.br
@@ -778,14 +778,14 @@ Set the max alloc value
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_storage_to_data (krb5_storage * sp, krb5_data * data)"
Copy the contnent of storage
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to copy to a data
.br
\fIdata\fP the copied data, free with \fBkrb5_data_free()\fP
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -794,14 +794,14 @@ Copy the contnent of storage
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_storage_truncate (krb5_storage * sp, off_t offset)"
Truncate the storage buffer in sp to offset\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to truncate\&.
.br
\fIoffset\fP the offset to truncate too\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
An Kerberos 5 error code\&.
.RE
@@ -810,7 +810,7 @@ An Kerberos 5 error code\&.
.SS "KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL krb5_storage_write (krb5_storage * sp, const void * buf, size_t len)"
Write to the storage buffer\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
@@ -819,7 +819,7 @@ Write to the storage buffer\&.
\fIlen\fP the length to write
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
The length of data written (can be shorter then len), or negative on error\&.
.RE
@@ -828,14 +828,14 @@ The length of data written (can be shorter then len), or negative on error\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_address (krb5_storage * sp, krb5_address p)"
Write a address block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIp\fP the address block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -844,14 +844,14 @@ Write a address block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_addrs (krb5_storage * sp, krb5_addresses p)"
Write a addresses block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIp\fP the addresses block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -860,14 +860,14 @@ Write a addresses block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_authdata (krb5_storage * sp, krb5_authdata auth)"
Write a auth data block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIauth\fP the auth data block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -876,14 +876,14 @@ Write a auth data block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_creds (krb5_storage * sp, krb5_creds * creds)"
Write a credentials block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIcreds\fP the creds block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -892,14 +892,14 @@ Write a credentials block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_creds_tag (krb5_storage * sp, krb5_creds * creds)"
Write a tagged credentials block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIcreds\fP the creds block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -908,14 +908,14 @@ Write a tagged credentials block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_data (krb5_storage * sp, krb5_data data)"
Store a data to the storage\&. The data is stored with an int32 as lenght plus the data (not padded)\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIdata\fP the buffer to store\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -924,14 +924,14 @@ Store a data to the storage\&. The data is stored with an int32 as lenght plus t
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int16 (krb5_storage * sp, int16_t value)"
Store a int16 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -940,14 +940,14 @@ Store a int16 to storage, byte order is controlled by the settings on the storag
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int32 (krb5_storage * sp, int32_t value)"
Store a int32 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -956,14 +956,14 @@ Store a int32 to storage, byte order is controlled by the settings on the storag
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int64 (krb5_storage * sp, int64_t value)"
Store a int64 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -972,14 +972,14 @@ Store a int64 to storage, byte order is controlled by the settings on the storag
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_int8 (krb5_storage * sp, int8_t value)"
Store a int8 to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -988,14 +988,14 @@ Store a int8 to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_keyblock (krb5_storage * sp, krb5_keyblock p)"
Store a keyblock to the storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIp\fP the keyblock to write
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -1004,14 +1004,14 @@ Store a keyblock to the storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_principal (krb5_storage * sp, krb5_const_principal p)"
Write a principal block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIp\fP the principal block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -1020,14 +1020,14 @@ Write a principal block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_string (krb5_storage * sp, const char * s)"
Store a string to the buffer\&. The data is formated as an len:uint32 plus the string itself (not padded)\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIs\fP the string to store\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -1036,14 +1036,14 @@ Store a string to the buffer\&. The data is formated as an len:uint32 plus the s
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_stringz (krb5_storage * sp, const char * s)"
Store a zero terminated string to the buffer\&. The data is stored one character at a time until a NUL is stored\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fIs\fP the string to store\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -1052,14 +1052,14 @@ Store a zero terminated string to the buffer\&. The data is stored one character
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_times (krb5_storage * sp, krb5_times times)"
Write a times block to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage buffer to write to
.br
\fItimes\fP the times block to write\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 on success, a Kerberos 5 error code on failure\&.
.RE
@@ -1068,14 +1068,14 @@ Write a times block to storage\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint16 (krb5_storage * sp, uint16_t value)"
Store a uint16 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -1084,14 +1084,14 @@ Store a uint16 to storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint32 (krb5_storage * sp, uint32_t value)"
Store a uint32 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -1100,14 +1100,14 @@ Store a uint32 to storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint64 (krb5_storage * sp, uint64_t value)"
Store a uint64 to storage, byte order is controlled by the settings on the storage, see \fBkrb5_storage_set_byteorder()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -1116,14 +1116,14 @@ Store a uint64 to storage, byte order is controlled by the settings on the stora
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_store_uint8 (krb5_storage * sp, uint8_t value)"
Store a uint8 to storage\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIsp\fP the storage to write too
.br
\fIvalue\fP the value to store
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
0 for success, or a Kerberos 5 error code on failure\&.
.RE
@@ -1131,4 +1131,4 @@ Store a uint8 to storage\&.
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_support.3 b/doc/doxyout/krb5/man/man3/krb5_support.3
index 8a1ffb17d708..9c3152f7d8f7 100644
--- a/doc/doxyout/krb5/man/man3/krb5_support.3
+++ b/doc/doxyout/krb5/man/man3/krb5_support.3
@@ -1,8 +1,8 @@
-.TH "krb5_support" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_support" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_support
+krb5_support \- Heimdal Kerberos 5 support functions
.SH SYNOPSIS
.br
.PP
@@ -115,7 +115,7 @@ krb5_support
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_file (krb5_context context, const char * file, const char * format, \&.\&.\&.)"
krb5_acl_match_file matches ACL format against each line in a file using \fBkrb5_acl_match_string()\fP\&. Lines starting with # are treated like comments and ignored\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -126,12 +126,12 @@ krb5_acl_match_file matches ACL format against each line in a file using \fBkrb5
\fI\&.\&.\&.\fP parameter to format string\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_acl_match_string\fP
.RE
@@ -151,7 +151,7 @@ f Matches the string with fnmatch(3)\&. Theflags argument (the last argument) pa
r Returns a copy of the string in the char ** passed in; the copy must be freed with free(3)\&. There is no need to free(3) the string on error: the function will clean up and set the pointer to NULL\&.
.PP
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context
.br
@@ -162,7 +162,7 @@ r Returns a copy of the string in the char ** passed in; the copy must be freed
\fI\&.\&.\&.\fP parameter to format string
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0\&.
.RE
@@ -185,7 +185,7 @@ free(s);
.fi
.PP
.PP
-\fBSee also:\fP
+\fBSee also\fP
.RS 4
\fBkrb5_acl_match_file\fP
.RE
@@ -198,7 +198,7 @@ Returns 0 on success, KRB5_NO_LOCALNAME if no mapping was found, or some Kerbero
.PP
Inputs:
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A krb5_context
.br
@@ -213,14 +213,14 @@ Inputs:
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_file_free (krb5_context context, krb5_config_section * s)"
Free configuration file section, the result of krb5_config_parse_file() and \fBkrb5_config_parse_file_multi()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context
.br
\fIs\fP the configuration section to free
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
returns 0 on successes, otherwise an error code, see \fBkrb5_get_error_message()\fP
.RE
@@ -229,7 +229,7 @@ returns 0 on successes, otherwise an error code, see \fBkrb5_get_error_message()
.SS "KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_config_free_strings (char ** strings)"
Free the resulting strings from krb5_config-get_strings() and \fBkrb5_config_vget_strings()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIstrings\fP strings to free
.RE
@@ -240,7 +240,7 @@ Like \fBkrb5_config_get_bool()\fP but with a va_list list of configuration selec
.PP
Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -249,7 +249,7 @@ Configuration value to a boolean value, where yes/true and any non-zero number m
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -258,7 +258,7 @@ TRUE or FALSE
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool_default (krb5_context context, const krb5_config_section * c, krb5_boolean def_value, \&.\&.\&.)"
\fBkrb5_config_get_bool_default()\fP will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -269,7 +269,7 @@ TRUE or FALSE
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -278,7 +278,7 @@ TRUE or FALSE
.SS "KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_get_list (krb5_context context, const krb5_config_section * c, \&.\&.\&.)"
Get a list of configuration binding list for more processing
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -287,7 +287,7 @@ Get a list of configuration binding list for more processing
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
NULL if configuration list is not found, a list otherwise
.RE
@@ -296,7 +296,7 @@ NULL if configuration list is not found, a list otherwise
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string (krb5_context context, const krb5_config_section * c, \&.\&.\&.)"
Returns a 'const char *' to a string in the configuration database\&. The string may not be valid after a reload of the configuration database so a caller should make a local copy if it needs to keep the string\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -305,7 +305,7 @@ Returns a 'const char *' to a string in the configuration database\&. The string
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
NULL if configuration string not found, a string otherwise
.RE
@@ -314,7 +314,7 @@ NULL if configuration string not found, a string otherwise
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string_default (krb5_context context, const krb5_config_section * c, const char * def_value, \&.\&.\&.)"
Like \fBkrb5_config_get_string()\fP, but instead of returning NULL, instead return a default value\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -325,7 +325,7 @@ Like \fBkrb5_config_get_string()\fP, but instead of returning NULL, instead retu
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
a configuration string
.RE
@@ -334,7 +334,7 @@ a configuration string
.SS "KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_get_strings (krb5_context context, const krb5_config_section * c, \&.\&.\&.)"
Get a list of configuration strings, free the result with \fBkrb5_config_free_strings()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -343,7 +343,7 @@ Get a list of configuration strings, free the result with \fBkrb5_config_free_st
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -352,7 +352,7 @@ TRUE or FALSE
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time (krb5_context context, const krb5_config_section * c, \&.\&.\&.)"
Get the time from the configuration file using a relative time, for example: 1h30s
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -361,7 +361,7 @@ Get the time from the configuration file using a relative time, for example: 1h3
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
parsed the time or -1 on error
.RE
@@ -370,7 +370,7 @@ parsed the time or -1 on error
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time_default (krb5_context context, const krb5_config_section * c, int def_value, \&.\&.\&.)"
Get the time from the configuration file using a relative time, for example: 1h30s
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -381,7 +381,7 @@ Get the time from the configuration file using a relative time, for example: 1h3
\fI\&.\&.\&.\fP a list of names, terminated with NULL\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
parsed the time (or def_value on parse error)
.RE
@@ -390,7 +390,7 @@ parsed the time (or def_value on parse error)
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_file_multi (krb5_context context, const char * fname, krb5_config_section ** res)"
Parse a configuration file and add the result into res\&. This interface can be used to parse several configuration files into one resulting krb5_config_section by calling it repeatably\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Kerberos 5 context\&.
.br
@@ -399,7 +399,7 @@ Parse a configuration file and add the result into res\&. This interface can be
\fIres\fP the returned result, must be free with \fBkrb5_free_config_files()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -408,7 +408,7 @@ If the fname starts with '~/' parse configuration file in the current users home
.SS "KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool (krb5_context context, const krb5_config_section * c, va_list args)"
\fBkrb5_config_get_bool()\fP will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -417,7 +417,7 @@ If the fname starts with '~/' parse configuration file in the current users home
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -428,7 +428,7 @@ Like \fBkrb5_config_get_bool_default()\fP but with a va_list list of configurati
.PP
Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -439,7 +439,7 @@ Configuration value to a boolean value, where yes/true and any non-zero number m
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -448,7 +448,7 @@ TRUE or FALSE
.SS "KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_vget_list (krb5_context context, const krb5_config_section * c, va_list args)"
Get a list of configuration binding list for more processing
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -457,7 +457,7 @@ Get a list of configuration binding list for more processing
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
NULL if configuration list is not found, a list otherwise
.RE
@@ -466,7 +466,7 @@ NULL if configuration list is not found, a list otherwise
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string (krb5_context context, const krb5_config_section * c, va_list args)"
Like \fBkrb5_config_get_string()\fP, but uses a va_list instead of \&.\&.\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -475,7 +475,7 @@ Like \fBkrb5_config_get_string()\fP, but uses a va_list instead of \&.\&.\&.
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
NULL if configuration string not found, a string otherwise
.RE
@@ -484,7 +484,7 @@ NULL if configuration string not found, a string otherwise
.SS "KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string_default (krb5_context context, const krb5_config_section * c, const char * def_value, va_list args)"
Like \fBkrb5_config_vget_string()\fP, but instead of returning NULL, instead return a default value\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -495,7 +495,7 @@ Like \fBkrb5_config_vget_string()\fP, but instead of returning NULL, instead ret
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
a configuration string
.RE
@@ -504,7 +504,7 @@ a configuration string
.SS "KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_vget_strings (krb5_context context, const krb5_config_section * c, va_list args)"
Get a list of configuration strings, free the result with \fBkrb5_config_free_strings()\fP\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -513,7 +513,7 @@ Get a list of configuration strings, free the result with \fBkrb5_config_free_st
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
TRUE or FALSE
.RE
@@ -522,7 +522,7 @@ TRUE or FALSE
.SS "KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time (krb5_context context, const krb5_config_section * c, va_list args)"
Get the time from the configuration file using a relative time, for example: 1h30s
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -531,7 +531,7 @@ Get the time from the configuration file using a relative time, for example: 1h3
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
parsed the time or -1 on error
.RE
@@ -542,7 +542,7 @@ Get the time from the configuration file using a relative time\&.
.PP
Like \fBkrb5_config_get_time_default()\fP but with a va_list list of configuration selection\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
@@ -553,7 +553,7 @@ Like \fBkrb5_config_get_time_default()\fP but with a va_list list of configurati
\fIargs\fP a va_list of arguments
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
parsed the time (or def_value on parse error)
.RE
@@ -562,7 +562,7 @@ parsed the time (or def_value on parse error)
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname (krb5_context context, const char * orig_hostname, char ** new_hostname)"
\fBkrb5_expand_hostname()\fP tries to make orig_hostname into a more canonical one in the newly allocated space returned in new_hostname\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -571,7 +571,7 @@ parsed the time (or def_value on parse error)
\fInew_hostname\fP output hostname, caller must free hostname with krb5_xfree()\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -580,7 +580,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname_realms (krb5_context context, const char * orig_hostname, char ** new_hostname, char *** realms)"
\fBkrb5_expand_hostname_realms()\fP expands orig_hostname to a name we believe to be a hostname in newly allocated space in new_hostname and return the realms new_hostname is believed to belong to in realms\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -591,7 +591,7 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
\fIrealms\fP output possible realms, is an array that is terminated with NULL\&. Caller must free with \fBkrb5_free_host_realm()\fP\&.
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -600,14 +600,14 @@ Return an error code or 0, see \fBkrb5_get_error_message()\fP\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_host_realm (krb5_context context, krb5_realm * realmlist)"
Free all memory allocated by `realmlist'
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP A Kerberos 5 context\&.
.br
\fIrealmlist\fP realmlist to free, NULL is ok
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
a Kerberos error code, always 0\&.
.RE
@@ -626,7 +626,7 @@ Optionally, a set of files may be put in ~/\&.k5login\&.d (a directory), in whic
.PP
If no configuration file exists, match user against local domains, ie luser@LOCAL-REALMS-IN-CONFIGURATION-FILES\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -635,7 +635,7 @@ If no configuration file exists, match user against local domains, ie luser@LOCA
\fIluser\fP local user id
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
returns TRUE if access should be granted, FALSE otherwise\&.
.RE
@@ -644,7 +644,7 @@ returns TRUE if access should be granted, FALSE otherwise\&.
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_plugin_register (krb5_context context, enum krb5_plugin_type type, const char * name, void * symbol)"
Register a plugin symbol name of specific type\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP a Keberos context
.br
@@ -655,7 +655,7 @@ Register a plugin symbol name of specific type\&.
\fIsymbol\fP a pointer to the named symbol
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
In case of error a non zero error com_err error is returned and the Kerberos error string is set\&.
.RE
@@ -663,4 +663,4 @@ In case of error a non zero error com_err error is returned and the Kerberos err
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_ticket.3 b/doc/doxyout/krb5/man/man3/krb5_ticket.3
index 65bd0d22127e..99d10c6c8ea8 100644
--- a/doc/doxyout/krb5/man/man3/krb5_ticket.3
+++ b/doc/doxyout/krb5/man/man3/krb5_ticket.3
@@ -1,8 +1,8 @@
-.TH "krb5_ticket" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_ticket" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_ticket
+krb5_ticket \- Heimdal Kerberos 5 ticket functions
.SH SYNOPSIS
.br
.PP
@@ -21,14 +21,14 @@ krb5_ticket
.SS "KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_ticket_get_flags (krb5_context context, const krb5_ticket * ticket)"
Get the flags from the Kerberos ticket
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos context
.br
\fIticket\fP Kerberos ticket
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
ticket flags
.RE
@@ -36,4 +36,4 @@ ticket flags
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5_v4compat.3 b/doc/doxyout/krb5/man/man3/krb5_v4compat.3
index 7dbaed927b16..ce8cc47ff91b 100644
--- a/doc/doxyout/krb5/man/man3/krb5_v4compat.3
+++ b/doc/doxyout/krb5/man/man3/krb5_v4compat.3
@@ -1,8 +1,8 @@
-.TH "krb5_v4compat" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5_v4compat" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-krb5_v4compat
+krb5_v4compat \- Heimdal Kerberos 4 compatiblity functions
.SH SYNOPSIS
.br
.PP
@@ -24,7 +24,7 @@ krb5_v4compat
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb524_convert_creds_kdc (krb5_context context, krb5_creds * in_cred, struct credentials * v4creds)"
Convert the v5 credentials in in_cred to v4-dito in v4creds\&. This is done by sending them to the 524 function in the KDC\&. If `in_cred' doesn't contain a DES session key, then a new one is gotten from the KDC and stored in the cred cache `ccache'\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -33,7 +33,7 @@ Convert the v5 credentials in in_cred to v4-dito in v4creds\&. This is done by s
\fIv4creds\fP the converted credential
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -42,7 +42,7 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SS "KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb524_convert_creds_kdc_ccache (krb5_context context, krb5_ccache ccache, krb5_creds * in_cred, struct credentials * v4creds)"
Convert the v5 credentials in in_cred to v4-dito in v4creds, check the credential cache ccache before checking with the KDC\&.
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIcontext\fP Kerberos 5 context\&.
.br
@@ -53,7 +53,7 @@ Convert the v5 credentials in in_cred to v4-dito in v4creds, check the credentia
\fIv4creds\fP the converted credential
.RE
.PP
-\fBReturns:\fP
+\fBReturns\fP
.RS 4
Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned, see \fBkrb5_get_error_message()\fP\&.
.RE
@@ -61,4 +61,4 @@ Returns 0 to indicate success\&. Otherwise an kerberos et error code is returned
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3 b/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3
index ba2e1eb68471..d9b7867ed640 100644
--- a/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3
+++ b/doc/doxyout/krb5/man/man3/krb5plugin_an2ln_ftable_desc.3
@@ -1,4 +1,4 @@
-.TH "krb5plugin_an2ln_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5plugin_an2ln_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -17,7 +17,7 @@ The krb5_aname_to_lname(3) function is pluggable\&. The plugin is named KRB5_PLU
.PP
The plugin for krb5_aname_to_lname(3) consists of a data symbol referencing a structure of type krb5plugin_an2ln_ftable, with four fields:
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIinit\fP Plugin initialization function (see krb5-plugin(7))
.br
@@ -49,4 +49,4 @@ set_res_ctx, the first argument to set_res_f (the second is the result lname str
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3 b/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3
index f1ad5e2cf1e8..66897ef31ec2 100644
--- a/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3
+++ b/doc/doxyout/krb5/man/man3/krb5plugin_db_ftable_desc.3
@@ -1,4 +1,4 @@
-.TH "krb5plugin_db_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5plugin_db_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -17,7 +17,7 @@ The krb5_aname_to_lname(3) function's DB rule is pluggable\&. The plugin is name
.PP
The plugin consists of a data symbol referencing a structure of type \fBkrb5plugin_db_ftable_desc\fP, with three fields:
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIinit\fP Plugin initialization function (see krb5-plugin(7))
.br
@@ -30,4 +30,4 @@ The init entry point is expected to call heim_db_register()\&. The fini entry po
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3 b/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3
index b5614ad18458..c78dc3571f15 100644
--- a/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3
+++ b/doc/doxyout/krb5/man/man3/krb5plugin_kuserok_ftable_desc.3
@@ -1,4 +1,4 @@
-.TH "krb5plugin_kuserok_ftable_desc" 3 "Fri Jun 7 2019" "Version 7.7.0" "HeimdalKerberos5library" \" -*- nroff -*-
+.TH "krb5plugin_kuserok_ftable_desc" 3 "Tue Nov 15 2022" "Version 7.8.0" "Heimdal Kerberos 5 library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -17,7 +17,7 @@ The krb5_kuserok(3) function is pluggable\&. The plugin is named KRB5_PLUGIN_KUS
.PP
The plugin for krb5_kuserok(3) consists of a data symbol referencing a structure of type krb5plugin_kuserok_ftable, with four fields:
.PP
-\fBParameters:\fP
+\fBParameters\fP
.RS 4
\fIinit\fP Plugin initialization function (see krb5-plugin(7))
.br
@@ -53,4 +53,4 @@ result, a krb5_boolean pointer where the plugin will output its result
.SH "Author"
.PP
-Generated automatically by Doxygen for HeimdalKerberos5library from the source code\&.
+Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code\&.
diff --git a/doc/doxyout/krb5/manpages b/doc/doxyout/krb5/manpages
index 7b614e87f4c6..e371084e4c9c 100644
--- a/doc/doxyout/krb5/manpages
+++ b/doc/doxyout/krb5/manpages
@@ -1,399 +1,400 @@
+krb5/man/man3/krb5_ccache_intro.3
+krb5/man/man3/krb5_introduction.3
+krb5/man/man3/krb5_fileformats.3
+krb5/man/man3/krb5_init_creds_intro.3
+krb5/man/man3/krb5_keytab_intro.3
+krb5/man/man3/krb5_principal_intro.3
+krb5/man/man3/krb5.3
+krb5/man/man3/krb5_add_et_list.3
+krb5/man/man3/krb5_add_extra_addresses.3
+krb5/man/man3/krb5_add_ignore_addresses.3
+krb5/man/man3/krb5_compare_creds.3
+krb5/man/man3/krb5_copy_context.3
+krb5/man/man3/krb5_copy_creds.3
+krb5/man/man3/krb5_copy_creds_contents.3
+krb5/man/man3/krb5_copy_data.3
+krb5/man/man3/krb5_copy_host_realm.3
+krb5/man/man3/krb5_copy_ticket.3
+krb5/man/man3/krb5_creds_get_ticket_flags.3
+krb5/man/man3/krb5_data_alloc.3
+krb5/man/man3/krb5_data_cmp.3
+krb5/man/man3/krb5_data_copy.3
+krb5/man/man3/krb5_data_ct_cmp.3
+krb5/man/man3/krb5_data_free.3
+krb5/man/man3/krb5_data_realloc.3
+krb5/man/man3/krb5_data_zero.3
krb5/man/man3/krb5_free_config_files.3
-krb5/man/man3/krb5_cc_copy_match_f.3
-krb5/man/man3/krb5_crypto_getenctype.3
+krb5/man/man3/krb5_free_context.3
+krb5/man/man3/krb5_free_cred_contents.3
+krb5/man/man3/krb5_free_creds.3
+krb5/man/man3/krb5_free_data.3
+krb5/man/man3/krb5_free_ticket.3
+krb5/man/man3/krb5_get_default_config_files.3
+krb5/man/man3/krb5_get_default_in_tkt_etypes.3
+krb5/man/man3/krb5_get_dns_canonicalize_hostname.3
+krb5/man/man3/krb5_get_err_text.3
+krb5/man/man3/krb5_get_extra_addresses.3
+krb5/man/man3/krb5_get_fcache_version.3
+krb5/man/man3/krb5_get_ignore_addresses.3
+krb5/man/man3/krb5_get_kdc_sec_offset.3
+krb5/man/man3/krb5_get_max_time_skew.3
+krb5/man/man3/krb5_get_use_admin_kdc.3
+krb5/man/man3/krb5_init_context.3
+krb5/man/man3/krb5_init_ets.3
+krb5/man/man3/krb5_is_thread_safe.3
+krb5/man/man3/krb5_kerberos_enctypes.3
+krb5/man/man3/krb5_krbhst_get_addrinfo.3
+krb5/man/man3/krb5_prepend_config_files_default.3
krb5/man/man3/krb5_set_config_files.3
+krb5/man/man3/krb5_set_default_in_tkt_etypes.3
+krb5/man/man3/krb5_set_dns_canonicalize_hostname.3
+krb5/man/man3/krb5_set_extra_addresses.3
+krb5/man/man3/krb5_set_fcache_version.3
+krb5/man/man3/krb5_set_home_dir_access.3
+krb5/man/man3/krb5_set_ignore_addresses.3
+krb5/man/man3/krb5_set_kdc_sec_offset.3
+krb5/man/man3/krb5_set_max_time_skew.3
+krb5/man/man3/krb5_set_password.3
+krb5/man/man3/krb5_set_real_time.3
+krb5/man/man3/krb5_set_use_admin_kdc.3
+krb5/man/man3/krb5_ticket_get_authorization_data_type.3
+krb5/man/man3/krb5_ticket_get_client.3
krb5/man/man3/krb5_ticket_get_endtime.3
-krb5/man/man3/krb5_storage_get_byteorder.3
+krb5/man/man3/krb5_ticket_get_server.3
+krb5/man/man3/krb5_address.3
+krb5/man/man3/krb5_addr2sockaddr.3
+krb5/man/man3/krb5_address_compare.3
+krb5/man/man3/krb5_address_order.3
+krb5/man/man3/krb5_address_prefixlen_boundary.3
+krb5/man/man3/krb5_address_search.3
+krb5/man/man3/krb5_anyaddr.3
+krb5/man/man3/krb5_append_addresses.3
+krb5/man/man3/krb5_copy_address.3
+krb5/man/man3/krb5_copy_addresses.3
+krb5/man/man3/krb5_free_address.3
+krb5/man/man3/krb5_free_addresses.3
+krb5/man/man3/krb5_h_addr2addr.3
+krb5/man/man3/krb5_h_addr2sockaddr.3
+krb5/man/man3/krb5_make_addrport.3
+krb5/man/man3/krb5_max_sockaddr_size.3
+krb5/man/man3/krb5_parse_address.3
+krb5/man/man3/krb5_print_address.3
+krb5/man/man3/krb5_sockaddr2address.3
+krb5/man/man3/krb5_sockaddr2port.3
+krb5/man/man3/krb5_sockaddr_uninteresting.3
+krb5/man/man3/krb5_principal.3
+krb5/man/man3/krb5_build_principal.3
+krb5/man/man3/krb5_copy_principal.3
+krb5/man/man3/krb5_free_principal.3
+krb5/man/man3/krb5_make_principal.3
+krb5/man/man3/krb5_parse_name.3
+krb5/man/man3/krb5_parse_name_flags.3
+krb5/man/man3/krb5_parse_nametype.3
+krb5/man/man3/krb5_principal_compare.3
+krb5/man/man3/krb5_principal_compare_any_realm.3
+krb5/man/man3/krb5_principal_get_num_comp.3
+krb5/man/man3/krb5_principal_get_realm.3
+krb5/man/man3/krb5_principal_get_type.3
+krb5/man/man3/krb5_principal_is_anonymous.3
+krb5/man/man3/krb5_principal_is_gss_hostbased_service.3
+krb5/man/man3/krb5_principal_is_krbtgt.3
+krb5/man/man3/krb5_principal_is_lkdc.3
+krb5/man/man3/krb5_principal_is_null.3
+krb5/man/man3/krb5_principal_is_pku2u.3
+krb5/man/man3/krb5_principal_is_root_krbtgt.3
+krb5/man/man3/krb5_principal_match.3
+krb5/man/man3/krb5_principal_set_realm.3
+krb5/man/man3/krb5_principal_set_type.3
+krb5/man/man3/krb5_realm_compare.3
+krb5/man/man3/krb5_realm_is_lkdc.3
+krb5/man/man3/krb5_sname_to_principal.3
+krb5/man/man3/krb5_unparse_name.3
+krb5/man/man3/krb5_unparse_name_fixed.3
+krb5/man/man3/krb5_unparse_name_fixed_flags.3
+krb5/man/man3/krb5_unparse_name_fixed_short.3
+krb5/man/man3/krb5_unparse_name_flags.3
+krb5/man/man3/krb5_unparse_name_short.3
+krb5/man/man3/krb5_ccache.3
+krb5/man/man3/krb5_cc_cache_end_seq_get.3
krb5/man/man3/krb5_cc_cache_get_first.3
-krb5/man/man3/krb5_kt_get_full_name.3
+krb5/man/man3/krb5_cc_cache_match.3
+krb5/man/man3/krb5_cc_cache_next.3
+krb5/man/man3/krb5_cc_clear_mcred.3
+krb5/man/man3/krb5_cc_close.3
+krb5/man/man3/krb5_cc_copy_cache.3
+krb5/man/man3/krb5_cc_copy_creds.3
+krb5/man/man3/krb5_cc_copy_match_f.3
+krb5/man/man3/krb5_cc_default.3
+krb5/man/man3/krb5_cc_default_name.3
+krb5/man/man3/krb5_cc_destroy.3
+krb5/man/man3/krb5_cc_end_seq_get.3
+krb5/man/man3/krb5_cc_gen_new.3
+krb5/man/man3/krb5_cc_get_config.3
+krb5/man/man3/krb5_cc_get_flags.3
+krb5/man/man3/krb5_cc_get_friendly_name.3
krb5/man/man3/krb5_cc_get_full_name.3
-krb5/man/man3/krb5_cc_store_cred.3
-krb5/man/man3/krb5_store_uint8.3
-krb5/man/man3/krb5_deprecated.3
+krb5/man/man3/krb5_cc_get_kdc_offset.3
+krb5/man/man3/krb5_cc_get_lifetime.3
+krb5/man/man3/krb5_cc_get_name.3
krb5/man/man3/krb5_cc_get_ops.3
-krb5/man/man3/krb5_store_int8.3
-krb5/man/man3/krb5_free_ticket.3
+krb5/man/man3/krb5_cc_get_prefix_ops.3
+krb5/man/man3/krb5_cc_get_principal.3
+krb5/man/man3/krb5_cc_get_type.3
+krb5/man/man3/krb5_cc_get_version.3
+krb5/man/man3/krb5_cc_initialize.3
+krb5/man/man3/krb5_cc_last_change_time.3
+krb5/man/man3/krb5_cc_move.3
+krb5/man/man3/krb5_cc_new_unique.3
+krb5/man/man3/krb5_cc_next_cred.3
+krb5/man/man3/krb5_cc_register.3
+krb5/man/man3/krb5_cc_remove_cred.3
+krb5/man/man3/krb5_cc_resolve.3
+krb5/man/man3/krb5_cc_retrieve_cred.3
+krb5/man/man3/krb5_cc_set_config.3
+krb5/man/man3/krb5_cc_set_default_name.3
+krb5/man/man3/krb5_cc_set_flags.3
+krb5/man/man3/krb5_cc_set_friendly_name.3
+krb5/man/man3/krb5_cc_set_kdc_offset.3
+krb5/man/man3/krb5_cc_start_seq_get.3
+krb5/man/man3/krb5_cc_store_cred.3
+krb5/man/man3/krb5_cc_support_switch.3
+krb5/man/man3/krb5_cc_switch.3
+krb5/man/man3/krb5_cccol_cursor_free.3
+krb5/man/man3/krb5_cccol_cursor_new.3
+krb5/man/man3/krb5_cccol_cursor_next.3
+krb5/man/man3/krb5_cccol_last_change_time.3
+krb5/man/man3/krb5_get_validated_creds.3
+krb5/man/man3/krb5_is_config_principal.3
+krb5/man/man3/krb5_acc_ops.3
+krb5/man/man3/krb5_dcc_ops.3
+krb5/man/man3/krb5_fcc_ops.3
+krb5/man/man3/krb5_mcc_ops.3
+krb5/man/man3/krb5_crypto.3
+krb5/man/man3/krb5_allow_weak_crypto.3
+krb5/man/man3/krb5_cksumtype_to_enctype.3
+krb5/man/man3/krb5_copy_keyblock.3
+krb5/man/man3/krb5_copy_keyblock_contents.3
+krb5/man/man3/krb5_create_checksum_iov.3
+krb5/man/man3/krb5_crypto_destroy.3
+krb5/man/man3/krb5_crypto_fx_cf2.3
+krb5/man/man3/krb5_crypto_getblocksize.3
+krb5/man/man3/krb5_crypto_getconfoundersize.3
+krb5/man/man3/krb5_crypto_getenctype.3
+krb5/man/man3/krb5_crypto_getpadsize.3
+krb5/man/man3/krb5_crypto_init.3
+krb5/man/man3/krb5_decrypt_iov_ivec.3
krb5/man/man3/krb5_encrypt_iov_ivec.3
-krb5/man/man3/krb5_keytab_key_proc.3
-krb5/man/man3/krb5_store_uint32.3
+krb5/man/man3/krb5_enctype_disable.3
+krb5/man/man3/krb5_enctype_enable.3
krb5/man/man3/krb5_enctype_valid.3
+krb5/man/man3/krb5_free_keyblock.3
krb5/man/man3/krb5_free_keyblock_contents.3
-krb5/man/man3/krb5_h_errno_to_heim_errno.3
+krb5/man/man3/krb5_generate_random.3
+krb5/man/man3/krb5_generate_random_block.3
+krb5/man/man3/krb5_generate_subkey_extended.3
+krb5/man/man3/krb5_is_enctype_weak.3
+krb5/man/man3/krb5_keyblock_get_enctype.3
+krb5/man/man3/krb5_keyblock_init.3
+krb5/man/man3/krb5_keyblock_zero.3
+krb5/man/man3/krb5_random_to_key.3
+krb5/man/man3/krb5_verify_checksum_iov.3
+krb5/man/man3/krb5_credential.3
+krb5/man/man3/krb5_fwd_tgt_creds.3
+krb5/man/man3/krb5_get_forwarded_creds.3
+krb5/man/man3/krb5_get_init_creds_keyblock.3
+krb5/man/man3/krb5_get_init_creds_keytab.3
krb5/man/man3/krb5_get_init_creds_opt_alloc.3
-krb5/man/man3/krb5_copy_keyblock_contents.3
-krb5/man/man3/krb5_free_context.3
-krb5/man/man3/krb5_free_error_message.3
-krb5/man/man3/krb5_unparse_name.3
-krb5/man/man3/krb5_free_data.3
-krb5/man/man3/krb5_ret_uint32.3
-krb5/man/man3/krb5_acc_ops.3
-krb5/man/man3/krb5_verr.3
-krb5/man/man3/krb5_compare_creds.3
-krb5/man/man3/krb5_kt_read_service_key.3
-krb5/man/man3/krb524_convert_creds_kdc.3
-krb5/man/man3/krb5_cc_copy_creds.3
-krb5/man/man3/krb5_free_host_realm.3
-krb5/man/man3/krb5_set_warn_dest.3
+krb5/man/man3/krb5_get_init_creds_opt_free.3
+krb5/man/man3/krb5_get_init_creds_password.3
+krb5/man/man3/krb5_init_creds_free.3
+krb5/man/man3/krb5_init_creds_get.3
+krb5/man/man3/krb5_init_creds_get_error.3
+krb5/man/man3/krb5_init_creds_init.3
+krb5/man/man3/krb5_init_creds_set_keytab.3
+krb5/man/man3/krb5_init_creds_set_password.3
krb5/man/man3/krb5_init_creds_set_service.3
-krb5/man/man3/krb5_copy_data.3
-krb5/man/man3/krb5_free_address.3
-krb5/man/man3/krb5_get_error_string.3
-krb5/man/man3/krb5_set_fcache_version.3
-krb5/man/man3/krb5_ticket.3
-krb5/man/man3/krb5_cksumtype_to_enctype.3
-krb5/man/man3/krb5_parse_address.3
-krb5/man/man3/krb5_set_error_string.3
+krb5/man/man3/krb5_init_creds_step.3
+krb5/man/man3/krb5_deprecated.3
+krb5/man/man3/krb5_auth_getremoteseqnumber.3
+krb5/man/man3/krb5_c_enctype_compare.3
+krb5/man/man3/krb5_change_password.3
+krb5/man/man3/krb5_clear_error_string.3
+krb5/man/man3/krb5_config_parse_string_multi.3
+krb5/man/man3/krb5_enctypes_compatible_keys.3
+krb5/man/man3/krb5_free_creds_contents.3
+krb5/man/man3/krb5_free_data_contents.3
krb5/man/man3/krb5_free_error_string.3
-krb5/man/man3/krb5_fwd_tgt_creds.3
-krb5/man/man3/krb5_crypto_iov.3
-krb5/man/man3/krb5_cc_end_seq_get.3
+krb5/man/man3/krb5_free_unparsed_name.3
+krb5/man/man3/krb5_generate_subkey.3
+krb5/man/man3/krb5_get_cred_from_kdc.3
+krb5/man/man3/krb5_get_cred_from_kdc_opt.3
+krb5/man/man3/krb5_get_in_tkt_with_keytab.3
+krb5/man/man3/krb5_get_in_tkt_with_password.3
+krb5/man/man3/krb5_get_in_tkt_with_skey.3
+krb5/man/man3/krb5_get_init_creds_opt_get_error.3
+krb5/man/man3/krb5_get_init_creds_opt_init.3
+krb5/man/man3/krb5_keytab_key_proc.3
+krb5/man/man3/krb5_keytype_to_enctypes.3
+krb5/man/man3/krb5_keytype_to_enctypes_default.3
krb5/man/man3/krb5_keytype_to_string.3
-krb5/man/man3/krb5_ret_authdata.3
-krb5/man/man3/krb5_free_cred_contents.3
-krb5/man/man3/krb5_ret_data.3
-krb5/man/man3/krb5_config_get_bool_default.3
-krb5/man/man3/krb5_warn.3
-krb5/man/man3/krb5_expand_hostname.3
-krb5/man/man3/krb5_storage_from_data.3
-krb5/man/man3/krb5_cc_get_friendly_name.3
-krb5/man/man3/krb5_get_fcache_version.3
+krb5/man/man3/krb5_password_key_proc.3
+krb5/man/man3/krb5_princ_realm.3
+krb5/man/man3/krb5_princ_set_realm.3
+krb5/man/man3/krb5_set_error_string.3
krb5/man/man3/krb5_string_to_keytype.3
-krb5/man/man3/krb5_kt_free_entry.3
-krb5/man/man3/krb5_principal_set_realm.3
-krb5/man/man3/krb5_cc_last_change_time.3
-krb5/man/man3/krb5_get_in_tkt_with_skey.3
-krb5/man/man3/krb5_cc_close.3
-krb5/man/man3/krb5_config_get_list.3
-krb5/man/man3/krb5_kt_have_content.3
+krb5/man/man3/krb5_vset_error_string.3
+krb5/man/man3/krb5_digest.3
krb5/man/man3/krb5_digest_probe.3
-krb5/man/man3/krb5_address_search.3
-krb5/man/man3/krb5_store_address.3
-krb5/man/man3/krb5_rd_req_in_set_keytab.3
-krb5/man/man3/krb5_keytab.3
-krb5/man/man3/krb5_kt_compare.3
-krb5/man/man3/krb5_data_ct_cmp.3
-krb5/man/man3/krb5_config_vget_bool.3
-krb5/man/man3/krb5_store_creds_tag.3
-krb5/man/man3/krb5_build_principal.3
-krb5/man/man3/krb5_data_free.3
-krb5/man/man3/krb5_kt_add_entry.3
-krb5/man/man3/krb5_config_get_time_default.3
-krb5/man/man3/krb5_eai_to_heim_errno.3
-krb5/man/man3/krb5_principal_is_krbtgt.3
-krb5/man/man3/krb5_vset_error_message.3
-krb5/man/man3/krb5_storage_read.3
-krb5/man/man3/krb5_ret_uint8.3
-krb5/man/man3/krb5_address_order.3
-krb5/man/man3/krb5plugin_db_ftable_desc.3
-krb5/man/man3/krb5_acl_match_file.3
-krb5/man/man3/krb5_storage_from_mem.3
-krb5/man/man3/krb5_cc_get_config.3
-krb5/man/man3/krb5_config_get_string_default.3
-krb5/man/man3/krb5_kt_destroy.3
-krb5/man/man3/krb5_cc_retrieve_cred.3
-krb5/man/man3/krb5_copy_addresses.3
-krb5/man/man3/krb5_get_default_config_files.3
-krb5/man/man3/krb5_copy_context.3
-krb5/man/man3/krb5_ret_int32.3
-krb5/man/man3/krb5_h_addr2sockaddr.3
-krb5/man/man3/krb5_kt_copy_entry_contents.3
-krb5/man/man3/krb5_create_checksum_iov.3
-krb5/man/man3/krb5_get_in_tkt_with_password.3
-krb5/man/man3/krb5_cc_get_type.3
-krb5/man/man3/krb5_kt_get_name.3
-krb5/man/man3/krb5_kt_remove_entry.3
+krb5/man/man3/krb5_error.3
+krb5/man/man3/krb5_abort.3
+krb5/man/man3/krb5_abortx.3
krb5/man/man3/krb5_clear_error_message.3
-krb5/man/man3/krb5_set_error_message.3
-krb5/man/man3/krb5_get_in_tkt_with_keytab.3
-krb5/man/man3/krb5_ticket_get_authorization_data_type.3
-krb5/man/man3/krb5_copy_address.3
+krb5/man/man3/krb5_eai_to_heim_errno.3
+krb5/man/man3/krb5_err.3
krb5/man/man3/krb5_errx.3
-krb5/man/man3/krb5_principal_is_root_krbtgt.3
-krb5/man/man3/krb5_set_real_time.3
-krb5/man/man3/krb5_is_enctype_weak.3
+krb5/man/man3/krb5_free_error_message.3
+krb5/man/man3/krb5_get_error_message.3
+krb5/man/man3/krb5_get_error_string.3
+krb5/man/man3/krb5_get_warn_dest.3
+krb5/man/man3/krb5_h_errno_to_heim_errno.3
+krb5/man/man3/krb5_prepend_error_message.3
+krb5/man/man3/krb5_set_error_message.3
+krb5/man/man3/krb5_set_warn_dest.3
+krb5/man/man3/krb5_vabort.3
+krb5/man/man3/krb5_verr.3
+krb5/man/man3/krb5_verrx.3
+krb5/man/man3/krb5_vprepend_error_message.3
+krb5/man/man3/krb5_vset_error_message.3
+krb5/man/man3/krb5_vwarn.3
+krb5/man/man3/krb5_vwarnx.3
+krb5/man/man3/krb5_warn.3
krb5/man/man3/krb5_warnx.3
+krb5/man/man3/krb5_keytab.3
+krb5/man/man3/krb5_kt_add_entry.3
+krb5/man/man3/krb5_kt_close.3
+krb5/man/man3/krb5_kt_compare.3
+krb5/man/man3/krb5_kt_copy_entry_contents.3
krb5/man/man3/krb5_kt_default.3
-krb5/man/man3/krb5_abort.3
-krb5/man/man3/krb5_random_to_key.3
-krb5/man/man3/krb5_config_parse_file_multi.3
-krb5/man/man3/krb5_free_creds_contents.3
-krb5/man/man3/krb524_convert_creds_kdc_ccache.3
-krb5/man/man3/krb5_store_keyblock.3
-krb5/man/man3/krb5_copy_ticket.3
-krb5/man/man3/krb5_address.3
-krb5/man/man3/krb5_ret_creds.3
-krb5/man/man3/krb5_max_sockaddr_size.3
-krb5/man/man3/krb5_is_thread_safe.3
-krb5/man/man3/krb5_set_max_time_skew.3
-krb5/man/man3/krb5_digest.3
-krb5/man/man3/krb5_addr2sockaddr.3
-krb5/man/man3/krb5_sname_to_principal.3
-krb5/man/man3/krb5_ccache_intro.3
-krb5/man/man3/krb5_cc_set_default_name.3
-krb5/man/man3/krb5_get_init_creds_keyblock.3
-krb5/man/man3/krb5_get_init_creds_password.3
-krb5/man/man3/krb5_data_alloc.3
-krb5/man/man3/krb5_init_creds_init.3
-krb5/man/man3/krb5_ticket_get_flags.3
-krb5/man/man3/krb5_cc_set_config.3
-krb5/man/man3/krb5_cc_set_kdc_offset.3
-krb5/man/man3/krb5_cc_get_name.3
+krb5/man/man3/krb5_kt_default_modify_name.3
+krb5/man/man3/krb5_kt_default_name.3
+krb5/man/man3/krb5_kt_destroy.3
+krb5/man/man3/krb5_kt_end_seq_get.3
+krb5/man/man3/krb5_kt_free_entry.3
+krb5/man/man3/krb5_kt_get_entry.3
+krb5/man/man3/krb5_kt_get_full_name.3
+krb5/man/man3/krb5_kt_get_name.3
krb5/man/man3/krb5_kt_get_type.3
-krb5/man/man3/krb5_get_validated_creds.3
-krb5/man/man3/krb5_get_init_creds_keytab.3
-krb5/man/man3/krb5_set_use_admin_kdc.3
-krb5/man/man3/krb5_get_init_creds_opt_free.3
-krb5/man/man3/krb5_parse_nametype.3
-krb5/man/man3/krb5_keyblock_zero.3
-krb5/man/man3/krb5_storage_emem.3
-krb5/man/man3/krb5_rd_req_in_ctx_alloc.3
-krb5/man/man3/krb5_cccol_cursor_free.3
-krb5/man/man3/krb5_store_creds.3
-krb5/man/man3/krb5_cc_move.3
-krb5/man/man3/krb5_principal_get_realm.3
-krb5/man/man3/krb5_credential.3
-krb5/man/man3/krb5_keyblock_init.3
-krb5/man/man3/krb5_add_et_list.3
-krb5/man/man3/krb5_ret_address.3
-krb5/man/man3/krb5_rd_req_out_get_server.3
-krb5/man/man3/krb5_principal_is_gss_hostbased_service.3
-krb5/man/man3/krb5_config_vget_string_default.3
-krb5/man/man3/krb5_princ_set_realm.3
-krb5/man/man3/krb5_vset_error_string.3
-krb5/man/man3/krb5_ret_principal.3
-krb5/man/man3/krb5_crypto.3
-krb5/man/man3/krb5_config_vget_time.3
-krb5/man/man3/krb5.3
-krb5/man/man3/krb5_rd_req_ctx.3
-krb5/man/man3/krb5_store_int32.3
+krb5/man/man3/krb5_kt_have_content.3
+krb5/man/man3/krb5_kt_next_entry.3
+krb5/man/man3/krb5_kt_read_service_key.3
+krb5/man/man3/krb5_kt_register.3
+krb5/man/man3/krb5_kt_remove_entry.3
krb5/man/man3/krb5_kt_resolve.3
-krb5/man/man3/krb5_kt_default_name.3
-krb5/man/man3/krb5_keytype_to_enctypes.3
-krb5/man/man3/krb5_data_realloc.3
-krb5/man/man3/krb5_keytype_to_enctypes_default.3
-krb5/man/man3/krb5_storage_is_flags.3
-krb5/man/man3/krb5_principal.3
-krb5/man/man3/krb5_vprepend_error_message.3
-krb5/man/man3/krb5_copy_principal.3
-krb5/man/man3/krb5_storage_write.3
+krb5/man/man3/krb5_kt_start_seq_get.3
+krb5/man/man3/krb5_ticket.3
+krb5/man/man3/krb5_ticket_get_flags.3
krb5/man/man3/krb5_pac.3
-krb5/man/man3/krb5_free_creds.3
-krb5/man/man3/krb5_crypto_fx_cf2.3
-krb5/man/man3/krb5plugin_an2ln_ftable_desc.3
-krb5/man/man3/krb5_init_creds_get.3
-krb5/man/man3/krb5_init_creds_get_error.3
-krb5/man/man3/krb5_err.3
-krb5/man/man3/krb5_ticket_get_client.3
-krb5/man/man3/krb5_data_cmp.3
-krb5/man/man3/krb5_vabort.3
-krb5/man/man3/krb5_free_data_contents.3
+krb5/man/man3/krb5_pac_get_buffer.3
+krb5/man/man3/krb5_pac_verify.3
+krb5/man/man3/krb5_v4compat.3
+krb5/man/man3/krb524_convert_creds_kdc.3
+krb5/man/man3/krb524_convert_creds_kdc_ccache.3
+krb5/man/man3/krb5_storage.3
+krb5/man/man3/krb5_ret_address.3
+krb5/man/man3/krb5_ret_addrs.3
+krb5/man/man3/krb5_ret_authdata.3
+krb5/man/man3/krb5_ret_creds.3
+krb5/man/man3/krb5_ret_creds_tag.3
+krb5/man/man3/krb5_ret_data.3
+krb5/man/man3/krb5_ret_int16.3
+krb5/man/man3/krb5_ret_int32.3
+krb5/man/man3/krb5_ret_int64.3
+krb5/man/man3/krb5_ret_int8.3
krb5/man/man3/krb5_ret_keyblock.3
-krb5/man/man3/krb5_vwarnx.3
-krb5/man/man3/krb5_init_creds_set_keytab.3
-krb5/man/man3/krb5_free_addresses.3
-krb5/man/man3/krb5_ticket_get_server.3
-krb5/man/man3/krb5_change_password.3
-krb5/man/man3/krb5_set_home_dir_access.3
-krb5/man/man3/krb5_init_creds_free.3
-krb5/man/man3/krb5_parse_name.3
-krb5/man/man3/krb5_make_principal.3
-krb5/man/man3/krb5_crypto_getblocksize.3
-krb5/man/man3/krb5_cc_get_version.3
-krb5/man/man3/krb5_cc_get_principal.3
+krb5/man/man3/krb5_ret_principal.3
+krb5/man/man3/krb5_ret_string.3
+krb5/man/man3/krb5_ret_stringz.3
krb5/man/man3/krb5_ret_times.3
-krb5/man/man3/krb5_storage_truncate.3
-krb5/man/man3/krb5_get_extra_addresses.3
+krb5/man/man3/krb5_ret_uint16.3
+krb5/man/man3/krb5_ret_uint32.3
+krb5/man/man3/krb5_ret_uint64.3
+krb5/man/man3/krb5_ret_uint8.3
+krb5/man/man3/krb5_storage_clear_flags.3
+krb5/man/man3/krb5_storage_emem.3
+krb5/man/man3/krb5_storage_free.3
+krb5/man/man3/krb5_storage_from_data.3
krb5/man/man3/krb5_storage_from_fd.3
-krb5/man/man3/krb5_principal_is_pku2u.3
-krb5/man/man3/krb5_unparse_name_short.3
-krb5/man/man3/krb5_get_dns_canonicalize_hostname.3
-krb5/man/man3/krb5_sockaddr2port.3
-krb5/man/man3/krb5_generate_subkey.3
-krb5/man/man3/krb5_principal_set_type.3
+krb5/man/man3/krb5_storage_from_mem.3
krb5/man/man3/krb5_storage_from_readonly_mem.3
-krb5/man/man3/krb5_unparse_name_fixed_flags.3
-krb5/man/man3/krb5_ret_int16.3
-krb5/man/man3/krb5_fcc_ops.3
-krb5/man/man3/krb5_copy_creds.3
-krb5/man/man3/krb5_set_kdc_sec_offset.3
-krb5/man/man3/krb5_get_cred_from_kdc.3
-krb5/man/man3/krb5_acl_match_string.3
-krb5/man/man3/krb5_config_get_string.3
-krb5/man/man3/krb5_h_addr2addr.3
-krb5/man/man3/krb5_print_address.3
-krb5/man/man3/krb5_verify_checksum_iov.3
-krb5/man/man3/krb5_cc_cache_next.3
-krb5/man/man3/krb5_config_get_strings.3
-krb5/man/man3/krb5_copy_creds_contents.3
-krb5/man/man3/krb5_ret_creds_tag.3
-krb5/man/man3/krb5_unparse_name_fixed.3
-krb5/man/man3/krb5_allow_weak_crypto.3
-krb5/man/man3/krb5_cc_initialize.3
-krb5/man/man3/krb5_config_free_strings.3
-krb5/man/man3/krb5_set_dns_canonicalize_hostname.3
-krb5/man/man3/krb5_verrx.3
-krb5/man/man3/krb5_ret_int8.3
-krb5/man/man3/krb5_crypto_destroy.3
-krb5/man/man3/krb5_principal_compare_any_realm.3
-krb5/man/man3/krb5_cc_new_unique.3
-krb5/man/man3/krb5_cc_destroy.3
-krb5/man/man3/krb5_auth.3
-krb5/man/man3/krb5_enctype_disable.3
-krb5/man/man3/krb5_cc_remove_cred.3
-krb5/man/man3/krb5_sockaddr2address.3
-krb5/man/man3/krb5_cc_start_seq_get.3
-krb5/man/man3/krb5_kt_start_seq_get.3
-krb5/man/man3/krb5_cc_cache_end_seq_get.3
-krb5/man/man3/krb5_prepend_config_files_default.3
-krb5/man/man3/krb5_ret_uint64.3
-krb5/man/man3/krb5_add_ignore_addresses.3
-krb5/man/man3/krb5_principal_get_type.3
-krb5/man/man3/krb5_storage.3
-krb5/man/man3/krb5_cccol_cursor_next.3
-krb5/man/man3/krb5_config_get_time.3
-krb5/man/man3/krb5_generate_random.3
-krb5/man/man3/krb5_introduction.3
-krb5/man/man3/krb5_set_password.3
-krb5/man/man3/krb5_keyblock_get_enctype.3
-krb5/man/man3/krb5_kt_default_modify_name.3
-krb5/man/man3/krb5_free_unparsed_name.3
-krb5/man/man3/krb5_cc_get_kdc_offset.3
-krb5/man/man3/krb5_set_extra_addresses.3
-krb5/man/man3/krb5_v4compat.3
-krb5/man/man3/krb5_principal_is_null.3
-krb5/man/man3/krb5_ret_string.3
-krb5/man/man3/krb5_get_kdc_sec_offset.3
-krb5/man/man3/krb5_principal_is_anonymous.3
-krb5/man/man3/krb5_ccache.3
-krb5/man/man3/krb5_init_creds_intro.3
-krb5/man/man3/krb5_parse_name_flags.3
-krb5/man/man3/krb5_store_stringz.3
-krb5/man/man3/krb5_cc_set_flags.3
-krb5/man/man3/krb5_store_times.3
-krb5/man/man3/krb5_is_config_principal.3
-krb5/man/man3/krb5_error.3
-krb5/man/man3/krb5_config_file_free.3
-krb5/man/man3/krb5_store_string.3
-krb5/man/man3/krb5_realm_is_lkdc.3
krb5/man/man3/krb5_storage_from_socket.3
-krb5/man/man3/krb5_store_uint64.3
-krb5/man/man3/krb5_rd_req_in_set_pac_check.3
-krb5/man/man3/krb5_get_init_creds_opt_init.3
-krb5/man/man3/krb5_free_principal.3
-krb5/man/man3/krb5_get_cred_from_kdc_opt.3
-krb5/man/man3/krb5_cc_set_friendly_name.3
+krb5/man/man3/krb5_storage_fsync.3
+krb5/man/man3/krb5_storage_get_byteorder.3
+krb5/man/man3/krb5_storage_get_eof_code.3
+krb5/man/man3/krb5_storage_is_flags.3
+krb5/man/man3/krb5_storage_read.3
+krb5/man/man3/krb5_storage_seek.3
+krb5/man/man3/krb5_storage_set_byteorder.3
krb5/man/man3/krb5_storage_set_eof_code.3
-krb5/man/man3/krb5_cccol_last_change_time.3
-krb5/man/man3/krb5_cc_switch.3
-krb5/man/man3/krb5_enctypes_compatible_keys.3
-krb5/man/man3/krb5_realm_compare.3
-krb5/man/man3/krb5_store_int16.3
-krb5/man/man3/krb5_cc_cache_match.3
+krb5/man/man3/krb5_storage_set_flags.3
+krb5/man/man3/krb5_storage_set_max_alloc.3
+krb5/man/man3/krb5_storage_to_data.3
+krb5/man/man3/krb5_storage_truncate.3
+krb5/man/man3/krb5_storage_write.3
+krb5/man/man3/krb5_store_address.3
+krb5/man/man3/krb5_store_addrs.3
+krb5/man/man3/krb5_store_authdata.3
+krb5/man/man3/krb5_store_creds.3
+krb5/man/man3/krb5_store_creds_tag.3
krb5/man/man3/krb5_store_data.3
-krb5/man/man3/krb5_decrypt_iov_ivec.3
-krb5/man/man3/krb5_princ_realm.3
-krb5/man/man3/krb5_config_parse_string_multi.3
+krb5/man/man3/krb5_store_int16.3
+krb5/man/man3/krb5_store_int32.3
krb5/man/man3/krb5_store_int64.3
-krb5/man/man3/krb5_storage_seek.3
-krb5/man/man3/krb5_store_uint16.3
-krb5/man/man3/krb5_abortx.3
-krb5/man/man3/krb5_get_ignore_addresses.3
-krb5/man/man3/krb5_auth_getremoteseqnumber.3
-krb5/man/man3/krb5_set_default_in_tkt_etypes.3
+krb5/man/man3/krb5_store_int8.3
+krb5/man/man3/krb5_store_keyblock.3
krb5/man/man3/krb5_store_principal.3
-krb5/man/man3/krb5_storage_to_data.3
-krb5/man/man3/krb5_principal_get_num_comp.3
-krb5/man/man3/krb5_cc_register.3
-krb5/man/man3/krb5_data_copy.3
-krb5/man/man3/krb5_fileformats.3
-krb5/man/man3/krb5_krbhst_get_addrinfo.3
+krb5/man/man3/krb5_store_string.3
+krb5/man/man3/krb5_store_stringz.3
+krb5/man/man3/krb5_store_times.3
+krb5/man/man3/krb5_store_uint16.3
+krb5/man/man3/krb5_store_uint32.3
+krb5/man/man3/krb5_store_uint64.3
+krb5/man/man3/krb5_store_uint8.3
+krb5/man/man3/krb5_support.3
+krb5/man/man3/krb5_acl_match_file.3
+krb5/man/man3/krb5_acl_match_string.3
+krb5/man/man3/krb5_aname_to_localname.3
+krb5/man/man3/krb5_config_file_free.3
+krb5/man/man3/krb5_config_free_strings.3
+krb5/man/man3/krb5_config_get_bool.3
+krb5/man/man3/krb5_config_get_bool_default.3
+krb5/man/man3/krb5_config_get_list.3
+krb5/man/man3/krb5_config_get_string.3
+krb5/man/man3/krb5_config_get_string_default.3
+krb5/man/man3/krb5_config_get_strings.3
+krb5/man/man3/krb5_config_get_time.3
+krb5/man/man3/krb5_config_get_time_default.3
+krb5/man/man3/krb5_config_parse_file_multi.3
+krb5/man/man3/krb5_config_vget_bool.3
krb5/man/man3/krb5_config_vget_bool_default.3
-krb5/man/man3/krb5_kt_next_entry.3
-krb5/man/man3/krb5_get_max_time_skew.3
-krb5/man/man3/krb5_storage_set_flags.3
-krb5/man/man3/krb5_crypto_init.3
-krb5/man/man3/krb5_get_forwarded_creds.3
-krb5/man/man3/krb5_storage_free.3
-krb5/man/man3/krb5_rd_req_out_ctx_free.3
-krb5/man/man3/krb5_cc_get_prefix_ops.3
-krb5/man/man3/krb5_init_creds_step.3
-krb5/man/man3/krb5_cc_resolve.3
+krb5/man/man3/krb5_config_vget_list.3
krb5/man/man3/krb5_config_vget_string.3
-krb5/man/man3/krb5_store_addrs.3
-krb5/man/man3/krb5_get_err_text.3
-krb5/man/man3/krb5_anyaddr.3
-krb5/man/man3/krb5_init_creds_set_password.3
-krb5/man/man3/krb5_clear_error_string.3
-krb5/man/man3/krb5_free_keyblock.3
-krb5/man/man3/krb5_cc_copy_cache.3
-krb5/man/man3/krb5_make_addrport.3
-krb5/man/man3/krb5_cc_support_switch.3
-krb5/man/man3/krb5_crypto_getpadsize.3
-krb5/man/man3/krb5_get_error_message.3
-krb5/man/man3/krb5_pac_verify.3
-krb5/man/man3/krb5_ret_uint16.3
-krb5/man/man3/krb5_principal_match.3
-krb5/man/man3/krb5_get_init_creds_opt_get_error.3
-krb5/man/man3/krb5_config_vget_time_default.3
+krb5/man/man3/krb5_config_vget_string_default.3
krb5/man/man3/krb5_config_vget_strings.3
-krb5/man/man3/krb5_cccol_cursor_new.3
-krb5/man/man3/krb5_kerberos_enctypes.3
-krb5/man/man3/krb5_ret_addrs.3
-krb5/man/man3/krb5_copy_keyblock.3
-krb5/man/man3/krb5_get_warn_dest.3
-krb5/man/man3/krb5_init_context.3
-krb5/man/man3/krb5_address_compare.3
-krb5/man/man3/krb5_data_zero.3
-krb5/man/man3/krb5_c_enctype_compare.3
-krb5/man/man3/krb5_principal_compare.3
-krb5/man/man3/krb5_pac_get_buffer.3
-krb5/man/man3/krb5_keytab_intro.3
-krb5/man/man3/krb5_kt_get_entry.3
-krb5/man/man3/krb5_cc_next_cred.3
-krb5/man/man3/krb5_kuserok.3
-krb5/man/man3/krb5_sockaddr_uninteresting.3
-krb5/man/man3/krb5_storage_set_max_alloc.3
-krb5/man/man3/krb5_get_default_in_tkt_etypes.3
-krb5/man/man3/krb5_config_get_bool.3
-krb5/man/man3/krb5_copy_host_realm.3
-krb5/man/man3/krb5_cc_get_lifetime.3
-krb5/man/man3/krb5_generate_random_block.3
-krb5/man/man3/krb5plugin_kuserok_ftable_desc.3
-krb5/man/man3/krb5_set_ignore_addresses.3
-krb5/man/man3/krb5_principal_is_lkdc.3
-krb5/man/man3/krb5_kt_register.3
-krb5/man/man3/krb5_cc_default_name.3
-krb5/man/man3/krb5_append_addresses.3
-krb5/man/man3/krb5_kt_end_seq_get.3
-krb5/man/man3/krb5_dcc_ops.3
+krb5/man/man3/krb5_config_vget_time.3
+krb5/man/man3/krb5_config_vget_time_default.3
+krb5/man/man3/krb5_expand_hostname.3
krb5/man/man3/krb5_expand_hostname_realms.3
-krb5/man/man3/krb5_cc_default.3
-krb5/man/man3/krb5_kt_close.3
-krb5/man/man3/krb5_unparse_name_fixed_short.3
-krb5/man/man3/krb5_generate_subkey_extended.3
+krb5/man/man3/krb5_free_host_realm.3
+krb5/man/man3/krb5_kuserok.3
krb5/man/man3/krb5_plugin_register.3
-krb5/man/man3/krb5_ret_int64.3
-krb5/man/man3/krb5_password_key_proc.3
-krb5/man/man3/krb5_vwarn.3
-krb5/man/man3/krb5_store_authdata.3
-krb5/man/man3/krb5_storage_clear_flags.3
-krb5/man/man3/krb5_storage_set_byteorder.3
-krb5/man/man3/krb5_unparse_name_flags.3
-krb5/man/man3/krb5_ret_stringz.3
-krb5/man/man3/krb5_principal_intro.3
-krb5/man/man3/krb5_cc_gen_new.3
-krb5/man/man3/krb5_get_use_admin_kdc.3
-krb5/man/man3/krb5_creds_get_ticket_flags.3
-krb5/man/man3/krb5_storage_get_eof_code.3
-krb5/man/man3/krb5_aname_to_localname.3
-krb5/man/man3/krb5_init_ets.3
-krb5/man/man3/krb5_enctype_enable.3
-krb5/man/man3/krb5_config_vget_list.3
-krb5/man/man3/krb5_address_prefixlen_boundary.3
-krb5/man/man3/krb5_cc_get_flags.3
-krb5/man/man3/krb5_crypto_getconfoundersize.3
-krb5/man/man3/krb5_add_extra_addresses.3
-krb5/man/man3/krb5_storage_fsync.3
-krb5/man/man3/krb5_support.3
-krb5/man/man3/krb5_cc_clear_mcred.3
-krb5/man/man3/krb5_mcc_ops.3
+krb5/man/man3/krb5_auth.3
+krb5/man/man3/krb5_rd_req_ctx.3
+krb5/man/man3/krb5_rd_req_in_ctx_alloc.3
+krb5/man/man3/krb5_rd_req_in_set_keytab.3
+krb5/man/man3/krb5_rd_req_in_set_pac_check.3
+krb5/man/man3/krb5_rd_req_out_ctx_free.3
+krb5/man/man3/krb5_rd_req_out_get_server.3
+krb5/man/man3/krb5_crypto_iov.3
+krb5/man/man3/krb5plugin_an2ln_ftable_desc.3
+krb5/man/man3/krb5plugin_db_ftable_desc.3
+krb5/man/man3/krb5plugin_kuserok_ftable_desc.3